mirror of
https://github.com/pnpm/pnpm.git
synced 2026-05-06 06:55:12 -04:00
feat: returned package IDs
This commit is contained in:
@@ -1,17 +1,17 @@
|
||||
dependencies:
|
||||
'@types/node': 6.0.81
|
||||
'@types/node': 8.0.13
|
||||
'@types/semver': 5.3.32
|
||||
pnpm-shrinkwrap: 3.1.0
|
||||
semver: 5.3.0
|
||||
devDependencies:
|
||||
typescript: 2.4.1
|
||||
packages:
|
||||
/@types/node/6.0.81:
|
||||
resolution:
|
||||
integrity: sha512-KdtXOH8l9O2wwOOX+swjbFx+YW/RJFfI14o6S50+Zy79FK1WFGkzFdDsiuNjrG5L6FaBSKpKzSpWgTvXurbbYg==
|
||||
/@types/node/7.0.34:
|
||||
resolution:
|
||||
integrity: sha512-99ujivDq9tqw3b88xrWqUcHfY3XT+moVhAlMqlN+OdavTxfCRW2X1bRBFcloILRJiIoir+gG3I65jzrpNgF/3g==
|
||||
/@types/node/8.0.13:
|
||||
resolution:
|
||||
integrity: sha512-Y3EAG7VA7NVNbZek/fjJtILnmTk/ZfpJuWZGDBqDZ1dVIxgJJJ82fXPW7pKnqyV9CD/9bcPOCi7eErUqGMHOrA==
|
||||
/@types/ramda/0.0.11:
|
||||
resolution:
|
||||
integrity: sha512-RcraK0229RAIJERTfgoCY/eSbxFEkPlj/TbUUb6aGSS9UfLj1THpt2Uj4uuCJsQrYRQUQB8tFlv7eTTWzE4QjQ==
|
||||
@@ -191,7 +191,7 @@ packages:
|
||||
registry: 'https://registry.npmjs.org/'
|
||||
shrinkwrapVersion: 3
|
||||
specifiers:
|
||||
'@types/node': ^6.0.81
|
||||
'@types/node': ^8.0.11
|
||||
'@types/semver': ^5.3.32
|
||||
pnpm-shrinkwrap: ^3.1.0
|
||||
semver: ^5.3.0
|
||||
|
||||
18
src/index.ts
18
src/index.ts
@@ -2,7 +2,8 @@ import {
|
||||
readPrivate,
|
||||
Shrinkwrap,
|
||||
ResolvedPackages,
|
||||
getPkgShortId,
|
||||
refToAbsoluteResolutionLoc,
|
||||
refToRelativeResolutionLoc,
|
||||
} from 'pnpm-shrinkwrap'
|
||||
import semver = require('semver')
|
||||
|
||||
@@ -15,6 +16,7 @@ export type PackageNode = {
|
||||
pkg: {
|
||||
name: string,
|
||||
version: string,
|
||||
resolvedId: string,
|
||||
}
|
||||
dependencies?: PackageNode[],
|
||||
}
|
||||
@@ -45,15 +47,18 @@ export default async function list (
|
||||
maxDepth: _opts.depth,
|
||||
prod: _opts.only === 'prod',
|
||||
searched: _opts.searched,
|
||||
registry: shrinkwrap.registry,
|
||||
}, shrinkwrap.packages)
|
||||
const result: PackageNode[] = []
|
||||
Object.keys(topDeps).forEach(depName => {
|
||||
const shortId = getPkgShortId(topDeps[depName], depName)
|
||||
const relativeId = refToRelativeResolutionLoc(topDeps[depName], depName)
|
||||
const resolvedId = refToAbsoluteResolutionLoc(topDeps[depName], depName, shrinkwrap.registry)
|
||||
const pkg = {
|
||||
resolvedId,
|
||||
name: depName,
|
||||
version: topDeps[depName],
|
||||
}
|
||||
const dependencies = getChildrenTree(shortId)
|
||||
const dependencies = getChildrenTree(relativeId)
|
||||
if (dependencies.length) {
|
||||
result.push({
|
||||
pkg,
|
||||
@@ -94,6 +99,7 @@ function getTree (
|
||||
maxDepth: number,
|
||||
prod: boolean,
|
||||
searched: SearchedPackage[],
|
||||
registry: string,
|
||||
},
|
||||
packages: ResolvedPackages,
|
||||
parentId: string
|
||||
@@ -115,12 +121,14 @@ function getTree (
|
||||
|
||||
let result: PackageNode[] = []
|
||||
Object.keys(deps).forEach(depName => {
|
||||
const shortId = getPkgShortId(deps[depName], depName)
|
||||
const resolvedId = refToAbsoluteResolutionLoc(deps[depName], depName, opts.registry)
|
||||
const relativeId = refToRelativeResolutionLoc(deps[depName], depName)
|
||||
const pkg = {
|
||||
resolvedId,
|
||||
name: depName,
|
||||
version: deps[depName],
|
||||
}
|
||||
const dependencies = getChildrenTree(shortId)
|
||||
const dependencies = getChildrenTree(relativeId)
|
||||
if (dependencies.length) {
|
||||
result.push({
|
||||
pkg,
|
||||
|
||||
@@ -11,24 +11,28 @@ test('one package depth 0', async t => {
|
||||
{
|
||||
pkg: {
|
||||
name: 'minimatch',
|
||||
resolvedId: 'registry.npmjs.org/minimatch/3.0.4',
|
||||
version: '3.0.4',
|
||||
}
|
||||
},
|
||||
{
|
||||
pkg: {
|
||||
name: 'rimraf',
|
||||
resolvedId: 'registry.npmjs.org/rimraf/2.5.1',
|
||||
version: '2.5.1',
|
||||
},
|
||||
},
|
||||
{
|
||||
pkg: {
|
||||
name: 'is-positive',
|
||||
resolvedId: 'registry.npmjs.org/is-positive/1.0.0',
|
||||
version: '1.0.0',
|
||||
}
|
||||
},
|
||||
{
|
||||
pkg: {
|
||||
name: 'is-negative',
|
||||
resolvedId: 'registry.npmjs.org/is-negative/1.0.0',
|
||||
version: '1.0.0',
|
||||
}
|
||||
},
|
||||
@@ -44,12 +48,14 @@ test('one package depth 1', async t => {
|
||||
{
|
||||
pkg: {
|
||||
name: 'minimatch',
|
||||
resolvedId: 'registry.npmjs.org/minimatch/3.0.4',
|
||||
version: '3.0.4',
|
||||
},
|
||||
dependencies: [
|
||||
{
|
||||
pkg: {
|
||||
name: 'brace-expansion',
|
||||
resolvedId: 'registry.npmjs.org/brace-expansion/1.1.8',
|
||||
version: '1.1.8',
|
||||
}
|
||||
}
|
||||
@@ -58,12 +64,14 @@ test('one package depth 1', async t => {
|
||||
{
|
||||
pkg: {
|
||||
name: 'rimraf',
|
||||
resolvedId: 'registry.npmjs.org/rimraf/2.5.1',
|
||||
version: '2.5.1',
|
||||
},
|
||||
dependencies: [
|
||||
{
|
||||
pkg: {
|
||||
name: 'glob',
|
||||
resolvedId: 'registry.npmjs.org/glob/6.0.4',
|
||||
version: '6.0.4',
|
||||
}
|
||||
}
|
||||
@@ -72,12 +80,14 @@ test('one package depth 1', async t => {
|
||||
{
|
||||
pkg: {
|
||||
name: 'is-positive',
|
||||
resolvedId: 'registry.npmjs.org/is-positive/1.0.0',
|
||||
version: '1.0.0',
|
||||
}
|
||||
},
|
||||
{
|
||||
pkg: {
|
||||
name: 'is-negative',
|
||||
resolvedId: 'registry.npmjs.org/is-negative/1.0.0',
|
||||
version: '1.0.0',
|
||||
}
|
||||
},
|
||||
@@ -93,12 +103,14 @@ test('only prod depth 0', async t => {
|
||||
{
|
||||
pkg: {
|
||||
name: 'minimatch',
|
||||
resolvedId: 'registry.npmjs.org/minimatch/3.0.4',
|
||||
version: '3.0.4',
|
||||
},
|
||||
},
|
||||
{
|
||||
pkg: {
|
||||
name: 'rimraf',
|
||||
resolvedId: 'registry.npmjs.org/rimraf/2.5.1',
|
||||
version: '2.5.1',
|
||||
},
|
||||
},
|
||||
@@ -114,6 +126,7 @@ test('only dev depth 0', async t => {
|
||||
{
|
||||
pkg: {
|
||||
name: 'is-positive',
|
||||
resolvedId: 'registry.npmjs.org/is-positive/1.0.0',
|
||||
version: '1.0.0',
|
||||
}
|
||||
},
|
||||
@@ -129,6 +142,7 @@ test('filter 1 package with depth 0', async t => {
|
||||
{
|
||||
pkg: {
|
||||
name: 'rimraf',
|
||||
resolvedId: 'registry.npmjs.org/rimraf/2.5.1',
|
||||
version: '2.5.1',
|
||||
}
|
||||
},
|
||||
@@ -148,30 +162,35 @@ test('filter 2 packages with depth 100', async t => {
|
||||
{
|
||||
pkg: {
|
||||
name: 'minimatch',
|
||||
resolvedId: 'registry.npmjs.org/minimatch/3.0.4',
|
||||
version: '3.0.4',
|
||||
},
|
||||
},
|
||||
{
|
||||
pkg: {
|
||||
name: 'rimraf',
|
||||
resolvedId: 'registry.npmjs.org/rimraf/2.5.1',
|
||||
version: '2.5.1',
|
||||
},
|
||||
dependencies: [
|
||||
{
|
||||
pkg: {
|
||||
name: 'glob',
|
||||
resolvedId: 'registry.npmjs.org/glob/6.0.4',
|
||||
version: '6.0.4',
|
||||
},
|
||||
dependencies: [
|
||||
{
|
||||
pkg: {
|
||||
name: 'inflight',
|
||||
resolvedId: 'registry.npmjs.org/inflight/1.0.6',
|
||||
version: '1.0.6',
|
||||
},
|
||||
dependencies: [
|
||||
{
|
||||
pkg: {
|
||||
name: 'once',
|
||||
resolvedId: 'registry.npmjs.org/once/1.4.0',
|
||||
version: '1.4.0',
|
||||
}
|
||||
}
|
||||
@@ -180,12 +199,14 @@ test('filter 2 packages with depth 100', async t => {
|
||||
{
|
||||
pkg: {
|
||||
name: 'minimatch',
|
||||
resolvedId: 'registry.npmjs.org/minimatch/3.0.4',
|
||||
version: '3.0.4',
|
||||
}
|
||||
},
|
||||
{
|
||||
pkg: {
|
||||
name: 'once',
|
||||
resolvedId: 'registry.npmjs.org/once/1.4.0',
|
||||
version: '1.4.0',
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user