presetter 3.5.5 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -3
  3. package/bin/cli.js +5 -0
  4. package/bin/run-p.js +6 -0
  5. package/bin/run-s.js +6 -0
  6. package/bin/{run → run.js} +4 -2
  7. package/lib/content.d.ts +1 -1
  8. package/lib/content.js +58 -66
  9. package/lib/directive.d.ts +3 -3
  10. package/lib/directive.js +12 -17
  11. package/lib/error.js +2 -6
  12. package/lib/executable/entry.d.ts +1 -1
  13. package/lib/executable/entry.js +57 -24
  14. package/lib/executable/error.js +12 -19
  15. package/lib/executable/index.js +5 -6
  16. package/lib/index.d.ts +6 -6
  17. package/lib/index.js +7 -23
  18. package/lib/io.d.ts +7 -4
  19. package/lib/io.js +53 -57
  20. package/lib/package.d.ts +3 -5
  21. package/lib/package.js +18 -31
  22. package/lib/preset/content.d.ts +6 -0
  23. package/lib/preset/content.js +13 -0
  24. package/lib/preset/context.d.ts +2 -0
  25. package/lib/preset/context.js +14 -0
  26. package/lib/preset/graph.d.ts +4 -0
  27. package/lib/preset/graph.js +20 -0
  28. package/lib/preset/index.d.ts +3 -0
  29. package/lib/preset/index.js +4 -0
  30. package/lib/preset/mapping.d.ts +2 -0
  31. package/lib/preset/mapping.js +15 -0
  32. package/lib/preset/presetterRC.d.ts +5 -0
  33. package/lib/preset/presetterRC.js +38 -0
  34. package/lib/preset/scripts.d.ts +1 -0
  35. package/lib/preset/scripts.js +10 -0
  36. package/lib/preset/setup.d.ts +6 -0
  37. package/lib/preset/setup.js +43 -0
  38. package/lib/preset/unset.d.ts +1 -0
  39. package/lib/preset/unset.js +14 -0
  40. package/lib/resolution.d.ts +1 -1
  41. package/lib/resolution.js +11 -17
  42. package/lib/run.d.ts +5 -1
  43. package/lib/run.js +68 -74
  44. package/lib/scripts.d.ts +3 -3
  45. package/lib/scripts.js +13 -15
  46. package/lib/task.d.ts +8 -0
  47. package/lib/task.js +37 -0
  48. package/lib/template.d.ts +6 -6
  49. package/lib/template.js +25 -35
  50. package/lib/utilities/index.d.ts +1 -0
  51. package/lib/utilities/index.js +2 -0
  52. package/lib/utilities/mapValues.d.ts +1 -0
  53. package/lib/utilities/mapValues.js +4 -0
  54. package/package.json +35 -43
  55. package/bin/cli +0 -3
  56. package/lib/preset.d.ts +0 -15
  57. package/lib/preset.js +0 -188
  58. package/lib/types.d.ts +0 -73
  59. package/lib/types.js +0 -3
package/lib/resolution.js CHANGED
@@ -1,35 +1,29 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadDynamic = exports.loadDynamicMap = exports.getConfigKey = void 0;
4
- const fs_1 = require("fs");
5
- const path_1 = require("path");
6
- const io_1 = require("./io");
7
- function getConfigKey(filename) {
8
- return (0, path_1.basename)(filename, (0, path_1.extname)(filename))
1
+ import { existsSync } from 'node:fs';
2
+ import { basename, extname } from 'node:path';
3
+ import { loadFile } from './io.js';
4
+ export function getConfigKey(filename) {
5
+ return basename(filename, extname(filename))
9
6
  .replace(/^\./, '')
10
7
  .replace(/rc$/, '')
11
8
  .replace(/\.config$/, '');
12
9
  }
13
- exports.getConfigKey = getConfigKey;
14
- async function loadDynamicMap(map, context) {
10
+ export async function loadDynamicMap(map, context) {
15
11
  return Object.fromEntries(await Promise.all(Object.entries(map instanceof Function
16
12
  ? await map(context)
17
- : Object.assign({}, map)).map(async ([relativePath, value]) => [
13
+ : { ...map }).map(async ([relativePath, value]) => [
18
14
  relativePath,
19
15
  await loadDynamic(value, context),
20
16
  ])));
21
17
  }
22
- exports.loadDynamicMap = loadDynamicMap;
23
- async function loadDynamic(value, context) {
18
+ export async function loadDynamic(value, context) {
24
19
  if (typeof value === 'function') {
25
20
  return value(context);
26
21
  }
27
- else if (typeof value === 'string' && (0, fs_1.existsSync)(value)) {
28
- return (0, io_1.loadFile)(value);
22
+ else if (typeof value === 'string' && existsSync(value)) {
23
+ return loadFile(value);
29
24
  }
30
25
  else {
31
26
  return value;
32
27
  }
33
28
  }
34
- exports.loadDynamic = loadDynamic;
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWVBLDJCQUFnQztBQUNoQywrQkFBeUM7QUFFekMsNkJBQWdDO0FBa0JoQyxTQUFnQixZQUFZLENBQUMsUUFBZ0I7SUFDM0MsT0FBTyxJQUFBLGVBQVEsRUFBQyxRQUFRLEVBQUUsSUFBQSxjQUFPLEVBQUMsUUFBUSxDQUFDLENBQUM7U0FDekMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7U0FDbEIsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7U0FDbEIsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBTEQsb0NBS0M7QUFRTSxLQUFLLFVBQVUsY0FBYyxDQUNsQyxHQUFtQixFQUNuQixPQUFxRDtJQUdyRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixNQUFNLENBQUMsT0FBTyxDQUNaLEdBQUcsWUFBWSxRQUFRO1FBQ3JCLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxPQUFnQyxDQUFDO1FBQzdDLENBQUMsbUJBQU0sR0FBRyxDQUFFLENBQ2YsQ0FBQyxHQUFHLENBQ0gsS0FBSyxFQUFFLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUEwQixFQUFFLENBQUM7UUFDdkQsWUFBWTtRQUNaLE1BQU0sV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFnQyxDQUFDO0tBQzNELENBQ0YsQ0FDRixDQUNGLENBQUM7QUFDSixDQUFDO0FBbkJELHdDQW1CQztBQVFNLEtBQUssVUFBVSxXQUFXLENBSS9CLEtBR21CLEVBQ25CLE9BQWlDO0lBRWpDLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFO1FBQy9CLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3ZCO1NBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksSUFBQSxlQUFVLEVBQUMsS0FBSyxDQUFDLEVBQUU7UUFDekQsT0FBTyxJQUFBLGFBQVEsRUFBQyxLQUFLLENBQU0sQ0FBQztLQUM3QjtTQUFNO1FBQ0wsT0FBTyxLQUFVLENBQUM7S0FDbkI7QUFDSCxDQUFDO0FBakJELGtDQWlCQyJ9
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQWtCaEMsTUFBTSxVQUFVLFlBQVksQ0FBQyxRQUFnQjtJQUMzQyxPQUFPLFFBQVEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3pDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1NBQ2xCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1NBQ2xCLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQVFELE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUNsQyxHQUFtQixFQUNuQixPQUFxRDtJQUdyRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixNQUFNLENBQUMsT0FBTyxDQUNaLEdBQUcsWUFBWSxRQUFRO1FBQ3JCLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxPQUFnQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQ2YsQ0FBQyxHQUFHLENBQ0gsS0FBSyxFQUFFLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUEwQixFQUFFLENBQUM7UUFDdkQsWUFBWTtRQUNaLE1BQU0sV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFnQyxDQUFDO0tBQzNELENBQ0YsQ0FDRixDQUNGLENBQUM7QUFDSixDQUFDO0FBUUQsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBSS9CLEtBR21CLEVBQ25CLE9BQWlDO0lBRWpDLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFO1FBQy9CLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3ZCO1NBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3pELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBTSxDQUFDO0tBQzdCO1NBQU07UUFDTCxPQUFPLEtBQVUsQ0FBQztLQUNuQjtBQUNILENBQUMifQ==
package/lib/run.d.ts CHANGED
@@ -1 +1,5 @@
1
- export declare function run(task: string, argv?: string[]): Promise<void>;
1
+ import type { Task } from './task.js';
2
+ export declare function run(tasks: Task[], options?: {
3
+ parallel?: boolean;
4
+ templateOnly?: boolean;
5
+ }): Promise<void>;
package/lib/run.js CHANGED
@@ -1,82 +1,76 @@
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.run = void 0;
7
- const execa_1 = __importDefault(require("execa"));
8
- const fs_1 = require("fs");
9
- const lodash_1 = require("lodash");
10
- const path_1 = require("path");
11
- const package_1 = require("./package");
12
- const preset_1 = require("./preset");
13
- const scripts_1 = require("./scripts");
14
- class TemporaryPackageJSONManager {
15
- constructor(packageDetail) {
16
- this.path = (0, path_1.resolve)((0, path_1.dirname)(packageDetail.path), '~' + (0, path_1.basename)(packageDetail.path));
17
- this.package = packageDetail;
18
- this.shouldRestore = !(0, fs_1.existsSync)(this.path);
19
- }
20
- async replace(task) {
21
- delete this.package.json.scripts[task];
22
- const template = await (0, preset_1.getScripts)();
23
- this.package.json.scripts = (0, scripts_1.composeScripts)({
24
- template,
25
- target: Object.assign({}, this.package.json.scripts),
26
- });
27
- if (this.shouldRestore) {
28
- try {
29
- (0, fs_1.renameSync)(this.package.path, this.path);
30
- }
31
- catch (_a) {
32
- throw new Error('failed to backup package.json');
33
- }
34
- }
35
- const PADDING = 2;
36
- const content = JSON.stringify(this.package.json, null, PADDING);
37
- try {
38
- (0, fs_1.writeFileSync)(this.package.path, content);
39
- }
40
- catch (_b) {
41
- throw new Error('failed to write to package.json');
42
- }
43
- }
44
- async restore() {
45
- if (this.shouldRestore) {
46
- try {
47
- (0, fs_1.unlinkSync)(this.package.path);
48
- (0, fs_1.renameSync)(this.path, this.package.path);
1
+ import { dirname } from 'node:path';
2
+ import npmRunScript from '@npmcli/run-script';
3
+ import { Listr } from 'listr2';
4
+ import parse from 'yargs-parser';
5
+ import { getPackage } from './package.js';
6
+ import { getScripts } from './preset/index.js';
7
+ import { composeScripts } from './scripts.js';
8
+ import { parseGlobalArgs, parseTaskSpec, selectTasks } from './task.js';
9
+ function createListrTask(_) {
10
+ const { composed, template, task, args, pkg } = _;
11
+ return {
12
+ title: `Running ${task}...`,
13
+ task: async (_, taskControl) => {
14
+ const command = composed[task];
15
+ const argv = parse(command);
16
+ const [executable, ...taskSpecs] = argv._.map((arg) => arg.toString());
17
+ if (['run-s', 'run-p'].includes(executable)) {
18
+ const globalArgs = [...parseGlobalArgs(argv), ...args];
19
+ const subTasks = taskSpecs.flatMap((taskSpec) => getListrTasksBySpec({ template, pkg, taskSpec, globalArgs }));
20
+ const concurrent = executable === 'run-p';
21
+ return taskControl.newListr(subTasks, { concurrent });
49
22
  }
50
- catch (_a) {
51
- throw new Error('failed to restore package.json');
23
+ else {
24
+ return runWithNPM({ task, args, pkg, composedScript: composed });
52
25
  }
53
- }
54
- }
26
+ },
27
+ };
55
28
  }
56
- async function run(task, argv = []) {
57
- const packageDetail = await (0, package_1.getPackage)();
58
- const manager = new TemporaryPackageJSONManager(packageDetail);
59
- await manager.replace(task);
60
- const restore = (0, lodash_1.once)(async (isInterrupted) => {
61
- process.removeListener('SIGINT', restore);
62
- await manager.restore();
63
- if (isInterrupted) {
64
- const SIGINT = 130;
65
- process.exit(SIGINT);
66
- }
29
+ function getListrTasksBySpec(_) {
30
+ const { template, pkg, taskSpec, globalArgs } = _;
31
+ const task = parseTaskSpec(taskSpec.toString().replace(/^(['"])([^]*?)\1$/, '$2'), globalArgs);
32
+ return getListrTasks({
33
+ template,
34
+ pkg,
35
+ selector: task.selector,
36
+ args: task.args,
67
37
  });
68
- process.on('SIGINT', restore.bind(run, true));
69
- process.on('SIGTERM', restore.bind(run, false));
70
- const { exitCode } = await (0, execa_1.default)('npm', ['run', task, '--', ...argv], {
71
- cwd: (0, path_1.dirname)(packageDetail.path),
38
+ }
39
+ function getListrTasks(_) {
40
+ const { template, pkg, selector, args } = _;
41
+ const target = { ...pkg.json.scripts };
42
+ const composed = composeScripts({ template, target });
43
+ const tasks = selectTasks(Object.keys(composed), selector);
44
+ return tasks.map((task) => createListrTask({ composed, template, pkg, task, args }));
45
+ }
46
+ async function runWithNPM(_) {
47
+ const { task, args, pkg, composedScript } = _;
48
+ return npmRunScript({
49
+ event: task,
50
+ args,
51
+ pkg: { scripts: composedScript },
52
+ path: dirname(pkg.path),
72
53
  stdio: 'inherit',
73
- reject: false,
74
- shell: true,
75
54
  });
76
- await restore(false);
77
- if (exitCode > 0) {
78
- process.exit(exitCode);
55
+ }
56
+ export async function run(tasks, options) {
57
+ const { parallel = false, templateOnly = false } = { ...options };
58
+ const pkg = await getPackage();
59
+ if (templateOnly) {
60
+ pkg.json.scripts = {};
61
+ }
62
+ const template = await getScripts();
63
+ const listTasks = tasks.flatMap((task) => getListrTasks({ template, pkg, ...task }));
64
+ const listr = new Listr(listTasks, {
65
+ concurrent: parallel,
66
+ exitOnError: true,
67
+ renderer: 'simple',
68
+ });
69
+ try {
70
+ await listr.run();
71
+ }
72
+ catch {
73
+ process.exit(1);
79
74
  }
80
75
  }
81
- exports.run = run;
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc291cmNlL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFlQSxrREFBMEI7QUFDMUIsMkJBQXVFO0FBQ3ZFLG1DQUE4QjtBQUM5QiwrQkFBa0Q7QUFFbEQsdUNBQXVDO0FBQ3ZDLHFDQUFzQztBQUN0Qyx1Q0FBMkM7QUFLM0MsTUFBTSwyQkFBMkI7SUFVL0IsWUFBWSxhQUFzQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUEsY0FBTyxFQUNqQixJQUFBLGNBQU8sRUFBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQzNCLEdBQUcsR0FBRyxJQUFBLGVBQVEsRUFBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQ25DLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBQSxlQUFVLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFNTSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQVk7UUFFL0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFHdkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLG1CQUFVLEdBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBQSx3QkFBYyxFQUFDO1lBQ3pDLFFBQVE7WUFDUixNQUFNLG9CQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FDN0I7U0FDRixDQUFDLENBQUM7UUFHSCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSTtnQkFDRixJQUFBLGVBQVUsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUM7WUFB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
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc291cmNlL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFL0IsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQWdCckUsU0FBUyxlQUFlLENBQUMsQ0FNeEI7SUFDQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVsRCxPQUFPO1FBQ0wsS0FBSyxFQUFFLFdBQVcsSUFBSSxLQUFLO1FBQzNCLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFO1lBQzdCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUcvQixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUIsTUFBTSxDQUFDLFVBQVUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUd2RSxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FB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
package/lib/scripts.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- declare type ScriptName = string;
2
- declare type Command = string;
3
- export declare type Script = Record<ScriptName, Command>;
1
+ type ScriptName = string;
2
+ type Command = string;
3
+ export type Script = Record<ScriptName, Command>;
4
4
  export declare function composeScripts(args: {
5
5
  template: Script;
6
6
  target: Script;
package/lib/scripts.js CHANGED
@@ -1,17 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.composeScripts = void 0;
4
- const lodash_1 = require("lodash");
5
- const mvdan_sh_1 = require("mvdan-sh");
6
- const path_1 = require("path");
7
- const parser = mvdan_sh_1.syntax.NewParser();
8
- const printer = mvdan_sh_1.syntax.NewPrinter();
9
- function composeScripts(args) {
1
+ import { basename } from 'node:path';
2
+ import mvdan from 'mvdan-sh';
3
+ import { mapValues } from './utilities/index.js';
4
+ const { syntax } = mvdan;
5
+ const parser = syntax.NewParser();
6
+ const printer = syntax.NewPrinter();
7
+ export function composeScripts(args) {
10
8
  const { template, target } = args;
11
- return (0, lodash_1.mapValues)(Object.assign(Object.assign({}, template), target), (command) => {
9
+ return mapValues({ ...template, ...target }, (command) => {
12
10
  try {
13
11
  const ast = parser.Parse(command);
14
- mvdan_sh_1.syntax.Walk(ast, (node) => replaceRunnerNode(node, { template, target }));
12
+ syntax.Walk(ast, (node) => replaceRunnerNode(node, { template, target }));
15
13
  const [statement] = ast.Stmts;
16
14
  if (isNodeType(statement.Cmd, 'Subshell')) {
17
15
  statement.Cmd = statement.Cmd.Stmts[0].Cmd;
@@ -28,9 +26,8 @@ function composeScripts(args) {
28
26
  }
29
27
  });
30
28
  }
31
- exports.composeScripts = composeScripts;
32
29
  function isNodeType(node, type) {
33
- return mvdan_sh_1.syntax.NodeType(node) === type;
30
+ return syntax.NodeType(node) === type;
34
31
  }
35
32
  function resolveRunner(command, context) {
36
33
  const parts = command.split(' ');
@@ -52,11 +49,12 @@ function resolveRunner(command, context) {
52
49
  function replaceRunnerNode(node, context) {
53
50
  if (isNodeType(node, 'Stmt') && isNodeType(node.Cmd, 'CallExpr')) {
54
51
  const parts = node.Cmd.Args.map((part) => part.Parts[0].Value);
55
- if ((0, path_1.basename)(parts[0]) === 'run') {
52
+ if (basename(parts[0]) === 'run') {
56
53
  const resolvedCommand = resolveRunner(parts.join(' '), context);
57
54
  node.Cmd = parser.Parse(`(${resolvedCommand})`).Stmts[0].Cmd;
55
+ replaceRunnerNode(node.Cmd, context);
58
56
  }
59
57
  }
60
58
  return true;
61
59
  }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9zY3JpcHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWVBLG1DQUFtQztBQUNuQyx1Q0FBa0M7QUFDbEMsK0JBQWdDO0FBY2hDLE1BQU0sTUFBTSxHQUFHLGlCQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7QUFHbEMsTUFBTSxPQUFPLEdBQUcsaUJBQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQWlCcEMsU0FBZ0IsY0FBYyxDQUFDLElBSzlCO0lBQ0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFbEMsT0FBTyxJQUFBLGtCQUFTLGtDQUFNLFFBQVEsR0FBSyxNQUFNLEdBQUksQ0FBQyxPQUFPLEVBQVUsRUFBRTtRQUMvRCxJQUFJO1lBRUYsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUdsQyxpQkFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFHMUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDOUIsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsRUFBRTtnQkFDekMsU0FBUyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7YUFDNUM7WUFHRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbEM7UUFBQyxPQUFPLEtBQWMsRUFBRTtZQUN2QixJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7Z0JBQzFCLE1BQU0sS0FBSyxDQUFDO2FBQ2I7aUJBQU07Z0JBRUwsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUN4RDtTQUNGO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBakNELHdDQWlDQztBQVdELFNBQVMsVUFBVSxDQUFDLElBQVUsRUFBRSxJQUFZO0lBQzFDLE9BQU8saUJBQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDO0FBQ3hDLENBQUM7QUFRRCxTQUFTLGFBQWEsQ0FBQyxPQUFlLEVBQUUsT0FBc0I7SUFDNUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUdqQyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUUsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDbEMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FDaEQsQ0FBQztJQUdGLE9BQU8sWUFBWTtTQUNoQixHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNuQixNQUFNLGVBQWUsR0FDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDN0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLE9BQU87Z0JBQ3RDLENBQUMsQ0FBQyxTQUFTO2dCQUNYLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFFbkMsSUFBSSxlQUFlLEtBQUssU0FBUyxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxXQUFXLDRCQUE0QixPQUFPLEdBQUcsQ0FBQyxDQUFDO1NBQ3hFO1FBRUQsT0FBTyxDQUFDLGVBQWUsRUFBRSxHQUFHLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6RCxDQUFDLENBQUM7U0FDRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQVFELFNBQVMsaUJBQWlCLENBQUMsSUFBVSxFQUFFLE9BQXNCO0lBRTNELElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsRUFBRTtRQUVoRSxNQUFNLEtBQUssR0FBYSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFHekUsSUFBSSxJQUFBLGVBQVEsRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFFaEMsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFHaEUsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1NBQzlEO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMifQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9zY3JpcHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsT0FBTyxLQUFLLE1BQU0sVUFBVSxDQUFDO0FBRTdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFheEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztBQUd6QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7QUFHbEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBaUJwQyxNQUFNLFVBQVUsY0FBYyxDQUFDLElBSzlCO0lBQ0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFbEMsT0FBTyxTQUFTLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFVLEVBQUU7UUFDL0QsSUFBSTtZQUVGLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFHbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFHMUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDOUIsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsRUFBRTtnQkFDekMsU0FBUyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7YUFDNUM7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
package/lib/task.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import type { Arguments } from 'yargs-parser';
2
+ export interface Task {
3
+ selector: string;
4
+ args: string[];
5
+ }
6
+ export declare function parseGlobalArgs(argv: Arguments): string[];
7
+ export declare function parseTaskSpec(spec: string, globalArgs: string[]): Task;
8
+ export declare function selectTasks(tasks: string[], pattern: string): string[];
package/lib/task.js ADDED
@@ -0,0 +1,37 @@
1
+ import parse from 'yargs-parser';
2
+ export function parseGlobalArgs(argv) {
3
+ const globalArgs = argv['--'];
4
+ return (globalArgs?.map((arg) => arg.toString().replace(/^(['"])([^]*?)\1$/, '$2')) ?? []);
5
+ }
6
+ export function parseTaskSpec(spec, globalArgs) {
7
+ const argv = parse(spec, {
8
+ configuration: { 'populate--': true },
9
+ });
10
+ const selector = argv._[0];
11
+ const args = parseGlobalArgs(argv).reduce((processedArgs, arg) => {
12
+ if (arg === '{@}') {
13
+ return [...processedArgs, ...globalArgs];
14
+ }
15
+ else {
16
+ return [...processedArgs, arg];
17
+ }
18
+ }, []);
19
+ return { selector, args };
20
+ }
21
+ export function selectTasks(tasks, pattern) {
22
+ const regexPattern = pattern
23
+ .split(':')
24
+ .map((part) => {
25
+ if (part === '*') {
26
+ return '[^:]+';
27
+ }
28
+ if (part === '**') {
29
+ return '.*';
30
+ }
31
+ return part;
32
+ })
33
+ .join(':');
34
+ const regex = new RegExp(`^${regexPattern}$`);
35
+ return tasks.filter((task) => regex.test(task));
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS90YXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQWVqQyxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQWU7SUFFN0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRzlCLE9BQU8sQ0FDTCxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FFdEIsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FDbEQsSUFBSSxFQUFFLENBQ1IsQ0FBQztBQUNKLENBQUM7QUFRRCxNQUFNLFVBQVUsYUFBYSxDQUFDLElBQVksRUFBRSxVQUFvQjtJQUM5RCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFO1FBRXZCLGFBQWEsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUU7S0FDdEMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQVcsQ0FBQztJQUNyQyxNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQy9ELElBQUksR0FBRyxLQUFLLEtBQUssRUFBRTtZQUVqQixPQUFPLENBQUMsR0FBRyxhQUFhLEVBQUUsR0FBRyxVQUFVLENBQUMsQ0FBQztTQUMxQzthQUFNO1lBQ0wsT0FBTyxDQUFDLEdBQUcsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQyxFQUFFLEVBQWMsQ0FBQyxDQUFDO0lBRW5CLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDNUIsQ0FBQztBQVFELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBZSxFQUFFLE9BQWU7SUFDMUQsTUFBTSxZQUFZLEdBQUcsT0FBTztTQUN6QixLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ1YsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDWixJQUFJLElBQUksS0FBSyxHQUFHLEVBQUU7WUFDaEIsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFDRCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWIsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBRTlDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUMifQ==
package/lib/template.d.ts CHANGED
@@ -1,14 +1,14 @@
1
- import type { IgnoreRule } from './types';
1
+ import type { IgnoreRule, PrimitiveEntity } from 'presetter-types';
2
2
  import type { JsonObject, JsonValue } from 'type-fest';
3
- declare type MergedType<A, B> = A extends JsonObject ? B extends JsonObject ? A & B : MergedArray<A, B> : MergedArray<A, B>;
4
- declare type MergedArray<A, B> = A extends JsonValue[] ? B extends JsonValue[] ? Array<A[number] | B[number]> : keyof B extends `${number}` ? JsonValue[] : B : B;
3
+ type MergedType<A, B> = A extends JsonObject ? B extends JsonObject ? A & B : MergedArray<A, B> : MergedArray<A, B>;
4
+ type MergedArray<A, B> = A extends JsonValue[] ? B extends JsonValue[] ? Array<A[number] | B[number]> : keyof B extends `${number}` ? JsonValue[] : B : B;
5
5
  export declare function filter<C extends Record<string, unknown>>(subject: C, ...ignores: IgnoreRule[]): C;
6
6
  export declare function filter(subject: unknown[], ...ignores: IgnoreRule[]): unknown[];
7
7
  export declare function isJSON(subject: unknown): subject is JsonObject;
8
- export declare function merge<S extends JsonValue, T extends JsonValue>(source: S, target?: T): MergedType<S, T>;
9
- export declare function mergeArray<S extends JsonValue, T extends JsonValue>(source: S[], target?: T): MergedArray<S[], T>;
8
+ export declare function merge<S extends JsonValue, T extends PrimitiveEntity>(source: S, target?: T): MergedType<S, T>;
9
+ export declare function mergeArray<S extends JsonValue, T extends PrimitiveEntity>(source: S[], target?: T): MergedArray<S[], T>;
10
10
  export declare function mergeArrays<S extends JsonValue, T extends JsonValue>(source: S[], target: T[]): MergedArray<S[], T[]>;
11
- export declare function mergeObject<S extends JsonObject, T extends JsonValue>(source: S, target?: T): MergedType<S, T>;
11
+ export declare function mergeObject<S extends JsonObject, T extends PrimitiveEntity>(source: S, target?: T): MergedType<S, T>;
12
12
  export declare function mergeTemplate(source: Record<string, JsonObject | string>, target: Record<string, JsonObject | string>): Record<string, JsonObject | string>;
13
13
  export declare function template(content: string, parameter: Record<string, string>): string;
14
14
  export declare function template<Content extends Record<string, unknown> | unknown[]>(content: Content, parameter: Record<string, string>): Content;
package/lib/template.js CHANGED
@@ -1,12 +1,6 @@
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.template = exports.mergeTemplate = exports.mergeObject = exports.mergeArrays = exports.mergeArray = exports.merge = exports.isJSON = exports.filter = void 0;
7
- const path_1 = require("path");
8
- const pupa_1 = __importDefault(require("pupa"));
9
- function filter(subject, ...ignores) {
1
+ import { basename, extname } from 'node:path';
2
+ import pupa from 'pupa';
3
+ export function filter(subject, ...ignores) {
10
4
  const fieldsToIgnore = ignores.filter((ignore) => typeof ignore !== 'object');
11
5
  if (Array.isArray(subject)) {
12
6
  return subject.filter((_, key) => !fieldsToIgnore.includes(key));
@@ -18,31 +12,28 @@ function filter(subject, ...ignores) {
18
12
  filterByPath(value, ignoreTree[key]),
19
13
  ])), distilled);
20
14
  }
21
- exports.filter = filter;
22
15
  function filterByPath(value, path) {
23
16
  return path && typeof value === 'object'
24
17
  ? filter(value, ...(Array.isArray(path) ? path : [path]))
25
18
  : value;
26
19
  }
27
- function isJSON(subject) {
20
+ export function isJSON(subject) {
28
21
  return [
29
22
  typeof subject === 'object',
30
23
  !Array.isArray(subject),
31
24
  subject !== null,
32
25
  ].every((value) => value);
33
26
  }
34
- exports.isJSON = isJSON;
35
- function merge(source, target) {
27
+ export function merge(source, target) {
36
28
  if (Array.isArray(source)) {
37
29
  return mergeArray(source, target);
38
30
  }
39
31
  else if (isJSON(source)) {
40
32
  return mergeObject(source, target);
41
33
  }
42
- return (target !== null && target !== void 0 ? target : source);
34
+ return (target ?? source);
43
35
  }
44
- exports.merge = merge;
45
- function mergeArray(source, target) {
36
+ export function mergeArray(source, target) {
46
37
  if (Array.isArray(target)) {
47
38
  return mergeArrays(source, target);
48
39
  }
@@ -50,10 +41,9 @@ function mergeArray(source, target) {
50
41
  [...Object.keys(target)].every((key) => parseInt(key) >= 0)) {
51
42
  return [...source].map((value, key) => merge(value, target[key]));
52
43
  }
53
- return (target !== null && target !== void 0 ? target : source);
44
+ return (target ?? source);
54
45
  }
55
- exports.mergeArray = mergeArray;
56
- function mergeArrays(source, target) {
46
+ export function mergeArrays(source, target) {
57
47
  const isPrimitive = source.every((value) => !isJSON(value)) &&
58
48
  target.every((value) => !isJSON(value));
59
49
  if (isPrimitive) {
@@ -61,23 +51,25 @@ function mergeArrays(source, target) {
61
51
  }
62
52
  return target;
63
53
  }
64
- exports.mergeArrays = mergeArrays;
65
- function mergeObject(source, target) {
54
+ export function mergeObject(source, target) {
66
55
  if (isJSON(target)) {
67
56
  const mergedSource = Object.fromEntries(Object.entries(source).map(([key, value]) => [
68
57
  key,
69
58
  merge(value, target[key]),
70
59
  ]));
71
- return Object.assign(Object.assign(Object.assign({}, mergedSource), target), mergedSource);
60
+ return {
61
+ ...mergedSource,
62
+ ...target,
63
+ ...mergedSource,
64
+ };
72
65
  }
73
- return (target !== null && target !== void 0 ? target : source);
66
+ return (target ?? source);
74
67
  }
75
- exports.mergeObject = mergeObject;
76
- function mergeTemplate(source, target) {
68
+ export function mergeTemplate(source, target) {
77
69
  const mergedSource = Object.fromEntries(Object.entries(source).map(([path, template]) => {
78
70
  const replacement = target[path];
79
- const isIgnoreFile = !(0, path_1.extname)(path) &&
80
- (0, path_1.basename)(path).startsWith('.') &&
71
+ const isIgnoreFile = !extname(path) &&
72
+ basename(path).startsWith('.') &&
81
73
  typeof template === 'string' &&
82
74
  typeof replacement === 'string';
83
75
  if (isIgnoreFile) {
@@ -87,17 +79,16 @@ function mergeTemplate(source, target) {
87
79
  ]);
88
80
  return [path, [...mergedSet].join('\n')];
89
81
  }
90
- else if (isJSON(template) && isJSON(replacement)) {
82
+ else if (typeof template === typeof replacement) {
91
83
  return [path, merge(template, replacement)];
92
84
  }
93
- return [path, replacement !== null && replacement !== void 0 ? replacement : template];
85
+ return [path, template];
94
86
  }));
95
- return Object.assign(Object.assign({}, target), mergedSource);
87
+ return { ...target, ...mergedSource };
96
88
  }
97
- exports.mergeTemplate = mergeTemplate;
98
- function template(content, parameter) {
89
+ export function template(content, parameter) {
99
90
  if (typeof content === 'string') {
100
- return (0, pupa_1.default)(content, parameter);
91
+ return pupa(content, parameter);
101
92
  }
102
93
  else if (Array.isArray(content)) {
103
94
  return content.map((value) => template(value, parameter));
@@ -111,5 +102,4 @@ function template(content, parameter) {
111
102
  return content;
112
103
  }
113
104
  }
114
- exports.template = template;
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBZUEsK0JBQXlDO0FBQ3pDLGdEQUF3QjtBQThCeEIsU0FBZ0IsTUFBTSxDQUNwQixPQUE0QyxFQUM1QyxHQUFHLE9BQXFCO0lBR3hCLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQ25DLENBQUMsTUFBTSxFQUE2QixFQUFFLENBQUMsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUNsRSxDQUFDO0lBR0YsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzFCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ2xFO0lBR0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzVFLENBQUM7SUFHRixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUM5QixDQUFDLE1BQU0sRUFBd0MsRUFBRSxDQUMvQyxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQzdCLENBQUM7SUFHRixPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQ3JCLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FDL0IsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FDbEMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFB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
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFOUMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBOEJ4QixNQUFNLFVBQVUsTUFBTSxDQUNwQixPQUE0QyxFQUM1QyxHQUFHLE9BQXFCO0lBR3hCLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQ25DLENBQUMsTUFBTSxFQUE2QixFQUFFLENBQUMsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUNsRSxDQUFDO0lBR0YsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzFCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ2xFO0lBR0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzVFLENBQUM7SUFHRixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUM5QixDQUFDLE1BQU0sRUFBd0MsRUFBRSxDQUMvQyxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQzdCLENBQUM7SUFHRixPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQ3JCLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FDL0IsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0Is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
@@ -0,0 +1 @@
1
+ export * from './mapValues.js';
@@ -0,0 +1,2 @@
1
+ export * from './mapValues.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvdXRpbGl0aWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQSxjQUFjLGFBQWEsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ export declare function mapValues<T, U>(obj: Record<string, T>, fn: (value: T) => U): Record<string, U>;
@@ -0,0 +1,4 @@
1
+ export function mapValues(obj, fn) {
2
+ return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, fn(value)]));
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwVmFsdWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL3V0aWxpdGllcy9tYXBWYWx1ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUJBLE1BQU0sVUFBVSxTQUFTLENBQ3ZCLEdBQXNCLEVBQ3RCLEVBQW1CO0lBRW5CLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FDdkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDNUQsQ0FBQztBQUNKLENBQUMifQ==