@jujulego/jill 1.1.14 → 1.1.18

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.
Files changed (69) hide show
  1. package/dist/base.command.d.ts +8 -0
  2. package/dist/base.command.js +33 -0
  3. package/dist/command.d.ts +21 -0
  4. package/dist/command.js +69 -0
  5. package/dist/commands/each.command.d.ts +17 -0
  6. package/dist/commands/each.command.js +115 -0
  7. package/dist/commands/info.command.d.ts +9 -0
  8. package/dist/commands/info.command.js +83 -0
  9. package/dist/commands/list.command.d.ts +22 -0
  10. package/dist/commands/list.command.js +177 -0
  11. package/dist/commands/run.command.d.ts +13 -0
  12. package/dist/commands/run.command.js +60 -0
  13. package/dist/filters/affected.js +3 -4
  14. package/dist/filters/filter.js +2 -1
  15. package/dist/filters/index.js +2 -1
  16. package/dist/index.d.ts +4 -9
  17. package/dist/index.js +13 -26
  18. package/dist/logger.d.ts +6 -23
  19. package/dist/logger.js +29 -119
  20. package/dist/main.js +19 -132
  21. package/dist/myr/commands/kill.command.d.ts +11 -0
  22. package/dist/myr/commands/kill.command.js +52 -0
  23. package/dist/myr/commands/list.command.d.ts +18 -0
  24. package/dist/myr/commands/list.command.js +127 -0
  25. package/dist/myr/commands/logs.command.d.ts +11 -0
  26. package/dist/myr/commands/logs.command.js +83 -0
  27. package/dist/myr/commands/spawn.command.d.ts +11 -0
  28. package/dist/myr/commands/spawn.command.js +45 -0
  29. package/dist/myr/commands/stop.command.d.ts +7 -0
  30. package/dist/myr/commands/stop.command.js +43 -0
  31. package/dist/myr/myr-client.d.ts +12 -5
  32. package/dist/myr/myr-client.js +106 -281
  33. package/dist/myr/myr.command.d.ts +8 -0
  34. package/dist/myr/myr.command.js +46 -0
  35. package/dist/myr/myr.process.js +3 -2
  36. package/dist/myr/watch.command.d.ts +13 -0
  37. package/dist/myr/watch.command.js +87 -0
  38. package/dist/pipeline.js +2 -1
  39. package/dist/plugin.d.ts +11 -0
  40. package/dist/plugin.js +40 -0
  41. package/dist/project.command.d.ts +13 -0
  42. package/dist/project.command.js +58 -0
  43. package/dist/task-logger.js +6 -5
  44. package/dist/utils/cli-list.js +2 -1
  45. package/dist/workspace.command.d.ts +12 -0
  46. package/dist/workspace.command.js +55 -0
  47. package/package.json +32 -22
  48. package/dist/commands/each.d.ts +0 -12
  49. package/dist/commands/each.js +0 -74
  50. package/dist/commands/info.d.ts +0 -5
  51. package/dist/commands/info.js +0 -42
  52. package/dist/commands/list.d.ts +0 -15
  53. package/dist/commands/list.js +0 -119
  54. package/dist/commands/run.d.ts +0 -9
  55. package/dist/commands/run.js +0 -43
  56. package/dist/myr/command.d.ts +0 -2
  57. package/dist/myr/command.js +0 -50
  58. package/dist/myr/commands/kill.d.ts +0 -5
  59. package/dist/myr/commands/kill.js +0 -34
  60. package/dist/myr/commands/list.d.ts +0 -10
  61. package/dist/myr/commands/list.js +0 -91
  62. package/dist/myr/commands/spawn.d.ts +0 -7
  63. package/dist/myr/commands/spawn.js +0 -39
  64. package/dist/myr/watch.d.ts +0 -8
  65. package/dist/myr/watch.js +0 -79
  66. package/dist/utils/deps-tree.d.ts +0 -2
  67. package/dist/utils/deps-tree.js +0 -51
  68. package/dist/wrapper.d.ts +0 -9
  69. package/dist/wrapper.js +0 -38
@@ -1,119 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.listCommand = void 0;
7
-
8
- var _chalk = _interopRequireDefault(require("chalk"));
9
-
10
- var _path = _interopRequireDefault(require("path"));
11
-
12
- var _slugify = _interopRequireDefault(require("slugify"));
13
-
14
- var _filters = require("../filters");
15
-
16
- var _logger = require("../logger");
17
-
18
- var _pipeline = require("../pipeline");
19
-
20
- var _cliList = require("../utils/cli-list");
21
-
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
- // Constants
25
- const LONG_ATTRIBUTES = ['name', 'version', 'root'];
26
- const JSON_ATTRIBUTES = ['name', 'version', 'slug', 'root'];
27
- const DEFAULT_ATTRIBUTES = ['name']; // Utils
28
-
29
- const extractors = {
30
- name: wks => wks.name,
31
- version: (wks, argv) => wks.manifest.version || (argv.json ? undefined : _chalk.default.grey('unset')),
32
- root: wks => wks.cwd,
33
- slug: wks => (0, _slugify.default)(wks.name)
34
- };
35
-
36
- function buildExtractor(attrs) {
37
- return (wks, argv) => {
38
- const data = {};
39
-
40
- for (const attr of attrs) {
41
- data[attr] = extractors[attr](wks, argv);
42
- }
43
-
44
- return data;
45
- };
46
- } // Handler
47
-
48
-
49
- const listCommand = async (prj, argv) => {
50
- _logger.logger.spin('Loading project'); // Setup pipeline
51
-
52
-
53
- const pipeline = new _pipeline.Pipeline();
54
-
55
- if (argv.private !== undefined) {
56
- pipeline.add(_filters.Filter.privateWorkspace(argv.private));
57
- }
58
-
59
- if (argv['with-script'] !== undefined) {
60
- pipeline.add(_filters.Filter.scripts(argv['with-script']));
61
- }
62
-
63
- if (argv.affected !== undefined) {
64
- pipeline.add(new _filters.AffectedFilter(argv.affected, argv['affected-rev-fallback'], argv['affected-rev-sort']));
65
- } // Filter
66
-
67
-
68
- const workspaces = [];
69
-
70
- for await (const wks of pipeline.filter(prj.workspaces())) {
71
- workspaces.push(wks);
72
- }
73
-
74
- _logger.logger.stop(); // Build data
75
-
76
-
77
- let attrs = argv.attrs || DEFAULT_ATTRIBUTES;
78
-
79
- if (!argv.attrs) {
80
- if (argv.long) {
81
- attrs = LONG_ATTRIBUTES;
82
- } else if (argv.json) {
83
- attrs = JSON_ATTRIBUTES;
84
- }
85
- }
86
-
87
- const data = workspaces.map(wks => buildExtractor(attrs)(wks, argv)); // Print data
88
-
89
- if (argv.json) {
90
- if (process.stdout.isTTY) {
91
- // Pretty print for ttys
92
- console.log(JSON.stringify(data, null, 2));
93
- } else {
94
- console.log(JSON.stringify(data));
95
- }
96
- } else {
97
- const list = new _cliList.CliList();
98
-
99
- if (argv.headers ?? attrs.length > 1) {
100
- list.setHeaders(attrs);
101
- }
102
-
103
- for (const d of data) {
104
- if (d.root) {
105
- d.root = _path.default.relative(process.cwd(), d.root) || '.';
106
- }
107
-
108
- list.add(attrs.map(attr => d[attr] || ''));
109
- }
110
-
111
- for (const d of list.lines()) {
112
- console.log(d);
113
- }
114
- }
115
-
116
- return 0;
117
- };
118
-
119
- exports.listCommand = listCommand;
@@ -1,9 +0,0 @@
1
- import { WorkspaceDepsMode } from '@jujulego/jill-core';
2
- import { CommandHandler } from '../wrapper';
3
- export interface RunArgs {
4
- script: string;
5
- workspace: string | undefined;
6
- 'deps-mode': WorkspaceDepsMode;
7
- '--'?: (string | number)[] | undefined;
8
- }
9
- export declare const runCommand: CommandHandler<RunArgs>;
@@ -1,43 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.runCommand = void 0;
7
-
8
- var _jillCore = require("@jujulego/jill-core");
9
-
10
- var _logger = require("../logger");
11
-
12
- var _taskLogger = require("../task-logger");
13
-
14
- // Command
15
- const runCommand = async (prj, argv) => {
16
- // Get workspace
17
- _logger.logger.spin('Loading project');
18
-
19
- const wks = await (argv.workspace ? prj.workspace(argv.workspace) : prj.currentWorkspace());
20
-
21
- if (!wks) {
22
- _logger.logger.fail(`Workspace ${argv.workspace || '.'} not found`);
23
-
24
- return 1;
25
- } // Run build task
26
-
27
-
28
- const set = new _jillCore.TaskSet();
29
- const task = await wks.run(argv.script, argv['--']?.map(arg => arg.toString()), {
30
- buildDeps: argv['deps-mode']
31
- });
32
- set.add(task);
33
- const tlogger = new _taskLogger.TaskLogger();
34
- tlogger.on('spin-simple', tsk => tsk === task ? `Running ${argv.script} in ${wks.name} ...` : `Building ${tsk.context.workspace?.name} ...`);
35
- tlogger.on('fail', tsk => tsk === task ? `${argv.script} failed` : `Failed to build ${tsk.context.workspace?.name}`);
36
- tlogger.on('succeed', tsk => tsk === task ? `${wks.name} ${argv.script} done` : `${tsk.context.workspace?.name} built`);
37
- tlogger.connect(set);
38
- set.start();
39
- const [result] = await set.waitFor('finished');
40
- return result.failed === 0 ? 0 : 1;
41
- };
42
-
43
- exports.runCommand = runCommand;
@@ -1,2 +0,0 @@
1
- import yargs from 'yargs';
2
- export declare function myrCommand(yargs: yargs.Argv): void;
@@ -1,50 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.myrCommand = myrCommand;
7
-
8
- var _list = require("./commands/list");
9
-
10
- var _spawn = require("./commands/spawn");
11
-
12
- var _wrapper = require("../wrapper");
13
-
14
- var _kill = require("./commands/kill");
15
-
16
- // Command
17
- function myrCommand(yargs) {
18
- yargs.command(['list', 'ls'], 'List myr tasks', {
19
- all: {
20
- alias: 'a',
21
- type: 'boolean',
22
- group: 'Filters:',
23
- desc: 'Show all tasks (by default list shows only running tasks)'
24
- },
25
- attrs: {
26
- type: 'array',
27
- choices: ['identifier', 'status', 'cwd', 'command', 'cmd', 'args'],
28
- group: 'Format:',
29
- desc: 'Select printed attributes'
30
- },
31
- headers: {
32
- type: 'boolean',
33
- group: 'Format:',
34
- desc: 'Prints columns headers'
35
- },
36
- long: {
37
- alias: 'l',
38
- type: 'boolean',
39
- conflicts: 'attrs',
40
- group: 'Format:',
41
- desc: 'Prints more data on each tasks'
42
- }
43
- }, (0, _wrapper.commandHandler)(_list.listCommand)).command('spawn <command>', 'Spawn new task', {
44
- workspace: {
45
- alias: 'w',
46
- type: 'string',
47
- desc: 'Workspace to use'
48
- }
49
- }, (0, _wrapper.commandHandler)(_spawn.spawnCommand)).command('kill <id>', 'Kill task', {}, (0, _wrapper.commandHandler)(_kill.killCommand)).demandCommand(1);
50
- }
@@ -1,5 +0,0 @@
1
- import { CommandHandler } from '../../wrapper';
2
- export interface KillArgs {
3
- id: string;
4
- }
5
- export declare const killCommand: CommandHandler<KillArgs>;
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.killCommand = void 0;
7
-
8
- var _logger = require("../../logger");
9
-
10
- var _myrClient = require("../myr-client");
11
-
12
- // Command
13
- const killCommand = async (prj, argv) => {
14
- // Spawn task
15
- _logger.logger.spin('Connecting to myr');
16
-
17
- const client = new _myrClient.MyrClient(prj);
18
-
19
- _logger.logger.spin('Spawning task');
20
-
21
- const task = await client.kill(argv.id);
22
-
23
- if (task) {
24
- _logger.logger.succeed(`Task ${task.id} killed`);
25
-
26
- return 0;
27
- } else {
28
- _logger.logger.fail(`Task ${argv.id} not found`);
29
-
30
- return 1;
31
- }
32
- };
33
-
34
- exports.killCommand = killCommand;
@@ -1,10 +0,0 @@
1
- import { CommandHandler } from '../../wrapper';
2
- export declare type Attribute = 'identifier' | 'status' | 'cwd' | 'command' | 'cmd' | 'args';
3
- export declare type Data = Partial<Record<Attribute, string>>;
4
- export interface ListArgs {
5
- all: boolean;
6
- attrs: Attribute[] | undefined;
7
- headers: boolean | undefined;
8
- long: boolean;
9
- }
10
- export declare const listCommand: CommandHandler<ListArgs>;
@@ -1,91 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.listCommand = void 0;
7
-
8
- var _chalk = _interopRequireDefault(require("chalk"));
9
-
10
- var _path = _interopRequireDefault(require("path"));
11
-
12
- var _logger = require("../../logger");
13
-
14
- var _myrClient = require("../myr-client");
15
-
16
- var _cliList = require("../../utils/cli-list");
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- // Constants
21
- const COLORED_STATUS = {
22
- blocked: _chalk.default.yellow('blocked'),
23
- ready: _chalk.default.blue('ready'),
24
- running: 'running',
25
- failed: _chalk.default.red('failed'),
26
- done: _chalk.default.green('done')
27
- };
28
- const LONG_ATTRIBUTES = ['identifier', 'status', 'cwd', 'command'];
29
- const DEFAULT_ATTRIBUTES = ['identifier', 'command']; // Utils
30
-
31
- const extractors = {
32
- identifier: tsk => _chalk.default.grey(tsk.id),
33
- status: tsk => COLORED_STATUS[tsk.status],
34
- cwd: tsk => _path.default.relative(process.cwd(), tsk.cwd) || '.',
35
- command: tsk => `${tsk.cmd} ${tsk.args.join(' ')}`,
36
- cmd: tsk => tsk.cmd,
37
- args: tsk => tsk.args.join(' ')
38
- };
39
-
40
- function buildExtractor(attrs) {
41
- return (tsk, argv) => {
42
- const data = {};
43
-
44
- for (const attr of attrs) {
45
- data[attr] = extractors[attr](tsk, argv);
46
- }
47
-
48
- return data;
49
- };
50
- } // Handle
51
-
52
-
53
- const listCommand = async (prj, argv) => {
54
- // Requesting tasks
55
- _logger.logger.spin('Connecting to myr');
56
-
57
- const client = new _myrClient.MyrClient(prj);
58
-
59
- _logger.logger.spin('Requesting tasks');
60
-
61
- const tasks = await client.tasks();
62
-
63
- _logger.logger.stop(); // Build data
64
-
65
-
66
- let attrs = argv.attrs || DEFAULT_ATTRIBUTES;
67
-
68
- if (!argv.attrs && argv.long) {
69
- attrs = LONG_ATTRIBUTES;
70
- }
71
-
72
- const data = tasks.filter(tsk => argv.all || tsk.status === 'running').map(tsk => buildExtractor(attrs)(tsk, argv)); // Print data
73
-
74
- const list = new _cliList.CliList();
75
-
76
- if (argv.headers ?? attrs.length > 1) {
77
- list.setHeaders(attrs);
78
- }
79
-
80
- for (const d of data) {
81
- list.add(attrs.map(attr => d[attr] || ''));
82
- }
83
-
84
- for (const d of list.lines()) {
85
- console.log(d);
86
- }
87
-
88
- return 0;
89
- };
90
-
91
- exports.listCommand = listCommand;
@@ -1,7 +0,0 @@
1
- import { CommandHandler } from '../../wrapper';
2
- export interface SpawnArgs {
3
- command: string;
4
- workspace: string | undefined;
5
- '--'?: (string | number)[] | undefined;
6
- }
7
- export declare const spawnCommand: CommandHandler<SpawnArgs>;
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.spawnCommand = void 0;
7
-
8
- var _logger = require("../../logger");
9
-
10
- var _myrClient = require("../myr-client");
11
-
12
- // Command
13
- const spawnCommand = async (prj, argv) => {
14
- // Get workspace
15
- _logger.logger.spin('Loading project');
16
-
17
- const wks = await (argv.workspace ? prj.workspace(argv.workspace) : prj.currentWorkspace());
18
-
19
- if (!wks) {
20
- _logger.logger.fail(`Workspace ${argv.workspace || '.'} not found`);
21
-
22
- return 1;
23
- } // Spawn task
24
-
25
-
26
- _logger.logger.spin('Connecting to myr');
27
-
28
- const client = new _myrClient.MyrClient(prj);
29
-
30
- _logger.logger.spin('Spawning task');
31
-
32
- const task = await client.spawn(wks.cwd, argv.command, argv['--']?.map(arg => arg.toString()));
33
-
34
- _logger.logger.succeed(`Task ${task.id} spawned`);
35
-
36
- return 0;
37
- };
38
-
39
- exports.spawnCommand = spawnCommand;
@@ -1,8 +0,0 @@
1
- import { CommandHandler } from '../wrapper';
2
- export interface WatchArgs {
3
- script: string;
4
- workspace: string | undefined;
5
- daemon: boolean;
6
- '--'?: (string | number)[] | undefined;
7
- }
8
- export declare const watchCommand: CommandHandler<WatchArgs>;
package/dist/myr/watch.js DELETED
@@ -1,79 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.watchCommand = void 0;
7
-
8
- var _jillCore = require("@jujulego/jill-core");
9
-
10
- var _logger = require("../logger");
11
-
12
- var _myrClient = require("./myr-client");
13
-
14
- // Utils
15
- async function spawnDepsTree(myr, wks, set) {
16
- let count = 0;
17
-
18
- for await (const ws of (0, _jillCore.combine)(wks.dependencies(), wks.devDependencies())) {
19
- if (set.has(ws.cwd)) continue;
20
- set.add(ws.cwd); // Spawn dependencies
21
-
22
- count += await spawnDepsTree(myr, ws, set); // Spawn task
23
-
24
- const tsk = await myr.spawnScript(ws, 'watch');
25
-
26
- _logger.logger.log('info', `Task ${tsk.id} spawned`, {
27
- label: ws.name
28
- });
29
-
30
- count++;
31
- }
32
-
33
- return count;
34
- } // Command
35
-
36
-
37
- const watchCommand = async (prj, argv) => {
38
- // Get workspace
39
- _logger.logger.spin('Loading project');
40
-
41
- const wks = await (argv.workspace ? prj.workspace(argv.workspace) : prj.currentWorkspace());
42
-
43
- if (!wks) {
44
- _logger.logger.fail(`Workspace ${argv.workspace || '.'} not found`);
45
-
46
- return 1;
47
- } // Spawn watch
48
-
49
-
50
- _logger.logger.spin('Spawning dependencies watch tasks');
51
-
52
- const myr = new _myrClient.MyrClient(prj);
53
- const count = await spawnDepsTree(myr, wks, new Set()); // Spawn task
54
-
55
- if (argv.daemon) {
56
- _logger.logger.spin(`Spawning ${argv.script} task`);
57
-
58
- const tsk = await myr.spawnScript(wks, argv.script, argv['--']?.map(arg => arg.toString()));
59
-
60
- _logger.logger.log('info', `Task ${tsk.id} spawned`, {
61
- label: wks.name
62
- });
63
-
64
- _logger.logger.succeed(`${count + 1} watch tasks spawned`);
65
-
66
- return 0;
67
- } else {
68
- _logger.logger.succeed(`${count} watch tasks spawned`);
69
-
70
- const tsk = await wks.run(argv.script, argv['--']?.map(arg => arg.toString()), {
71
- buildDeps: 'none'
72
- });
73
- tsk.start();
74
- await tsk.waitFor('done', 'failed');
75
- return tsk.exitCode === 0 ? 0 : 1;
76
- }
77
- };
78
-
79
- exports.watchCommand = watchCommand;
@@ -1,2 +0,0 @@
1
- import { Workspace } from '@jujulego/jill-core';
2
- export declare function printDepsTree(wks: Workspace): Promise<void>;
@@ -1,51 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.printDepsTree = printDepsTree;
7
-
8
- var _chalk = _interopRequireDefault(require("chalk"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- // Functions
13
- async function printTree(wks, level, dev, printed) {
14
- const workspaces = [];
15
-
16
- for await (const dep of wks.dependencies()) {
17
- workspaces.push([dep, dev]);
18
- }
19
-
20
- for await (const dep of wks.devDependencies()) {
21
- workspaces.push([dep, true]);
22
- }
23
-
24
- for (let i = 0; i < workspaces.length; ++i) {
25
- const [dep, isDev] = workspaces[i];
26
- const isPrinted = printed.has(dep.cwd);
27
- const isLast = i === workspaces.length - 1; // Format
28
-
29
- let name = dep.name;
30
- if (dep.version) name = (0, _chalk.default)`${name}{grey @${dep.version}}`;
31
- if (isDev) name = _chalk.default.blue(`${name} (dev)`);
32
- if (isPrinted) name = _chalk.default.italic(name);
33
- const branchFmt = dev ? _chalk.default.blue : s => s;
34
- console.log(`${level}${branchFmt(`${isLast ? '└' : '├'}─ `)}${name}`); // Print deps of dep
35
-
36
- if (!isPrinted) {
37
- printed.add(dep.cwd);
38
- await printTree(dep, level + (isLast ? ' ' : branchFmt('│ ')), isDev, printed);
39
- }
40
- }
41
- }
42
-
43
- async function printDepsTree(wks) {
44
- console.log((0, _chalk.default)`{bold Dependencies:}`);
45
- const printed = new Set([wks.name]);
46
- await printTree(wks, '', false, printed);
47
-
48
- if (printed.size === 1) {
49
- console.log(_chalk.default.grey(` No dependencies for ${wks.name}`));
50
- }
51
- }
package/dist/wrapper.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import { PackageManager, Project } from '@jujulego/jill-core';
2
- import type { Arguments } from 'yargs';
3
- export interface CommonArgs {
4
- project?: string;
5
- 'package-manager'?: PackageManager;
6
- verbose: number;
7
- }
8
- export declare type CommandHandler<A = Record<string, never>> = (project: Project, argv: A) => Promise<number | void>;
9
- export declare function commandHandler<A = Record<string, never>>(handler: CommandHandler<A>): (argv: Arguments<A & CommonArgs>) => Promise<void>;
package/dist/wrapper.js DELETED
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.commandHandler = commandHandler;
7
-
8
- var _jillCore = require("@jujulego/jill-core");
9
-
10
- var _logger = require("./logger");
11
-
12
- // Wrapper
13
- function commandHandler(handler) {
14
- return async function (argv) {
15
- // Setup
16
- if (argv.verbose === 1) {
17
- _logger.logger.level = 'verbose';
18
- } else if (argv.verbose >= 2) {
19
- _logger.logger.level = 'debug';
20
- }
21
-
22
- if (!argv.project) {
23
- argv.project = await _jillCore.Project.searchProjectRoot(process.cwd());
24
- }
25
-
26
- const prj = new _jillCore.Project(argv.project, {
27
- packageManager: argv['package-manager']
28
- }); // Run command
29
-
30
- try {
31
- process.exit((await handler(prj, argv)) || 0);
32
- } catch (error) {
33
- _logger.logger.fail(error);
34
-
35
- process.exit(1);
36
- }
37
- };
38
- }