feat: store package name of non-npm-hosted packages

bump shrinkwrapFile version to 3.1
This commit is contained in:
zkochan
2017-10-02 02:14:30 +03:00
parent 4bd0cf5c98
commit eea643e479
10 changed files with 27 additions and 23 deletions

View File

@@ -2,3 +2,4 @@ import path = require('path')
export const SHRINKWRAP_FILENAME = 'shrinkwrap.yaml'
export const PRIVATE_SHRINKWRAP_FILENAME = path.join('node_modules', '.shrinkwrap.yaml')
export const SHRINKWRAP_VERSION = 3.1

View File

@@ -7,8 +7,7 @@ import {
ResolvedDependencies,
} from './types'
import {refToRelative} from 'dependency-path'
const SHRINKWRAP_VERSION = 3
import {SHRINKWRAP_VERSION} from './constants'
export default function prune (shr: Shrinkwrap, pkg: Package): Shrinkwrap {
const packages: ResolvedPackages = {}

View File

@@ -6,8 +6,7 @@ import {
} from './constants'
import {Shrinkwrap} from './types'
import loadYamlFile = require('load-yaml-file')
const SHRINKWRAP_VERSION = 3
import {SHRINKWRAP_VERSION} from './constants'
// TODO: move to separate package
type PnpmErrorCode = 'SHRINKWRAP_BREAKING_CHANGE'
@@ -64,12 +63,16 @@ async function _read (
return null
}
// for backward compatibility
if (shrinkwrap && shrinkwrap['version'] === SHRINKWRAP_VERSION) {
shrinkwrap.shrinkwrapVersion = SHRINKWRAP_VERSION
if (shrinkwrap && shrinkwrap['version'] && !shrinkwrap.shrinkwrapVersion) {
shrinkwrap.shrinkwrapVersion = shrinkwrap['version']
delete shrinkwrap['version']
return shrinkwrap
}
if (shrinkwrap && shrinkwrap.shrinkwrapVersion === SHRINKWRAP_VERSION) {
if (shrinkwrap && Math.floor(shrinkwrap.shrinkwrapVersion) === Math.floor(SHRINKWRAP_VERSION)) {
if (shrinkwrap.shrinkwrapVersion > SHRINKWRAP_VERSION) {
logger.warn(`Your shrinkwrap.yaml was generated by a newer version of pnpm.
It is a compatible version but it might get downgraded to version ${SHRINKWRAP_VERSION}`)
}
return shrinkwrap
}
if (opts.ignoreIncompatible) {

View File

@@ -55,6 +55,7 @@ export type DependencyShrinkwrap = {
id?: string,
dev?: true,
optional?: true,
name?: string, // is only needed for packages that are hosted not in the npm registry
resolution: ShrinkwrapResolution,
dependencies?: ResolvedDependencies,
optionalDependencies?: ResolvedDependencies,

View File

@@ -1 +1 @@
version: 3
version: 3.1

View File

@@ -1 +1 @@
version: 3
version: 3.1

View File

@@ -1 +1 @@
shrinkwrapVersion: 3
shrinkwrapVersion: 3.1

View File

@@ -1 +1 @@
shrinkwrapVersion: 3
shrinkwrapVersion: 3.1

View File

@@ -30,7 +30,7 @@ test('remove one redundant package', t => {
'is-positive': '^1.0.0'
}
}), {
shrinkwrapVersion: 3,
shrinkwrapVersion: 3.1,
registry: 'https://registry.npmjs.org',
dependencies: {
'is-positive': '1.0.0'
@@ -90,7 +90,7 @@ test('keep all', t => {
'is-negative': '^1.0.0',
}
}), {
shrinkwrapVersion: 3,
shrinkwrapVersion: 3.1,
registry: 'https://registry.npmjs.org',
dependencies: {
'is-positive': '1.0.0',
@@ -164,7 +164,7 @@ test('optional dependency should have optional = true', t => {
'pkg-with-good-optional': '^1.0.0',
},
}), {
shrinkwrapVersion: 3,
shrinkwrapVersion: 3.1,
registry: 'https://registry.npmjs.org',
dependencies: {
'pkg-with-good-optional': '1.0.0',
@@ -232,7 +232,7 @@ test('optional dependency should not have optional = true if used not only as op
'is-positive': '^1.0.0',
},
}), {
shrinkwrapVersion: 3,
shrinkwrapVersion: 3.1,
registry: 'https://registry.npmjs.org',
dependencies: {
'pkg-with-good-optional': '1.0.0',
@@ -298,7 +298,7 @@ test('dev dependency should have dev = true', t => {
'pkg-with-good-optional': '^1.0.0',
},
}), {
shrinkwrapVersion: 3,
shrinkwrapVersion: 3.1,
registry: 'https://registry.npmjs.org',
dependencies: {
'pkg-with-good-optional': '1.0.0',
@@ -367,7 +367,7 @@ test('dev dependency should not have dev = true if it is used not only as dev',
'some-pkg': '^1.0.0',
},
}), {
shrinkwrapVersion: 3,
shrinkwrapVersion: 3.1,
registry: 'https://registry.npmjs.org',
dependencies: {
'some-pkg': '1.0.0',
@@ -438,7 +438,7 @@ test('remove dependencies that are not in the package', t => {
name: 'foo',
version: '1.0.0',
}), {
shrinkwrapVersion: 3,
shrinkwrapVersion: 3.1,
registry: 'https://registry.npmjs.org',
specifiers: {},
})
@@ -471,7 +471,7 @@ test('ignore dependencies that are in package.json but are not in shrinkwrap.yam
'is-negative': '^1.0.0',
}
}), {
shrinkwrapVersion: 3,
shrinkwrapVersion: 3.1,
registry: 'https://registry.npmjs.org',
dependencies: {
'is-positive': '1.0.0'

View File

@@ -9,13 +9,13 @@ test('read()', async t => {
const shr = await read(path.join('fixtures', '1'), {
ignoreIncompatible: false,
})
t.equal(shr!.shrinkwrapVersion, 3, 'converted version to shrinkwrapVersion')
t.equal(shr!.shrinkwrapVersion, 3.1, 'converted version to shrinkwrapVersion')
}
{
const shr = await read(path.join('fixtures', '2'), {
ignoreIncompatible: false,
})
t.equal(shr!.shrinkwrapVersion, 3)
t.equal(shr!.shrinkwrapVersion, 3.1)
}
t.end()
})
@@ -25,13 +25,13 @@ test('readPrivate()', async t => {
const shr = await readPrivate(path.join('fixtures', '1'), {
ignoreIncompatible: false,
})
t.equal(shr!.shrinkwrapVersion, 3, 'converted version to shrinkwrapVersion')
t.equal(shr!.shrinkwrapVersion, 3.1, 'converted version to shrinkwrapVersion')
}
{
const shr = await readPrivate(path.join('fixtures', '2'), {
ignoreIncompatible: false,
})
t.equal(shr!.shrinkwrapVersion, 3)
t.equal(shr!.shrinkwrapVersion, 3.1)
}
t.end()
})