presetter 3.1.0 → 3.3.0
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/README.md +7 -7
- package/lib/content.d.ts +1 -1
- package/lib/content.js +58 -129
- package/lib/directive.js +67 -196
- package/lib/error.js +12 -36
- package/lib/executable/entry.js +55 -73
- package/lib/executable/error.js +24 -55
- package/lib/executable/index.js +5 -23
- package/lib/index.js +20 -69
- package/lib/io.d.ts +1 -1
- package/lib/io.js +88 -170
- package/lib/package.js +58 -149
- package/lib/preset.js +160 -294
- package/lib/run.js +59 -127
- package/lib/scripts.js +52 -128
- package/lib/template.js +70 -139
- package/lib/types.d.ts +1 -0
- package/lib/types.js +2 -1
- package/package.json +9 -1
- package/lib/content.js.map +0 -1
- package/lib/directive.js.map +0 -1
- package/lib/error.js.map +0 -1
- package/lib/executable/entry.js.map +0 -1
- package/lib/executable/error.js.map +0 -1
- package/lib/executable/index.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/io.js.map +0 -1
- package/lib/package.js.map +0 -1
- package/lib/preset.js.map +0 -1
- package/lib/run.js.map +0 -1
- package/lib/scripts.js.map +0 -1
- package/lib/template.js.map +0 -1
- package/lib/types.js.map +0 -1
package/lib/package.js
CHANGED
@@ -1,159 +1,68 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
});
|
6
|
-
exports.arePeerPackagesAutoInstalled =
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
var _lodash = require("lodash");
|
15
|
-
|
16
|
-
var _os = require("os");
|
17
|
-
|
18
|
-
var _path = require("path");
|
19
|
-
|
20
|
-
var _readPkgUp = _interopRequireDefault(require("read-pkg-up"));
|
21
|
-
|
22
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
23
|
-
|
24
|
-
/*
|
25
|
-
* *** MIT LICENSE ***
|
26
|
-
* -------------------------------------------------------------------------
|
27
|
-
* This code may be modified and distributed under the MIT license.
|
28
|
-
* See the LICENSE file for details.
|
29
|
-
* -------------------------------------------------------------------------
|
30
|
-
*
|
31
|
-
* @summary Helpers for handling a package
|
32
|
-
*
|
33
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
34
|
-
* @license MIT
|
35
|
-
* @copyright Copyright (c) 2019 - All Rights Reserved.
|
36
|
-
* -------------------------------------------------------------------------
|
37
|
-
*/
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.reifyDependencies = exports.getPackage = exports.arePeerPackagesAutoInstalled = void 0;
|
7
|
+
const arborist_1 = require("@npmcli/arborist");
|
8
|
+
const config_1 = __importDefault(require("@npmcli/config"));
|
9
|
+
const lodash_1 = require("lodash");
|
10
|
+
const os_1 = require("os");
|
11
|
+
const path_1 = require("path");
|
12
|
+
const read_pkg_up_1 = __importDefault(require("read-pkg-up"));
|
38
13
|
const NPM_VERSION_FOR_PEER_INSTALLATION = 7;
|
39
|
-
/** package detail */
|
40
|
-
|
41
|
-
/**
|
42
|
-
* indicate whether peer packages would be installed automatically
|
43
|
-
* @returns true for npm v7+
|
44
|
-
*/
|
45
14
|
function arePeerPackagesAutoInstalled() {
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
const [name, version] = (_clientID$split = clientID === null || clientID === void 0 ? void 0 : clientID.split('/')) !== null && _clientID$split !== void 0 ? _clientID$split : [];
|
55
|
-
/* istanbul ignore next */
|
56
|
-
|
57
|
-
const [major] = (_version$split = version === null || version === void 0 ? void 0 : version.split('.')) !== null && _version$split !== void 0 ? _version$split : [];
|
58
|
-
return name === 'npm' && major !== undefined && parseInt(major) >= NPM_VERSION_FOR_PEER_INSTALLATION;
|
15
|
+
var _a, _b, _c, _d;
|
16
|
+
const [clientID] = (_b = (_a = process.env['npm_config_user_agent']) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
|
17
|
+
const [name, version] = (_c = clientID === null || clientID === void 0 ? void 0 : clientID.split('/')) !== null && _c !== void 0 ? _c : [];
|
18
|
+
const [major] = (_d = version === null || version === void 0 ? void 0 : version.split('.')) !== null && _d !== void 0 ? _d : [];
|
19
|
+
return (name === 'npm' &&
|
20
|
+
major !== undefined &&
|
21
|
+
parseInt(major) >= NPM_VERSION_FOR_PEER_INSTALLATION);
|
59
22
|
}
|
60
|
-
|
61
|
-
* get scripts from the targeted project's package.json
|
62
|
-
* @param root path to the project's root folder
|
63
|
-
* @returns package detail
|
64
|
-
*/
|
65
|
-
|
66
|
-
|
23
|
+
exports.arePeerPackagesAutoInstalled = arePeerPackagesAutoInstalled;
|
67
24
|
async function getPackage(root) {
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
const path = detail.path;
|
79
|
-
const json = (0, _lodash.defaultsDeep)(detail.packageJson, {
|
80
|
-
scripts: {}
|
81
|
-
});
|
82
|
-
return {
|
83
|
-
path,
|
84
|
-
json
|
85
|
-
};
|
25
|
+
const detail = await (0, read_pkg_up_1.default)({ cwd: root, normalize: true });
|
26
|
+
if (!detail) {
|
27
|
+
throw new Error("failed to find target's package.json");
|
28
|
+
}
|
29
|
+
const path = detail.path;
|
30
|
+
const json = (0, lodash_1.defaultsDeep)(detail.packageJson, {
|
31
|
+
scripts: {},
|
32
|
+
});
|
33
|
+
return { path, json };
|
86
34
|
}
|
87
|
-
|
88
|
-
* reify packages for the target project
|
89
|
-
* @param args list of packages and other options
|
90
|
-
* @param args.root directory of the project package.json
|
91
|
-
* @param args.add list of packages to be added
|
92
|
-
* @param args.remove list of packages to be removed
|
93
|
-
* @param args.saveAs type of dependency
|
94
|
-
* @param args.lockFile indicate whether package-lock.json should be produced
|
95
|
-
* @returns list of installed packages
|
96
|
-
*/
|
97
|
-
|
98
|
-
|
35
|
+
exports.getPackage = getPackage;
|
99
36
|
async function reifyDependencies(args) {
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
...config
|
116
|
-
}); // don't write to the lockfile
|
117
|
-
|
118
|
-
const actualTree = await arborist.reify({
|
119
|
-
add,
|
120
|
-
rm: remove,
|
121
|
-
saveType: saveAs,
|
122
|
-
save: lockFile,
|
123
|
-
update: true
|
124
|
-
});
|
125
|
-
return [...actualTree.edgesOut.values()].map(edge => ({
|
126
|
-
name: edge.name,
|
127
|
-
spec: edge.spec
|
128
|
-
}));
|
37
|
+
const { root, add = [], remove = [], saveAs = 'prod', lockFile = false, } = Object.assign({}, args);
|
38
|
+
const config = await getNPMConfig();
|
39
|
+
const workspacesEnabled = arePeerPackagesAutoInstalled();
|
40
|
+
const arborist = new arborist_1.Arborist(Object.assign({ path: root, workspacesEnabled }, config));
|
41
|
+
const actualTree = await arborist.reify({
|
42
|
+
add,
|
43
|
+
rm: remove,
|
44
|
+
saveType: saveAs,
|
45
|
+
save: lockFile,
|
46
|
+
update: true,
|
47
|
+
});
|
48
|
+
return [...actualTree.edgesOut.values()].map((edge) => ({
|
49
|
+
name: edge.name,
|
50
|
+
spec: edge.spec,
|
51
|
+
}));
|
129
52
|
}
|
130
|
-
|
131
|
-
* get the url of the package registry of the target project
|
132
|
-
* @returns url of the registry
|
133
|
-
*/
|
134
|
-
|
135
|
-
|
53
|
+
exports.reifyDependencies = reifyDependencies;
|
136
54
|
async function getNPMConfig() {
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
npmPath: '.',
|
150
|
-
flatten: (config, flattenedConfig) => {
|
151
|
-
// NOTE: this function is called multiple time for flattening the configs at multiple levels, user, project, cli etc.
|
152
|
-
// ensure that higher level configs are always in priority
|
153
|
-
Object.assign(flattenedConfig, config);
|
154
|
-
}
|
155
|
-
});
|
156
|
-
await config.load();
|
157
|
-
return config.flat;
|
55
|
+
const config = new config_1.default({
|
56
|
+
definitions: {
|
57
|
+
userconfig: { default: (0, path_1.resolve)((0, os_1.homedir)(), '.npmrc'), type: String },
|
58
|
+
registry: { default: 'https://registry.npmjs.org', type: String },
|
59
|
+
},
|
60
|
+
npmPath: '.',
|
61
|
+
flatten: (config, flattenedConfig) => {
|
62
|
+
Object.assign(flattenedConfig, config);
|
63
|
+
},
|
64
|
+
});
|
65
|
+
await config.load();
|
66
|
+
return config.flat;
|
158
67
|
}
|
159
|
-
//# sourceMappingURL=
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9wYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQWVBLCtDQUE0QztBQUM1Qyw0REFBb0M7QUFDcEMsbUNBQXNDO0FBQ3RDLDJCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsOERBQTRDO0FBSTVDLE1BQU0saUNBQWlDLEdBQUcsQ0FBQyxDQUFDO0FBYzVDLFNBQWdCLDRCQUE0Qjs7SUFJMUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUNkLE1BQUEsTUFBQSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLDBDQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsbUNBQUssRUFBa0IsQ0FBQztJQUcxRSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLE1BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsbUNBQUssRUFBa0IsQ0FBQztJQUdwRSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxtQ0FBSyxFQUFrQixDQUFDO0lBRTNELE9BQU8sQ0FDTCxJQUFJLEtBQUssS0FBSztRQUNkLEtBQUssS0FBSyxTQUFTO1FBQ25CLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQ0FBaUMsQ0FDckQsQ0FBQztBQUNKLENBQUM7QUFsQkQsb0VBa0JDO0FBT00sS0FBSyxVQUFVLFVBQVUsQ0FBQyxJQUFhO0lBRTVDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxxQkFBaUIsRUFBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFHdkUsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztLQUN6RDtJQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDekIsTUFBTSxJQUFJLEdBQUcsSUFBQSxxQkFBWSxFQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7UUFDNUMsT0FBTyxFQUFFLEVBQUU7S0FDWixDQUFvQixDQUFDO0lBRXRCLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDeEIsQ0FBQztBQWZELGdDQWVDO0FBWU0sS0FBSyxVQUFVLGlCQUFpQixDQUFDLElBTXZDO0lBQ0MsTUFBTSxFQUNKLElBQUksRUFDSixHQUFHLEdBQUcsRUFBRSxFQUNSLE1BQU0sR0FBRyxFQUFFLEVBQ1gsTUFBTSxHQUFHLE1BQU0sRUFDZixRQUFRLEdBQUcsS0FBSyxHQUNqQixxQkFBUSxJQUFJLENBQUUsQ0FBQztJQUdoQixNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksRUFBRSxDQUFDO0lBQ3BDLE1BQU0saUJBQWlCLEdBQUcsNEJBQTRCLEVBQUUsQ0FBQztJQUN6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLG1CQUFRLGlCQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsaUJBQWlCLElBQUssTUFBTSxFQUFHLENBQUM7SUFHNUUsTUFBTSxVQUFVLEdBQUcsTUFBTSxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ3RDLEdBQUc7UUFDSCxFQUFFLEVBQUUsTUFBTTtRQUNWLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLElBQUksRUFBRSxRQUFRO1FBQ2QsTUFBTSxFQUFFLElBQUk7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtLQUNoQixDQUFDLENBQUMsQ0FBQztBQUNOLENBQUM7QUFqQ0QsOENBaUNDO0FBTUQsS0FBSyxVQUFVLFlBQVk7SUFFekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxnQkFBTSxDQUFDO1FBQ3hCLFdBQVcsRUFBRTtZQUNYLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFBLGNBQU8sRUFBQyxJQUFBLFlBQU8sR0FBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDbkUsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7U0FDbEU7UUFDRCxPQUFPLEVBQUUsR0FBRztRQUNaLE9BQU8sRUFBRSxDQUNQLE1BQThCLEVBQzlCLGVBQXVDLEVBQ2pDLEVBQUU7WUFJUixNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFcEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3JCLENBQUMifQ==
|