UNPKG

1.84 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6exports.makeArray = exports.coercePkgArg = void 0;
7const fs_1 = __importDefault(require("fs"));
8const path_1 = __importDefault(require("path"));
9const micromatch_1 = __importDefault(require("micromatch"));
10const utils_1 = require("@terascope/utils");
11const packages_1 = require("./packages");
12const misc_1 = require("./misc");
13function 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}
37exports.coercePkgArg = coercePkgArg;
38function 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}
52exports.makeArray = makeArray;
53//# sourceMappingURL=args.js.map
\No newline at end of file