1 | "use strict";
|
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.makeArray = exports.coercePkgArg = void 0;
|
7 | const fs_1 = __importDefault(require("fs"));
|
8 | const path_1 = __importDefault(require("path"));
|
9 | const micromatch_1 = __importDefault(require("micromatch"));
|
10 | const utils_1 = require("@terascope/utils");
|
11 | const packages_1 = require("./packages");
|
12 | const misc_1 = require("./misc");
|
13 | function coercePkgArg(input) {
|
14 | const names = makeArray(input);
|
15 | if (!names.length) {
|
16 | return [];
|
17 | }
|
18 | const packages = packages_1.listPackages();
|
19 | const pkgsObj = {};
|
20 | packages.forEach((info) => {
|
21 | pkgsObj[info.dir] = info;
|
22 | });
|
23 | const matches = Object.values(micromatch_1.default.matchKeys(pkgsObj, names.map((name) => {
|
24 | const resolved = path_1.default.resolve(name);
|
25 | if (fs_1.default.existsSync(resolved))
|
26 | return path_1.default.basename(resolved);
|
27 | return name;
|
28 | }), {
|
29 | basename: true
|
30 | })).filter(Boolean);
|
31 | if (matches.length < names.length) {
|
32 | const list = misc_1.formatList(packages_1.getPkgNames(packages));
|
33 | throw new Error(`Pattern ${names.join(', ')} must match one of:${list}`);
|
34 | }
|
35 | return matches;
|
36 | }
|
37 | exports.coercePkgArg = coercePkgArg;
|
38 | function makeArray(input) {
|
39 | if (!input)
|
40 | return [];
|
41 | if (Array.isArray(input)) {
|
42 | const arr = input
|
43 | .filter((val) => !utils_1.isEmpty(val))
|
44 | .map(utils_1.trim)
|
45 | .filter(Boolean);
|
46 | return utils_1.uniq(arr);
|
47 | }
|
48 | if (typeof input !== 'string')
|
49 | return [];
|
50 | return [utils_1.trim(input)].filter(Boolean);
|
51 | }
|
52 | exports.makeArray = makeArray;
|
53 |
|
\ | No newline at end of file |