@jujulego/jill 2.4.0-alpha.6 → 2.5.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/dist/commons/logger/thread.gateway.d.ts +1 -1
- package/dist/{core.plugin-fx8ZOGe-.js → core.plugin-D2E-d42P.js} +18 -19
- package/dist/{core.plugin-fx8ZOGe-.js.map → core.plugin-D2E-d42P.js.map} +1 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.js +6 -7
- package/dist/index.js.map +1 -1
- package/dist/ink-command-libMC9Gc.js +2083 -0
- package/dist/ink-command-libMC9Gc.js.map +1 -0
- package/dist/inversify.config.d.ts +1 -1
- package/dist/jill.application-CFM4p02J.js +636 -0
- package/dist/jill.application-CFM4p02J.js.map +1 -0
- package/dist/main.js +6 -7
- package/dist/main.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/ui/hooks/useFlatTaskTree.d.ts +14 -0
- package/dist/ui/hooks/useIsVerbose.d.ts +1 -0
- package/dist/ui/hooks/useStdoutDimensions.d.ts +4 -0
- package/dist/ui/task-tree-completed.d.ts +5 -0
- package/dist/ui/task-tree-full-spinner.d.ts +5 -0
- package/dist/ui/task-tree-scrollable-spinner.d.ts +5 -0
- package/dist/ui/task-tree-spinner.d.ts +5 -0
- package/dist/ui/task-tree-stats.d.ts +5 -0
- package/dist/{workspace-tree-YMFiEGQk.js → workspace-tree-RzT8Bsb2.js} +25 -19
- package/dist/workspace-tree-RzT8Bsb2.js.map +1 -0
- package/package.json +24 -24
- package/dist/ink-command-OuyNSTxT.js +0 -1134
- package/dist/ink-command-OuyNSTxT.js.map +0 -1
- package/dist/jill.application-JCJSgP36.js +0 -266
- package/dist/jill.application-JCJSgP36.js.map +0 -1
- package/dist/ui/group-task-spinner.d.ts +0 -5
- package/dist/ui/task-manager-spinner.d.ts +0 -5
- package/dist/workspace-tree-YMFiEGQk.js.map +0 -1
|
@@ -6,7 +6,7 @@ export declare class ThreadGateway implements Source<JillLog> {
|
|
|
6
6
|
readonly channel: BroadcastChannel;
|
|
7
7
|
private readonly _source;
|
|
8
8
|
constructor(channel: string);
|
|
9
|
-
next(data: JillLog)
|
|
9
|
+
next: (data: JillLog) => void;
|
|
10
10
|
readonly subscribe: (listener: import("@jujulego/event-tree").Listener<JillLog>) => import("@jujulego/event-tree").OffFn;
|
|
11
11
|
readonly unsubscribe: (listener: import("@jujulego/event-tree").Listener<JillLog>) => void;
|
|
12
12
|
readonly clear: () => void;
|
|
@@ -3,9 +3,9 @@ import { _ as _$1 } from '@swc/helpers/_/_ts_param';
|
|
|
3
3
|
import { Logger } from '@jujulego/logger';
|
|
4
4
|
import { inject } from 'inversify';
|
|
5
5
|
import symbols from 'log-symbols';
|
|
6
|
-
import { b as LazyCurrentProject, L as LoadProject, T as TaskExpressionService, k as TaskExpressionError, l as TaskSyntaxError, S as ScriptsFilter, a as PrivateFilter, A as AffectedFilter, P as Pipeline, d as LazyCurrentWorkspace, c as LoadWorkspace, W as WorkspaceTree, f as Plugin } from './workspace-tree-
|
|
7
|
-
import {
|
|
8
|
-
import { T as TaskCommand } from './jill.application-
|
|
6
|
+
import { b as LazyCurrentProject, L as LoadProject, T as TaskExpressionService, k as TaskExpressionError, l as TaskSyntaxError, S as ScriptsFilter, a as PrivateFilter, A as AffectedFilter, P as Pipeline, d as LazyCurrentWorkspace, c as LoadWorkspace, W as WorkspaceTree, f as Plugin } from './workspace-tree-RzT8Bsb2.js';
|
|
7
|
+
import { f as Command, E as ExitException, I as InkCommand, y as printJson, a as List } from './ink-command-libMC9Gc.js';
|
|
8
|
+
import { T as TaskCommand } from './jill.application-CFM4p02J.js';
|
|
9
9
|
import { jsx } from 'react/jsx-runtime';
|
|
10
10
|
import chalk from 'chalk';
|
|
11
11
|
import path from 'node:path';
|
|
@@ -32,12 +32,11 @@ import 'cosmiconfig';
|
|
|
32
32
|
import 'ink-spinner';
|
|
33
33
|
import 'pretty-ms';
|
|
34
34
|
import 'inversify-inject-decorators';
|
|
35
|
-
import 'reflect-metadata';
|
|
36
35
|
import '@jujulego/aegis';
|
|
37
36
|
import '@jujulego/quick-tag';
|
|
38
37
|
import 'chalk-template';
|
|
39
38
|
|
|
40
|
-
|
|
39
|
+
class EachCommand extends TaskCommand {
|
|
41
40
|
// Constructor
|
|
42
41
|
constructor(logger, taskExpression){
|
|
43
42
|
super();
|
|
@@ -144,7 +143,7 @@ let EachCommand = class EachCommand extends TaskCommand {
|
|
|
144
143
|
}
|
|
145
144
|
return pipeline;
|
|
146
145
|
}
|
|
147
|
-
}
|
|
146
|
+
}
|
|
148
147
|
_([
|
|
149
148
|
LazyCurrentProject()
|
|
150
149
|
], EachCommand.prototype, "project", void 0);
|
|
@@ -160,7 +159,7 @@ EachCommand = _([
|
|
|
160
159
|
_$1(1, inject(TaskExpressionService))
|
|
161
160
|
], EachCommand);
|
|
162
161
|
|
|
163
|
-
|
|
162
|
+
class ExecCommand extends TaskCommand {
|
|
164
163
|
// Methods
|
|
165
164
|
builder(parser) {
|
|
166
165
|
return this.addTaskOptions(parser).positional("command", {
|
|
@@ -197,7 +196,7 @@ let ExecCommand = class ExecCommand extends TaskCommand {
|
|
|
197
196
|
});
|
|
198
197
|
yield task;
|
|
199
198
|
}
|
|
200
|
-
}
|
|
199
|
+
}
|
|
201
200
|
_([
|
|
202
201
|
LazyCurrentWorkspace()
|
|
203
202
|
], ExecCommand.prototype, "workspace", void 0);
|
|
@@ -215,7 +214,7 @@ ExecCommand = _([
|
|
|
215
214
|
})
|
|
216
215
|
], ExecCommand);
|
|
217
216
|
|
|
218
|
-
|
|
217
|
+
class GroupCommand extends TaskCommand {
|
|
219
218
|
// Constructor
|
|
220
219
|
constructor(taskExpr){
|
|
221
220
|
super();
|
|
@@ -249,7 +248,7 @@ let GroupCommand = class GroupCommand extends TaskCommand {
|
|
|
249
248
|
});
|
|
250
249
|
yield group;
|
|
251
250
|
}
|
|
252
|
-
}
|
|
251
|
+
}
|
|
253
252
|
_([
|
|
254
253
|
LazyCurrentWorkspace()
|
|
255
254
|
], GroupCommand.prototype, "workspace", void 0);
|
|
@@ -303,7 +302,7 @@ function buildExtractor(attrs) {
|
|
|
303
302
|
return data;
|
|
304
303
|
};
|
|
305
304
|
}
|
|
306
|
-
|
|
305
|
+
class ListCommand extends InkCommand {
|
|
307
306
|
// Constructor
|
|
308
307
|
constructor(logger){
|
|
309
308
|
super();
|
|
@@ -468,7 +467,7 @@ let ListCommand = class ListCommand extends InkCommand {
|
|
|
468
467
|
return 0;
|
|
469
468
|
};
|
|
470
469
|
}
|
|
471
|
-
}
|
|
470
|
+
}
|
|
472
471
|
_([
|
|
473
472
|
LazyCurrentProject()
|
|
474
473
|
], ListCommand.prototype, "project", void 0);
|
|
@@ -486,7 +485,7 @@ ListCommand = _([
|
|
|
486
485
|
_$1(0, inject(Logger))
|
|
487
486
|
], ListCommand);
|
|
488
487
|
|
|
489
|
-
|
|
488
|
+
class RunCommand extends TaskCommand {
|
|
490
489
|
// Constructor
|
|
491
490
|
constructor(logger, taskExpression){
|
|
492
491
|
super();
|
|
@@ -542,7 +541,7 @@ let RunCommand = class RunCommand extends TaskCommand {
|
|
|
542
541
|
throw err;
|
|
543
542
|
}
|
|
544
543
|
}
|
|
545
|
-
}
|
|
544
|
+
}
|
|
546
545
|
_([
|
|
547
546
|
LazyCurrentWorkspace()
|
|
548
547
|
], RunCommand.prototype, "workspace", void 0);
|
|
@@ -559,14 +558,14 @@ RunCommand = _([
|
|
|
559
558
|
_$1(1, inject(TaskExpressionService))
|
|
560
559
|
], RunCommand);
|
|
561
560
|
|
|
562
|
-
|
|
561
|
+
class TreeCommand extends InkCommand {
|
|
563
562
|
// Methods
|
|
564
563
|
*render() {
|
|
565
564
|
yield /*#__PURE__*/ jsx(WorkspaceTree, {
|
|
566
565
|
workspace: this.workspace
|
|
567
566
|
});
|
|
568
567
|
}
|
|
569
|
-
}
|
|
568
|
+
}
|
|
570
569
|
_([
|
|
571
570
|
LazyCurrentWorkspace()
|
|
572
571
|
], TreeCommand.prototype, "workspace", void 0);
|
|
@@ -581,8 +580,8 @@ TreeCommand = _([
|
|
|
581
580
|
})
|
|
582
581
|
], TreeCommand);
|
|
583
582
|
|
|
584
|
-
|
|
585
|
-
}
|
|
583
|
+
class CorePlugin {
|
|
584
|
+
}
|
|
586
585
|
CorePlugin = _([
|
|
587
586
|
Plugin({
|
|
588
587
|
name: "core",
|
|
@@ -598,4 +597,4 @@ CorePlugin = _([
|
|
|
598
597
|
], CorePlugin);
|
|
599
598
|
|
|
600
599
|
export { CorePlugin };
|
|
601
|
-
//# sourceMappingURL=core.plugin-
|
|
600
|
+
//# sourceMappingURL=core.plugin-D2E-d42P.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.plugin-fx8ZOGe-.js","sources":["../src/commands/each.ts","../src/commands/exec.ts","../src/commands/group.ts","../src/commands/list.tsx","../src/commands/run.ts","../src/commands/tree.tsx","../src/core.plugin.ts"],"sourcesContent":["import { Logger } from '@jujulego/logger';\nimport { inject } from 'inversify';\nimport symbols from 'log-symbols';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { AffectedFilter } from '@/src/filters/affected.filter.ts';\nimport { Pipeline } from '@/src/filters/pipeline.ts';\nimport { PrivateFilter } from '@/src/filters/private.filter.ts';\nimport { ScriptsFilter } from '@/src/filters/scripts.filter.ts';\nimport { LazyCurrentProject, LoadProject } from '@/src/middlewares/load-project.ts';\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { type Project } from '@/src/project/project.ts';\nimport { type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { TaskExpressionError, TaskSyntaxError } from '@/src/tasks/errors.ts';\nimport { TaskExpressionService } from '@/src/tasks/task-expression.service.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\n// Types\nexport interface EachCommandArgs {\n expr: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n 'allow-no-workspaces'?: boolean;\n\n // Filters\n private?: boolean;\n\n // Affected filter\n affected: string;\n 'affected-rev-fallback': string;\n 'affected-rev-sort'?: string;\n}\n\n// Command\n@Command({\n command: 'each <expr>',\n describe: 'Run a task expression in many workspace, after having built all theirs dependencies.',\n middlewares: [\n LoadProject\n ]\n})\nexport class EachCommand extends TaskCommand<EachCommandArgs> {\n // Lazy injections\n @LazyCurrentProject()\n readonly project: Project;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly logger: Logger,\n @inject(TaskExpressionService)\n private readonly taskExpression: TaskExpressionService,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv): Argv<EachCommandArgs> {\n return this.addTaskOptions(parser)\n // Run options\n .positional('expr', {\n type: 'string',\n demandOption: true,\n desc: 'Script or task expression',\n })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n .option('allow-no-workspaces', {\n type: 'boolean',\n default: false,\n desc: 'Allow no matching workspaces. Without it jill will exit with code 1 if no workspace matches',\n })\n\n // Filters\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => rev === '' ? 'master' : rev,\n group: 'Filters:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master. Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Filters:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Filters:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n\n // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(argv: ArgumentsCamelCase<EachCommandArgs>) {\n let empty = true;\n\n try {\n // Extract expression\n const expr = argv._.map(arg => arg.toString());\n\n if (expr[0] === 'each') {\n expr.splice(0, 1);\n }\n\n expr.unshift(argv.expr);\n\n const tree = this.taskExpression.parse(expr.join(' '));\n const scripts = Array.from(this.taskExpression.extractScripts(tree));\n\n // Create script tasks\n const pipeline = this._preparePipeline(argv, scripts);\n\n for await (const wks of pipeline.filter(this.project.workspaces())) {\n const task = await this.taskExpression.buildTask(tree.roots[0], wks, {\n buildScript: argv.buildScript,\n buildDeps: argv.depsMode,\n });\n\n if (task) {\n yield task;\n empty = false;\n }\n }\n } catch (err) {\n if (err instanceof TaskExpressionError) {\n this.logger.error(err.message);\n throw new ExitException(1);\n }\n\n if (err instanceof TaskSyntaxError) {\n this.logger.error(`Syntax error in task expression: ${err.message}`);\n throw new ExitException(1);\n }\n\n throw err;\n }\n\n if (empty) {\n this.logger.error(`${symbols.error} No matching workspace found !`);\n\n if (argv.allowNoWorkspaces === false) {\n throw new ExitException(1);\n }\n }\n }\n\n private _preparePipeline(argv: ArgumentsCamelCase<EachCommandArgs>, scripts: string[]): Pipeline {\n const pipeline = new Pipeline();\n pipeline.add(new ScriptsFilter(scripts, true));\n\n if (argv.private !== undefined) {\n pipeline.add(new PrivateFilter(argv.private));\n }\n\n if (argv.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n argv.affected,\n argv.affectedRevFallback,\n argv.affectedRevSort\n ));\n }\n\n return pipeline;\n }\n}\n","import { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\n\n// Types\nexport interface IExecCommandArgs {\n command: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'exec <command>',\n aliases: ['$0'],\n describe: 'Run command inside workspace, after all its dependencies has been built.',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class ExecCommand extends TaskCommand<IExecCommandArgs> {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Methods\n builder(parser: Argv) {\n return this.addTaskOptions(parser)\n .positional('command', { type: 'string', demandOption: true })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n\n // Documentation\n .example('jill eslint', '')\n .example('jill eslint --env-info', 'Unknown arguments are passed down to command. Here it would run eslint --env-info')\n .example('jill eslint -- -v', 'You can use -- to stop argument parsing. Here it would run eslint -v')\n\n // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IExecCommandArgs>) {\n // Extract arguments\n const rest = args._.map(arg => arg.toString());\n\n if (rest[0] === 'exec') {\n rest.splice(0, 1);\n }\n\n // Run script in workspace\n const task = await this.workspace.exec(args.command, rest, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n\n yield task;\n }\n}\n","import { inject } from 'inversify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { TaskExpressionService, type TaskTree } from '@/src/tasks/task-expression.service.ts';\n\n// Types\nexport interface IGroupCommandArgs {\n script: TaskTree;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'group <script..>',\n describe: 'Run many scripts inside a workspace (experimental)',\n deprecated: true,\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class GroupCommand extends TaskCommand<IGroupCommandArgs> {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Constructor\n constructor(\n @inject(TaskExpressionService)\n private readonly taskExpr: TaskExpressionService,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv): Argv<IGroupCommandArgs> {\n return this.addTaskOptions(parser)\n .positional('script', {\n demandOption: true,\n desc: 'Task expression',\n coerce: (expr: string[]) => this.taskExpr.parse(expr.join(' ')),\n })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IGroupCommandArgs>) {\n // Run script in workspace\n const group = await this.taskExpr.buildTask(args.script.roots[0], this.workspace, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n\n yield group;\n }\n}\n","import { Logger } from '@jujulego/logger';\nimport chalk from 'chalk';\nimport { inject } from 'inversify';\nimport path from 'node:path';\nimport { compare, parse } from 'semver';\nimport slugify from 'slugify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { AffectedFilter } from '@/src/filters/affected.filter.ts';\nimport { Pipeline } from '@/src/filters/pipeline.ts';\nimport { PrivateFilter } from '@/src/filters/private.filter.ts';\nimport { ScriptsFilter } from '@/src/filters/scripts.filter.ts';\nimport { LazyCurrentProject, LoadProject } from '@/src/middlewares/load-project.ts';\nimport { Command } from '@/src/modules/command.ts';\nimport { InkCommand } from '@/src/modules/ink-command.tsx';\nimport { type Project } from '@/src/project/project.ts';\nimport { type Workspace } from '@/src/project/workspace.ts';\nimport List from '@/src/ui/list.tsx';\nimport { ExitException } from '@/src/utils/exit.ts';\nimport { printJson } from '@/src/utils/json.ts';\n\n// Types\nexport type Attribute = 'name' | 'version' | 'root' | 'slug';\nexport type Data = Partial<Record<Attribute, string>>;\nexport type Order = 'asc' | 'desc';\n\ntype Extractor<T> = (wks: Workspace, json: boolean) => T;\n\nexport interface ListCommandArgs {\n // Filters\n private?: boolean;\n 'with-script'?: string[];\n\n // Affected filter\n affected: string;\n 'affected-rev-fallback': string;\n 'affected-rev-sort'?: string;\n\n // Format\n attrs?: Attribute[];\n headers?: boolean;\n long?: boolean;\n json?: boolean;\n\n // Sort\n 'sort-by'?: Attribute[];\n order: Order;\n}\n\n// Constants\nconst LONG_ATTRIBUTES: Attribute[] = ['name', 'version', 'root'];\nconst JSON_ATTRIBUTES: Attribute[] = ['name', 'version', 'slug', 'root'];\nconst DEFAULT_ATTRIBUTES: Attribute[] = ['name'];\n\nconst EXTRACTORS = {\n name: wks => wks.name,\n version: (wks, json) => wks.manifest.version || (json ? undefined : chalk.grey('unset')),\n root: wks => wks.cwd,\n slug: wks => slugify.default(wks.name)\n} satisfies Record<Attribute, Extractor<string | undefined>>;\n\nconst COMPARATORS = {\n name: (a = '', b = '') => a.localeCompare(b),\n version: (a, b) => compare(parse(a) ?? '0.0.0', parse(b) ?? '0.0.0'),\n root: (a = '', b = '') => a.localeCompare(b),\n slug: (a = '', b = '') => a.localeCompare(b),\n} satisfies Record<Attribute, (a: string | undefined, b: string | undefined) => number>;\n\n// Utils\nfunction buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (wks, json: boolean) => {\n const data: Data = {};\n\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n\n return data;\n };\n}\n\n// Command\n@Command({\n command: 'list',\n aliases: ['ls'],\n describe: 'List workspace',\n middlewares: [\n LoadProject,\n ]\n})\nexport class ListCommand extends InkCommand<ListCommandArgs> {\n // Lazy injections\n @LazyCurrentProject()\n readonly project: Project;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly logger: Logger,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv): Argv<ListCommandArgs> {\n return parser\n // Filters\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('with-script', {\n type: 'array',\n string: true,\n group: 'Filters:',\n desc: 'Print only workspaces having the given script',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => rev === '' ? 'master' : rev,\n group: 'Filters:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master. Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Filters:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Filters:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n\n // Format\n .option('attrs', {\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'] as const,\n group: 'Format:',\n desc: 'Select printed attributes'\n })\n .option('headers', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints columns headers'\n })\n .option('long', {\n alias: 'l',\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints name, version and root of all workspaces',\n })\n .option('json', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints data as a JSON array',\n })\n\n // Sort\n .option('sort-by', {\n alias: 's',\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'] as const,\n group: 'Sort:',\n desc: 'Sort output by given attribute. By default sorts by name if printed'\n })\n .option('order', {\n alias: 'o',\n type: 'string',\n choices: ['asc', 'desc'] as const,\n default: 'asc' as const,\n group: 'Sort:',\n desc: 'Sort order'\n });\n }\n\n async *render(args: ArgumentsCamelCase<ListCommandArgs>) {\n const { attrs, sortBy } = this._applyDefaults(args);\n\n // Load workspaces\n const pipeline = this._preparePipeline(args);\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(this.project.workspaces())) {\n workspaces.push(wks);\n }\n\n // Build data\n const data = workspaces.map(wks => buildExtractor(attrs)(wks, args.json || false));\n\n if (sortBy.length > 0) {\n data.sort(this._dataComparator(sortBy, args.order));\n }\n\n // Print list\n if (args.json) {\n printJson(data);\n } else {\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) || '.';\n }\n }\n\n yield <List items={data} headers={args.headers ?? (attrs.length > 1)} />;\n }\n }\n\n private _applyDefaults(argv: ArgumentsCamelCase<ListCommandArgs>): { attrs: Attribute[], sortBy: Attribute[] } {\n // Compute attributes\n let attrs = argv.attrs ?? [];\n\n if (attrs.length === 0) {\n if (argv.long) {\n attrs = LONG_ATTRIBUTES;\n } else if (argv.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = argv.sortBy ?? DEFAULT_ATTRIBUTES;\n }\n }\n\n // Check sorted attributes\n let sortBy = argv.sortBy ?? [];\n\n if (attrs.length > 0 && sortBy.length > 0) {\n const miss = sortBy.filter((attr) => !attrs.includes(attr));\n\n if (miss.length > 0) {\n this.logger.error(`Cannot sort by non printed attributes. Missing ${miss.join(', ')}.`);\n throw new ExitException(1);\n }\n }\n\n if (sortBy.length === 0 && attrs.includes('name')) {\n sortBy = ['name'];\n }\n\n return { attrs, sortBy };\n }\n\n private _preparePipeline(argv: ArgumentsCamelCase<ListCommandArgs>): Pipeline {\n const pipeline = new Pipeline();\n\n if (argv.private !== undefined) {\n pipeline.add(new PrivateFilter(argv.private));\n }\n\n if (argv.withScript) {\n pipeline.add(new ScriptsFilter(argv.withScript));\n }\n\n if (argv.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n argv.affected,\n argv.affectedRevFallback,\n argv.affectedRevSort\n ));\n }\n\n return pipeline;\n }\n\n private _dataComparator(sortBy: Attribute[], order: Order) {\n const factor = order === 'asc' ? 1 : -1;\n\n return (a: Data, b: Data) => {\n for (const attr of sortBy) {\n const diff = COMPARATORS[attr](a[attr], b[attr]);\n\n if (diff !== 0) {\n return factor * diff;\n }\n }\n\n return 0;\n };\n }\n}\n","import { Logger } from '@jujulego/logger';\nimport { inject } from 'inversify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { TaskExpressionService } from '@/src/tasks/task-expression.service.ts';\nimport { TaskExpressionError, TaskSyntaxError } from '@/src/tasks/errors.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\n// Types\nexport interface IRunCommandArgs {\n expr: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'run <expr>',\n describe: 'Run a task expression in a workspace, after having built all its dependencies.',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class RunCommand extends TaskCommand<IRunCommandArgs> {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly logger: Logger,\n @inject(TaskExpressionService)\n private readonly taskExpression: TaskExpressionService,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv) {\n return this.addTaskOptions(parser)\n .positional('expr', {\n type: 'string',\n demandOption: true,\n desc: 'Script or task expression',\n })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n\n // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IRunCommandArgs>) {\n // Extract expression\n const expr = args._.map(arg => arg.toString());\n\n if (expr[0] === 'run') {\n expr.splice(0, 1);\n }\n\n expr.unshift(args.expr);\n\n // Parse task expression\n try {\n const tree = this.taskExpression.parse(expr.join(' '));\n\n yield await this.taskExpression.buildTask(tree.roots[0], this.workspace, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n } catch (err) {\n if (err instanceof TaskExpressionError) {\n this.logger.error(err.message);\n throw new ExitException(1);\n }\n\n if (err instanceof TaskSyntaxError) {\n this.logger.error(`Syntax error in task expression: ${err.message}`);\n throw new ExitException(1);\n }\n\n throw err;\n }\n }\n}\n","import { Command } from '@/src/modules/command.ts';\nimport { InkCommand } from '@/src/modules/ink-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace } from '@/src/project/workspace.ts';\nimport WorkspaceTree from '@/src/ui/workspace-tree.tsx';\n\n// Command\n@Command({\n command: 'tree',\n describe: 'Print workspace dependency tree',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class TreeCommand extends InkCommand {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Methods\n *render() {\n yield <WorkspaceTree workspace={this.workspace} />;\n }\n}\n","import { EachCommand } from '@/src/commands/each.ts';\nimport { ExecCommand } from '@/src/commands/exec.ts';\nimport { GroupCommand } from '@/src/commands/group.ts';\nimport { ListCommand } from '@/src/commands/list.tsx';\nimport { RunCommand } from '@/src/commands/run.ts';\nimport { TreeCommand } from '@/src/commands/tree.tsx';\nimport { Plugin } from '@/src/modules/plugin.ts';\n\n// Plugin\n@Plugin({\n name: 'core',\n commands: [\n EachCommand,\n ExecCommand,\n GroupCommand,\n ListCommand,\n RunCommand,\n TreeCommand,\n ]\n})\nexport class CorePlugin {}\n"],"names":["EachCommand","TaskCommand","constructor","taskExpression","logger","builder","parser","addTaskOptions","positional","type","demandOption","desc","option","default","alias","choice","group","coerce","rev","strict","parserConfiguration","prepare","argv","empty","expr","_","map","arg","toString","splice","unshift","tree","parse","join","scripts","Array","from","extractScripts","pipeline","_preparePipeline","wks","filter","project","workspaces","task","buildTask","roots","buildScript","buildDeps","depsMode","err","TaskExpressionError","error","message","ExitException","TaskSyntaxError","symbols","allowNoWorkspaces","Pipeline","add","ScriptsFilter","private","undefined","PrivateFilter","affected","AffectedFilter","affectedRevFallback","affectedRevSort","LazyCurrentProject","Command","command","describe","middlewares","LoadProject","inject","Logger","TaskExpressionService","ExecCommand","example","args","rest","workspace","exec","LazyCurrentWorkspace","aliases","LoadWorkspace","GroupCommand","taskExpr","script","deprecated","LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","version","json","manifest","chalk","grey","root","cwd","slug","slugify","COMPARATORS","a","b","localeCompare","compare","buildExtractor","attrs","data","attr","ListCommand","InkCommand","string","choices","render","sortBy","_applyDefaults","push","length","sort","_dataComparator","order","printJson","d","path","relative","process","_jsx","List","items","headers","long","miss","includes","withScript","factor","diff","RunCommand","TreeCommand","WorkspaceTree","CorePlugin","Plugin","commands"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.plugin-D2E-d42P.js","sources":["../src/commands/each.ts","../src/commands/exec.ts","../src/commands/group.ts","../src/commands/list.tsx","../src/commands/run.ts","../src/commands/tree.tsx","../src/core.plugin.ts"],"sourcesContent":["import { Logger } from '@jujulego/logger';\nimport { inject } from 'inversify';\nimport symbols from 'log-symbols';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { AffectedFilter } from '@/src/filters/affected.filter.ts';\nimport { Pipeline } from '@/src/filters/pipeline.ts';\nimport { PrivateFilter } from '@/src/filters/private.filter.ts';\nimport { ScriptsFilter } from '@/src/filters/scripts.filter.ts';\nimport { LazyCurrentProject, LoadProject } from '@/src/middlewares/load-project.ts';\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { type Project } from '@/src/project/project.ts';\nimport { type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { TaskExpressionError, TaskSyntaxError } from '@/src/tasks/errors.ts';\nimport { TaskExpressionService } from '@/src/tasks/task-expression.service.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\n// Types\nexport interface EachCommandArgs {\n expr: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n 'allow-no-workspaces'?: boolean;\n\n // Filters\n private?: boolean;\n\n // Affected filter\n affected: string;\n 'affected-rev-fallback': string;\n 'affected-rev-sort'?: string;\n}\n\n// Command\n@Command({\n command: 'each <expr>',\n describe: 'Run a task expression in many workspace, after having built all theirs dependencies.',\n middlewares: [\n LoadProject\n ]\n})\nexport class EachCommand extends TaskCommand<EachCommandArgs> {\n // Lazy injections\n @LazyCurrentProject()\n readonly project: Project;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly logger: Logger,\n @inject(TaskExpressionService)\n private readonly taskExpression: TaskExpressionService,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv): Argv<EachCommandArgs> {\n return this.addTaskOptions(parser)\n // Run options\n .positional('expr', {\n type: 'string',\n demandOption: true,\n desc: 'Script or task expression',\n })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n .option('allow-no-workspaces', {\n type: 'boolean',\n default: false,\n desc: 'Allow no matching workspaces. Without it jill will exit with code 1 if no workspace matches',\n })\n\n // Filters\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => rev === '' ? 'master' : rev,\n group: 'Filters:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master. Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Filters:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Filters:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n\n // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(argv: ArgumentsCamelCase<EachCommandArgs>) {\n let empty = true;\n\n try {\n // Extract expression\n const expr = argv._.map(arg => arg.toString());\n\n if (expr[0] === 'each') {\n expr.splice(0, 1);\n }\n\n expr.unshift(argv.expr);\n\n const tree = this.taskExpression.parse(expr.join(' '));\n const scripts = Array.from(this.taskExpression.extractScripts(tree));\n\n // Create script tasks\n const pipeline = this._preparePipeline(argv, scripts);\n\n for await (const wks of pipeline.filter(this.project.workspaces())) {\n const task = await this.taskExpression.buildTask(tree.roots[0], wks, {\n buildScript: argv.buildScript,\n buildDeps: argv.depsMode,\n });\n\n if (task) {\n yield task;\n empty = false;\n }\n }\n } catch (err) {\n if (err instanceof TaskExpressionError) {\n this.logger.error(err.message);\n throw new ExitException(1);\n }\n\n if (err instanceof TaskSyntaxError) {\n this.logger.error(`Syntax error in task expression: ${err.message}`);\n throw new ExitException(1);\n }\n\n throw err;\n }\n\n if (empty) {\n this.logger.error(`${symbols.error} No matching workspace found !`);\n\n if (argv.allowNoWorkspaces === false) {\n throw new ExitException(1);\n }\n }\n }\n\n private _preparePipeline(argv: ArgumentsCamelCase<EachCommandArgs>, scripts: string[]): Pipeline {\n const pipeline = new Pipeline();\n pipeline.add(new ScriptsFilter(scripts, true));\n\n if (argv.private !== undefined) {\n pipeline.add(new PrivateFilter(argv.private));\n }\n\n if (argv.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n argv.affected,\n argv.affectedRevFallback,\n argv.affectedRevSort\n ));\n }\n\n return pipeline;\n }\n}\n","import { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\n\n// Types\nexport interface IExecCommandArgs {\n command: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'exec <command>',\n aliases: ['$0'],\n describe: 'Run command inside workspace, after all its dependencies has been built.',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class ExecCommand extends TaskCommand<IExecCommandArgs> {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Methods\n builder(parser: Argv) {\n return this.addTaskOptions(parser)\n .positional('command', { type: 'string', demandOption: true })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n\n // Documentation\n .example('jill eslint', '')\n .example('jill eslint --env-info', 'Unknown arguments are passed down to command. Here it would run eslint --env-info')\n .example('jill eslint -- -v', 'You can use -- to stop argument parsing. Here it would run eslint -v')\n\n // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IExecCommandArgs>) {\n // Extract arguments\n const rest = args._.map(arg => arg.toString());\n\n if (rest[0] === 'exec') {\n rest.splice(0, 1);\n }\n\n // Run script in workspace\n const task = await this.workspace.exec(args.command, rest, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n\n yield task;\n }\n}\n","import { inject } from 'inversify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { TaskExpressionService, type TaskTree } from '@/src/tasks/task-expression.service.ts';\n\n// Types\nexport interface IGroupCommandArgs {\n script: TaskTree;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'group <script..>',\n describe: 'Run many scripts inside a workspace (experimental)',\n deprecated: true,\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class GroupCommand extends TaskCommand<IGroupCommandArgs> {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Constructor\n constructor(\n @inject(TaskExpressionService)\n private readonly taskExpr: TaskExpressionService,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv): Argv<IGroupCommandArgs> {\n return this.addTaskOptions(parser)\n .positional('script', {\n demandOption: true,\n desc: 'Task expression',\n coerce: (expr: string[]) => this.taskExpr.parse(expr.join(' ')),\n })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IGroupCommandArgs>) {\n // Run script in workspace\n const group = await this.taskExpr.buildTask(args.script.roots[0], this.workspace, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n\n yield group;\n }\n}\n","import { Logger } from '@jujulego/logger';\nimport chalk from 'chalk';\nimport { inject } from 'inversify';\nimport path from 'node:path';\nimport { compare, parse } from 'semver';\nimport slugify from 'slugify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { AffectedFilter } from '@/src/filters/affected.filter.ts';\nimport { Pipeline } from '@/src/filters/pipeline.ts';\nimport { PrivateFilter } from '@/src/filters/private.filter.ts';\nimport { ScriptsFilter } from '@/src/filters/scripts.filter.ts';\nimport { LazyCurrentProject, LoadProject } from '@/src/middlewares/load-project.ts';\nimport { Command } from '@/src/modules/command.ts';\nimport { InkCommand } from '@/src/modules/ink-command.tsx';\nimport { type Project } from '@/src/project/project.ts';\nimport { type Workspace } from '@/src/project/workspace.ts';\nimport List from '@/src/ui/list.tsx';\nimport { ExitException } from '@/src/utils/exit.ts';\nimport { printJson } from '@/src/utils/json.ts';\n\n// Types\nexport type Attribute = 'name' | 'version' | 'root' | 'slug';\nexport type Data = Partial<Record<Attribute, string>>;\nexport type Order = 'asc' | 'desc';\n\ntype Extractor<T> = (wks: Workspace, json: boolean) => T;\n\nexport interface ListCommandArgs {\n // Filters\n private?: boolean;\n 'with-script'?: string[];\n\n // Affected filter\n affected: string;\n 'affected-rev-fallback': string;\n 'affected-rev-sort'?: string;\n\n // Format\n attrs?: Attribute[];\n headers?: boolean;\n long?: boolean;\n json?: boolean;\n\n // Sort\n 'sort-by'?: Attribute[];\n order: Order;\n}\n\n// Constants\nconst LONG_ATTRIBUTES: Attribute[] = ['name', 'version', 'root'];\nconst JSON_ATTRIBUTES: Attribute[] = ['name', 'version', 'slug', 'root'];\nconst DEFAULT_ATTRIBUTES: Attribute[] = ['name'];\n\nconst EXTRACTORS = {\n name: wks => wks.name,\n version: (wks, json) => wks.manifest.version || (json ? undefined : chalk.grey('unset')),\n root: wks => wks.cwd,\n slug: wks => slugify.default(wks.name)\n} satisfies Record<Attribute, Extractor<string | undefined>>;\n\nconst COMPARATORS = {\n name: (a = '', b = '') => a.localeCompare(b),\n version: (a, b) => compare(parse(a) ?? '0.0.0', parse(b) ?? '0.0.0'),\n root: (a = '', b = '') => a.localeCompare(b),\n slug: (a = '', b = '') => a.localeCompare(b),\n} satisfies Record<Attribute, (a: string | undefined, b: string | undefined) => number>;\n\n// Utils\nfunction buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (wks, json: boolean) => {\n const data: Data = {};\n\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n\n return data;\n };\n}\n\n// Command\n@Command({\n command: 'list',\n aliases: ['ls'],\n describe: 'List workspace',\n middlewares: [\n LoadProject,\n ]\n})\nexport class ListCommand extends InkCommand<ListCommandArgs> {\n // Lazy injections\n @LazyCurrentProject()\n readonly project: Project;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly logger: Logger,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv): Argv<ListCommandArgs> {\n return parser\n // Filters\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('with-script', {\n type: 'array',\n string: true,\n group: 'Filters:',\n desc: 'Print only workspaces having the given script',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => rev === '' ? 'master' : rev,\n group: 'Filters:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master. Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Filters:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Filters:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n\n // Format\n .option('attrs', {\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'] as const,\n group: 'Format:',\n desc: 'Select printed attributes'\n })\n .option('headers', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints columns headers'\n })\n .option('long', {\n alias: 'l',\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints name, version and root of all workspaces',\n })\n .option('json', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints data as a JSON array',\n })\n\n // Sort\n .option('sort-by', {\n alias: 's',\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'] as const,\n group: 'Sort:',\n desc: 'Sort output by given attribute. By default sorts by name if printed'\n })\n .option('order', {\n alias: 'o',\n type: 'string',\n choices: ['asc', 'desc'] as const,\n default: 'asc' as const,\n group: 'Sort:',\n desc: 'Sort order'\n });\n }\n\n async *render(args: ArgumentsCamelCase<ListCommandArgs>) {\n const { attrs, sortBy } = this._applyDefaults(args);\n\n // Load workspaces\n const pipeline = this._preparePipeline(args);\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(this.project.workspaces())) {\n workspaces.push(wks);\n }\n\n // Build data\n const data = workspaces.map(wks => buildExtractor(attrs)(wks, args.json || false));\n\n if (sortBy.length > 0) {\n data.sort(this._dataComparator(sortBy, args.order));\n }\n\n // Print list\n if (args.json) {\n printJson(data);\n } else {\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) || '.';\n }\n }\n\n yield <List items={data} headers={args.headers ?? (attrs.length > 1)} />;\n }\n }\n\n private _applyDefaults(argv: ArgumentsCamelCase<ListCommandArgs>): { attrs: Attribute[], sortBy: Attribute[] } {\n // Compute attributes\n let attrs = argv.attrs ?? [];\n\n if (attrs.length === 0) {\n if (argv.long) {\n attrs = LONG_ATTRIBUTES;\n } else if (argv.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = argv.sortBy ?? DEFAULT_ATTRIBUTES;\n }\n }\n\n // Check sorted attributes\n let sortBy = argv.sortBy ?? [];\n\n if (attrs.length > 0 && sortBy.length > 0) {\n const miss = sortBy.filter((attr) => !attrs.includes(attr));\n\n if (miss.length > 0) {\n this.logger.error(`Cannot sort by non printed attributes. Missing ${miss.join(', ')}.`);\n throw new ExitException(1);\n }\n }\n\n if (sortBy.length === 0 && attrs.includes('name')) {\n sortBy = ['name'];\n }\n\n return { attrs, sortBy };\n }\n\n private _preparePipeline(argv: ArgumentsCamelCase<ListCommandArgs>): Pipeline {\n const pipeline = new Pipeline();\n\n if (argv.private !== undefined) {\n pipeline.add(new PrivateFilter(argv.private));\n }\n\n if (argv.withScript) {\n pipeline.add(new ScriptsFilter(argv.withScript));\n }\n\n if (argv.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n argv.affected,\n argv.affectedRevFallback,\n argv.affectedRevSort\n ));\n }\n\n return pipeline;\n }\n\n private _dataComparator(sortBy: Attribute[], order: Order) {\n const factor = order === 'asc' ? 1 : -1;\n\n return (a: Data, b: Data) => {\n for (const attr of sortBy) {\n const diff = COMPARATORS[attr](a[attr], b[attr]);\n\n if (diff !== 0) {\n return factor * diff;\n }\n }\n\n return 0;\n };\n }\n}\n","import { Logger } from '@jujulego/logger';\nimport { inject } from 'inversify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { TaskExpressionService } from '@/src/tasks/task-expression.service.ts';\nimport { TaskExpressionError, TaskSyntaxError } from '@/src/tasks/errors.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\n// Types\nexport interface IRunCommandArgs {\n expr: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'run <expr>',\n describe: 'Run a task expression in a workspace, after having built all its dependencies.',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class RunCommand extends TaskCommand<IRunCommandArgs> {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly logger: Logger,\n @inject(TaskExpressionService)\n private readonly taskExpression: TaskExpressionService,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv) {\n return this.addTaskOptions(parser)\n .positional('expr', {\n type: 'string',\n demandOption: true,\n desc: 'Script or task expression',\n })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n\n // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IRunCommandArgs>) {\n // Extract expression\n const expr = args._.map(arg => arg.toString());\n\n if (expr[0] === 'run') {\n expr.splice(0, 1);\n }\n\n expr.unshift(args.expr);\n\n // Parse task expression\n try {\n const tree = this.taskExpression.parse(expr.join(' '));\n\n yield await this.taskExpression.buildTask(tree.roots[0], this.workspace, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n } catch (err) {\n if (err instanceof TaskExpressionError) {\n this.logger.error(err.message);\n throw new ExitException(1);\n }\n\n if (err instanceof TaskSyntaxError) {\n this.logger.error(`Syntax error in task expression: ${err.message}`);\n throw new ExitException(1);\n }\n\n throw err;\n }\n }\n}\n","import { Command } from '@/src/modules/command.ts';\nimport { InkCommand } from '@/src/modules/ink-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace } from '@/src/project/workspace.ts';\nimport WorkspaceTree from '@/src/ui/workspace-tree.tsx';\n\n// Command\n@Command({\n command: 'tree',\n describe: 'Print workspace dependency tree',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class TreeCommand extends InkCommand {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Methods\n *render() {\n yield <WorkspaceTree workspace={this.workspace} />;\n }\n}\n","import { EachCommand } from '@/src/commands/each.ts';\nimport { ExecCommand } from '@/src/commands/exec.ts';\nimport { GroupCommand } from '@/src/commands/group.ts';\nimport { ListCommand } from '@/src/commands/list.tsx';\nimport { RunCommand } from '@/src/commands/run.ts';\nimport { TreeCommand } from '@/src/commands/tree.tsx';\nimport { Plugin } from '@/src/modules/plugin.ts';\n\n// Plugin\n@Plugin({\n name: 'core',\n commands: [\n EachCommand,\n ExecCommand,\n GroupCommand,\n ListCommand,\n RunCommand,\n TreeCommand,\n ]\n})\nexport class CorePlugin {}\n"],"names":["EachCommand","TaskCommand","constructor","taskExpression","logger","builder","parser","addTaskOptions","positional","type","demandOption","desc","option","default","alias","choice","group","coerce","rev","strict","parserConfiguration","prepare","argv","empty","expr","_","map","arg","toString","splice","unshift","tree","parse","join","scripts","Array","from","extractScripts","pipeline","_preparePipeline","wks","filter","project","workspaces","task","buildTask","roots","buildScript","buildDeps","depsMode","err","TaskExpressionError","error","message","ExitException","TaskSyntaxError","symbols","allowNoWorkspaces","Pipeline","add","ScriptsFilter","private","undefined","PrivateFilter","affected","AffectedFilter","affectedRevFallback","affectedRevSort","LazyCurrentProject","Command","command","describe","middlewares","LoadProject","inject","Logger","TaskExpressionService","ExecCommand","example","args","rest","workspace","exec","LazyCurrentWorkspace","aliases","LoadWorkspace","GroupCommand","taskExpr","script","deprecated","LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","version","json","manifest","chalk","grey","root","cwd","slug","slugify","COMPARATORS","a","b","localeCompare","compare","buildExtractor","attrs","data","attr","ListCommand","InkCommand","string","choices","render","sortBy","_applyDefaults","push","length","sort","_dataComparator","order","printJson","d","path","relative","process","_jsx","List","items","headers","long","miss","includes","withScript","factor","diff","RunCommand","TreeCommand","WorkspaceTree","CorePlugin","Plugin","commands"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -26,14 +26,10 @@ export * from './tasks/task-expression.service.ts';
|
|
|
26
26
|
export * from './tasks/task-manager.config.ts';
|
|
27
27
|
export { CONFIG } from './config/config-loader.ts';
|
|
28
28
|
export { type IConfig } from './config/types.ts';
|
|
29
|
-
export { default as GroupTaskSpinner } from './ui/group-task-spinner.tsx';
|
|
30
|
-
export * from './ui/group-task-spinner.tsx';
|
|
31
29
|
export { default as Layout } from './ui/layout.tsx';
|
|
32
30
|
export * from './ui/layout.tsx';
|
|
33
31
|
export { default as List } from './ui/list.tsx';
|
|
34
32
|
export * from './ui/list.tsx';
|
|
35
|
-
export { default as TaskManagerSpinner } from './ui/task-manager-spinner.tsx';
|
|
36
|
-
export * from './ui/task-manager-spinner.tsx';
|
|
37
33
|
export { default as TaskName } from './ui/task-name.tsx';
|
|
38
34
|
export * from './ui/task-name.tsx';
|
|
39
35
|
export { default as TaskSpinner } from './ui/task-spinner.tsx';
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { A as AffectedFilter, G as GitService, b as LazyCurrentProject, d as LazyCurrentWorkspace, L as LoadProject, c as LoadWorkspace, P as Pipeline, f as Plugin, e as PluginModule, a as PrivateFilter, g as Project, h as ProjectRepository, S as ScriptsFilter, T as TaskExpressionService, i as Workspace, W as WorkspaceTree, j as combine, s as streamLines } from './workspace-tree-
|
|
1
|
+
export { c as COMMAND, d as COMMAND_MODULE, C as CONFIG, l as CURRENT, f as Command, q as CommandTask, E as ExitException, I as InkCommand, L as Layout, a as List, M as Middleware, P as PluginLoaderService, t as ScriptTask, S as Service, u as TASK_MANAGER, T as TaskName, b as TaskSpinner, h as applyMiddlewares, e as buildCommandModule, z as capitalize, m as container, w as dynamicImport, x as fixDefaultExport, g as getCommandOpts, j as getModule, i as getRegistry, p as isCommandCtx, r as isScriptCtx, n as lazyInject, o as lazyInjectNamed, v as linesFrom, y as printJson, k as setModule, s as setRegistry, A as splitCommandLine, B as workerCache } from './ink-command-libMC9Gc.js';
|
|
2
|
+
export { A as AffectedFilter, G as GitService, b as LazyCurrentProject, d as LazyCurrentWorkspace, L as LoadProject, c as LoadWorkspace, P as Pipeline, f as Plugin, e as PluginModule, a as PrivateFilter, g as Project, h as ProjectRepository, S as ScriptsFilter, T as TaskExpressionService, i as Workspace, W as WorkspaceTree, j as combine, s as streamLines } from './workspace-tree-RzT8Bsb2.js';
|
|
3
3
|
import '@jujulego/logger';
|
|
4
4
|
import '@swc/helpers/_/_ts_decorate';
|
|
5
5
|
import '@swc/helpers/_/_ts_param';
|
|
6
6
|
import 'inversify';
|
|
7
7
|
import 'node:async_hooks';
|
|
8
8
|
import '@jujulego/tasks';
|
|
9
|
-
import 'react/jsx-runtime';
|
|
10
|
-
import 'ink';
|
|
11
|
-
import 'react';
|
|
12
9
|
import 'node:os';
|
|
13
10
|
import 'node:path';
|
|
14
11
|
import 'ajv';
|
|
@@ -16,12 +13,14 @@ import 'node:worker_threads';
|
|
|
16
13
|
import 'yargs';
|
|
17
14
|
import 'yargs/helpers';
|
|
18
15
|
import 'cosmiconfig';
|
|
19
|
-
import '
|
|
16
|
+
import 'react/jsx-runtime';
|
|
17
|
+
import 'ink';
|
|
20
18
|
import 'ink-spinner';
|
|
21
19
|
import 'log-symbols';
|
|
22
20
|
import 'pretty-ms';
|
|
21
|
+
import 'react';
|
|
22
|
+
import '@jujulego/event-tree';
|
|
23
23
|
import 'inversify-inject-decorators';
|
|
24
|
-
import 'reflect-metadata';
|
|
25
24
|
import '@jujulego/aegis';
|
|
26
25
|
import '@jujulego/quick-tag';
|
|
27
26
|
import 'chalk-template';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|