@npmcli/arborist 6.0.0-pre.0 → 6.0.0-pre.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/add-rm-pkg-deps.js +12 -11
- package/package.json +3 -3
package/lib/add-rm-pkg-deps.js
CHANGED
|
@@ -5,23 +5,24 @@ const localeCompare = require('@isaacs/string-locale-compare')('en')
|
|
|
5
5
|
|
|
6
6
|
const add = ({ pkg, add, saveBundle, saveType }) => {
|
|
7
7
|
for (const { name, rawSpec } of add) {
|
|
8
|
+
let addSaveType = saveType
|
|
8
9
|
// if the user does not give us a type, we infer which type(s)
|
|
9
10
|
// to keep based on the same order of priority we do when
|
|
10
11
|
// building the tree as defined in the _loadDeps method of
|
|
11
12
|
// the node class.
|
|
12
|
-
if (!
|
|
13
|
-
|
|
13
|
+
if (!addSaveType) {
|
|
14
|
+
addSaveType = inferSaveType(pkg, name)
|
|
14
15
|
}
|
|
15
16
|
|
|
16
|
-
if (
|
|
17
|
+
if (addSaveType === 'prod') {
|
|
17
18
|
// a production dependency can only exist as production (rpj ensures it
|
|
18
19
|
// doesn't coexist w/ optional)
|
|
19
20
|
deleteSubKey(pkg, 'devDependencies', name, 'dependencies')
|
|
20
21
|
deleteSubKey(pkg, 'peerDependencies', name, 'dependencies')
|
|
21
|
-
} else if (
|
|
22
|
+
} else if (addSaveType === 'dev') {
|
|
22
23
|
// a dev dependency may co-exist as peer, or optional, but not production
|
|
23
24
|
deleteSubKey(pkg, 'dependencies', name, 'devDependencies')
|
|
24
|
-
} else if (
|
|
25
|
+
} else if (addSaveType === 'optional') {
|
|
25
26
|
// an optional dependency may co-exist as dev (rpj ensures it doesn't
|
|
26
27
|
// coexist w/ prod)
|
|
27
28
|
deleteSubKey(pkg, 'peerDependencies', name, 'optionalDependencies')
|
|
@@ -31,23 +32,23 @@ const add = ({ pkg, add, saveBundle, saveType }) => {
|
|
|
31
32
|
deleteSubKey(pkg, 'optionalDependencies', name, 'peerDependencies')
|
|
32
33
|
}
|
|
33
34
|
|
|
34
|
-
const depType = saveTypeMap.get(
|
|
35
|
+
const depType = saveTypeMap.get(addSaveType)
|
|
35
36
|
|
|
36
37
|
pkg[depType] = pkg[depType] || {}
|
|
37
38
|
if (rawSpec !== '' || pkg[depType][name] === undefined) {
|
|
38
39
|
pkg[depType][name] = rawSpec || '*'
|
|
39
40
|
}
|
|
40
|
-
if (
|
|
41
|
+
if (addSaveType === 'optional') {
|
|
41
42
|
// Affordance for previous npm versions that require this behaviour
|
|
42
43
|
pkg.dependencies = pkg.dependencies || {}
|
|
43
44
|
pkg.dependencies[name] = pkg.optionalDependencies[name]
|
|
44
45
|
}
|
|
45
46
|
|
|
46
|
-
if (
|
|
47
|
+
if (addSaveType === 'peer' || addSaveType === 'peerOptional') {
|
|
47
48
|
const pdm = pkg.peerDependenciesMeta || {}
|
|
48
|
-
if (
|
|
49
|
+
if (addSaveType === 'peer' && pdm[name] && pdm[name].optional) {
|
|
49
50
|
pdm[name].optional = false
|
|
50
|
-
} else if (
|
|
51
|
+
} else if (addSaveType === 'peerOptional') {
|
|
51
52
|
pdm[name] = pdm[name] || {}
|
|
52
53
|
pdm[name].optional = true
|
|
53
54
|
pkg.peerDependenciesMeta = pdm
|
|
@@ -59,7 +60,7 @@ const add = ({ pkg, add, saveBundle, saveType }) => {
|
|
|
59
60
|
}
|
|
60
61
|
}
|
|
61
62
|
|
|
62
|
-
if (saveBundle &&
|
|
63
|
+
if (saveBundle && addSaveType !== 'peer' && addSaveType !== 'peerOptional') {
|
|
63
64
|
// keep it sorted, keep it unique
|
|
64
65
|
const bd = new Set(pkg.bundleDependencies || [])
|
|
65
66
|
bd.add(name)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@npmcli/arborist",
|
|
3
|
-
"version": "6.0.0-pre.
|
|
3
|
+
"version": "6.0.0-pre.1",
|
|
4
4
|
"description": "Manage node_modules trees",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@isaacs/string-locale-compare": "^1.1.0",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@npmcli/eslint-config": "^3.1.0",
|
|
45
|
-
"@npmcli/template-oss": "4.
|
|
45
|
+
"@npmcli/template-oss": "4.1.2",
|
|
46
46
|
"benchmark": "^2.1.4",
|
|
47
47
|
"chalk": "^4.1.0",
|
|
48
48
|
"minify-registry-metadata": "^2.1.0",
|
|
@@ -100,6 +100,6 @@
|
|
|
100
100
|
},
|
|
101
101
|
"templateOSS": {
|
|
102
102
|
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
|
|
103
|
-
"version": "4.
|
|
103
|
+
"version": "4.1.2"
|
|
104
104
|
}
|
|
105
105
|
}
|