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/lib/package.js CHANGED
@@ -1,159 +1,68 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.arePeerPackagesAutoInstalled = arePeerPackagesAutoInstalled;
7
- exports.getPackage = getPackage;
8
- exports.reifyDependencies = reifyDependencies;
9
-
10
- var _arborist = require("@npmcli/arborist");
11
-
12
- var _config = _interopRequireDefault(require("@npmcli/config"));
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
- var _process$env$npm_conf, _process$env$npm_conf2, _clientID$split, _version$split;
47
-
48
- // NOTE npm_config_user_agent should be in the form of 'npm/7.3.0 node/v15.5.0 darwin x64'
49
-
50
- /* istanbul ignore next */
51
- const [clientID] = (_process$env$npm_conf = (_process$env$npm_conf2 = process.env['npm_config_user_agent']) === null || _process$env$npm_conf2 === void 0 ? void 0 : _process$env$npm_conf2.split(' ')) !== null && _process$env$npm_conf !== void 0 ? _process$env$npm_conf : [];
52
- /* istanbul ignore next */
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
- // try to find the target project's package.json
69
- const detail = await (0, _readPkgUp.default)({
70
- cwd: root,
71
- normalize: true
72
- }); // throw an error if there's no package.json found
73
-
74
- if (!detail) {
75
- throw new Error("failed to find target's package.json");
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
- const {
101
- root,
102
- add = [],
103
- remove = [],
104
- saveAs = 'prod',
105
- lockFile = false
106
- } = { ...args
107
- }; // use arborist to install peer dependencies
108
-
109
- const config = await getNPMConfig();
110
- const workspacesEnabled = arePeerPackagesAutoInstalled(); // no workspace before npm 7
111
-
112
- const arborist = new _arborist.Arborist({
113
- path: root,
114
- workspacesEnabled,
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
- // get npm config
138
- const config = new _config.default({
139
- definitions: {
140
- userconfig: {
141
- default: (0, _path.resolve)((0, _os.homedir)(), '.npmrc'),
142
- type: String
143
- },
144
- registry: {
145
- default: 'https://registry.npmjs.org',
146
- type: String
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=package.js.map
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9wYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQWVBLCtDQUE0QztBQUM1Qyw0REFBb0M7QUFDcEMsbUNBQXNDO0FBQ3RDLDJCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsOERBQTRDO0FBSTVDLE1BQU0saUNBQWlDLEdBQUcsQ0FBQyxDQUFDO0FBYzVDLFNBQWdCLDRCQUE0Qjs7SUFJMUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUNkLE1BQUEsTUFBQSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLDBDQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsbUNBQUssRUFBa0IsQ0FBQztJQUcxRSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLE1BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsbUNBQUssRUFBa0IsQ0FBQztJQUdwRSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxtQ0FBSyxFQUFrQixDQUFDO0lBRTNELE9BQU8sQ0FDTCxJQUFJLEtBQUssS0FBSztRQUNkLEtBQUssS0FBSyxTQUFTO1FBQ25CLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQ0FBaUMsQ0FDckQsQ0FBQztBQUNKLENBQUM7QUFsQkQsb0VBa0JDO0FBT00sS0FBSyxVQUFVLFVBQVUsQ0FBQyxJQUFhO0lBRTVDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxxQkFBaUIsRUFBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFHdkUsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztLQUN6RDtJQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDekIsTUFBTSxJQUFJLEdBQUcsSUFBQSxxQkFBWSxFQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7UUFDNUMsT0FBTyxFQUFFLEVBQUU7S0FDWixDQUFvQixDQUFDO0lBRXRCLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDeEIsQ0FBQztBQWZELGdDQWVDO0FBWU0sS0FBSyxVQUFVLGlCQUFpQixDQUFDLElBTXZDO0lBQ0MsTUFBTSxFQUNKLElBQUksRUFDSixHQUFHLEdBQUcsRUFBRSxFQUNSLE1BQU0sR0FBRyxFQUFFLEVBQ1gsTUFBTSxHQUFHLE1BQU0sRUFDZixRQUFRLEdBQUcsS0FBSyxHQUNqQixxQkFBUSxJQUFJLENBQUUsQ0FBQztJQUdoQixNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksRUFBRSxDQUFDO0lBQ3BDLE1BQU0saUJBQWlCLEdBQUcsNEJBQTRCLEVBQUUsQ0FBQztJQUN6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLG1CQUFRLGlCQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsaUJBQWlCLElBQUssTUFBTSxFQUFHLENBQUM7SUFHNUUsTUFBTSxVQUFVLEdBQUcsTUFBTSxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ3RDLEdBQUc7UUFDSCxFQUFFLEVBQUUsTUFBTTtRQUNWLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLElBQUksRUFBRSxRQUFRO1FBQ2QsTUFBTSxFQUFFLElBQUk7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtLQUNoQixDQUFDLENBQUMsQ0FBQztBQUNOLENBQUM7QUFqQ0QsOENBaUNDO0FBTUQsS0FBSyxVQUFVLFlBQVk7SUFFekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxnQkFBTSxDQUFDO1FBQ3hCLFdBQVcsRUFBRTtZQUNYLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFBLGNBQU8sRUFBQyxJQUFBLFlBQU8sR0FBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDbkUsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7U0FDbEU7UUFDRCxPQUFPLEVBQUUsR0FBRztRQUNaLE9BQU8sRUFBRSxDQUNQLE1BQThCLEVBQzlCLGVBQXVDLEVBQ2pDLEVBQUU7WUFJUixNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFcEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3JCLENBQUMifQ==