@jujulego/jill 2.5.0 → 2.5.2

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.
@@ -1,5 +1,7 @@
1
+ import { Logger } from '@jujulego/logger';
1
2
  import { type ArgumentsCamelCase, type Argv } from 'yargs';
2
- import { TaskCommand } from '@/src/modules/task-command.tsx';
3
+ import { ITaskCommandArgs, TaskCommand } from '@/src/modules/task-command.tsx';
4
+ import type { Project } from '@/src/project/project.ts';
3
5
  import { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';
4
6
  export interface IExecCommandArgs {
5
7
  command: string;
@@ -7,13 +9,18 @@ export interface IExecCommandArgs {
7
9
  'deps-mode': WorkspaceDepsMode;
8
10
  }
9
11
  export declare class ExecCommand extends TaskCommand<IExecCommandArgs> {
12
+ private _finalTask;
13
+ private readonly _logger;
14
+ readonly project: Project;
10
15
  readonly workspace: Workspace;
11
- builder(parser: Argv): Argv<import("@/src/modules/task-command.tsx").ITaskCommandArgs & {
16
+ constructor(logger: Logger);
17
+ builder(parser: Argv): Argv<ITaskCommandArgs & {
12
18
  command: string;
13
19
  } & {
14
20
  "build-script": string;
15
21
  } & {
16
22
  "deps-mode": "all";
17
23
  }>;
18
- prepare(args: ArgumentsCamelCase<IExecCommandArgs>): AsyncGenerator<import("../index.ts").CommandTask, void, unknown>;
24
+ prepare(args: ArgumentsCamelCase<IExecCommandArgs & ITaskCommandArgs>): AsyncGenerator<import("@jujulego/tasks").Task<import("@jujulego/tasks").TaskContext>, void, undefined>;
25
+ handler(args: ArgumentsCamelCase<IExecCommandArgs & ITaskCommandArgs>): Promise<void>;
19
26
  }
@@ -1,11 +1,13 @@
1
1
  import { _ } from '@swc/helpers/_/_ts_decorate';
2
2
  import { _ as _$1 } from '@swc/helpers/_/_ts_param';
3
- import { Logger } from '@jujulego/logger';
3
+ import { Logger, withLabel } 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-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';
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-CyjZrimj.js';
7
+ import { f as Command, E as ExitException, I as InkCommand, y as printJson, a as List } from './ink-command-S3TpJLFi.js';
8
+ import { T as TaskCommand } from './jill.application-CGujSe1_.js';
9
+ import cp from 'node:child_process';
10
+ import process$1 from 'node:process';
9
11
  import { jsx } from 'react/jsx-runtime';
10
12
  import chalk from 'chalk';
11
13
  import path from 'node:path';
@@ -160,6 +162,11 @@ EachCommand = _([
160
162
  ], EachCommand);
161
163
 
162
164
  class ExecCommand extends TaskCommand {
165
+ // Constructor
166
+ constructor(logger){
167
+ super();
168
+ this._logger = logger.child(withLabel("exec"));
169
+ }
163
170
  // Methods
164
171
  builder(parser) {
165
172
  return this.addTaskOptions(parser).positional("command", {
@@ -194,9 +201,43 @@ class ExecCommand extends TaskCommand {
194
201
  buildScript: args.buildScript,
195
202
  buildDeps: args.depsMode
196
203
  });
197
- yield task;
204
+ if (args.plan) {
205
+ yield task;
206
+ } else {
207
+ this._finalTask = task;
208
+ yield* task.dependencies;
209
+ }
210
+ }
211
+ async handler(args) {
212
+ await super.handler(args);
213
+ if (!args.plan) {
214
+ this.app.unmount();
215
+ // Execute command
216
+ this._logger.debug`${this._finalTask.cmd} ${this._finalTask.args.join(" ")}`;
217
+ const child = cp.spawn(this._finalTask.cmd, this._finalTask.args, {
218
+ stdio: "inherit",
219
+ cwd: this._finalTask.cwd,
220
+ env: {
221
+ ...process$1.env,
222
+ ...this._finalTask.env
223
+ },
224
+ shell: true,
225
+ windowsHide: true
226
+ });
227
+ const code = await new Promise((resolve)=>{
228
+ child.on("close", (code)=>{
229
+ resolve(code ?? 0);
230
+ });
231
+ });
232
+ if (code) {
233
+ throw new ExitException(code);
234
+ }
235
+ }
198
236
  }
199
237
  }
238
+ _([
239
+ LazyCurrentProject()
240
+ ], ExecCommand.prototype, "project", void 0);
200
241
  _([
201
242
  LazyCurrentWorkspace()
202
243
  ], ExecCommand.prototype, "workspace", void 0);
@@ -211,7 +252,8 @@ ExecCommand = _([
211
252
  LoadProject,
212
253
  LoadWorkspace
213
254
  ]
214
- })
255
+ }),
256
+ _$1(0, inject(Logger))
215
257
  ], ExecCommand);
216
258
 
217
259
  class GroupCommand extends TaskCommand {
@@ -597,4 +639,4 @@ CorePlugin = _([
597
639
  ], CorePlugin);
598
640
 
599
641
  export { CorePlugin };
600
- //# sourceMappingURL=core.plugin-D2E-d42P.js.map
642
+ //# sourceMappingURL=core.plugin-Bxu0Sx70.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.plugin-Bxu0Sx70.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 { Logger, withLabel } from '@jujulego/logger';\nimport { inject } from 'inversify';\nimport cp from 'node:child_process';\nimport process from 'node:process';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { ITaskCommandArgs, TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LazyCurrentProject, LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport type { Project } from '@/src/project/project.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { type CommandTask } from '@/src/tasks/command-task.ts';\nimport { ExitException } from '@/src/utils/exit.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 // Attributes\n private _finalTask: CommandTask;\n private readonly _logger: Logger;\n\n // Lazy injections\n @LazyCurrentProject()\n readonly project: Project;\n\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Constructor\n constructor(\n @inject(Logger) logger: Logger,\n ) {\n super();\n\n this._logger = logger.child(withLabel('exec'));\n }\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 & ITaskCommandArgs>) {\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 if (args.plan) {\n yield task;\n } else {\n this._finalTask = task;\n yield* task.dependencies;\n }\n }\n\n async handler(args: ArgumentsCamelCase<IExecCommandArgs & ITaskCommandArgs>): Promise<void> {\n await super.handler(args);\n\n if (!args.plan) {\n this.app.unmount();\n\n // Execute command\n this._logger.debug`${this._finalTask.cmd} ${this._finalTask.args.join(' ')}`;\n\n const child = cp.spawn(this._finalTask.cmd, this._finalTask.args, {\n stdio: 'inherit',\n cwd: this._finalTask.cwd,\n env: {\n ...process.env,\n ...this._finalTask.env\n },\n shell: true,\n windowsHide: true,\n });\n\n const code = await new Promise<number>((resolve) => {\n child.on('close', (code) => {\n resolve(code ?? 0);\n });\n });\n\n if (code) {\n throw new ExitException(code);\n }\n }\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","_logger","child","withLabel","example","args","rest","workspace","exec","plan","_finalTask","dependencies","handler","app","unmount","debug","cmd","cp","spawn","stdio","cwd","env","process","shell","windowsHide","code","Promise","resolve","on","LazyCurrentWorkspace","aliases","LoadWorkspace","GroupCommand","taskExpr","script","deprecated","LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","version","json","manifest","chalk","grey","root","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","_jsx","List","items","headers","long","miss","includes","withScript","factor","diff","RunCommand","TreeCommand","WorkspaceTree","CorePlugin","Plugin","commands"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
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';
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-S3TpJLFi.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-CyjZrimj.js';
3
3
  import '@jujulego/logger';
4
4
  import '@swc/helpers/_/_ts_decorate';
5
5
  import '@swc/helpers/_/_ts_param';
@@ -1715,7 +1715,7 @@ class ScriptTask extends GroupTask {
1715
1715
  if (command === "jill") {
1716
1716
  this._logger.debug(`Interpreting ${line}`);
1717
1717
  const argv = commandArgs.map((arg)=>arg.replace(/^["'](.+)["']$/, "$1"));
1718
- const { JillApplication } = await import('./jill.application-CFM4p02J.js').then(function (n) { return n.j; });
1718
+ const { JillApplication } = await import('./jill.application-CGujSe1_.js').then(function (n) { return n.j; });
1719
1719
  const app = container.get(JillApplication);
1720
1720
  const tasks = await app.tasksOf(argv, {
1721
1721
  project: this.project,
@@ -2069,7 +2069,6 @@ class InkCommand {
2069
2069
  children: children
2070
2070
  }));
2071
2071
  }
2072
- await this.app.waitUntilExit();
2073
2072
  }
2074
2073
  }
2075
2074
  _([
@@ -2080,4 +2079,4 @@ InkCommand = _([
2080
2079
  ], InkCommand);
2081
2080
 
2082
2081
  export { splitCommandLine as A, workerCache as B, CONFIG as C, ContextService as D, ExitException as E, applyConfigOptions as F, InkCommand as I, Layout as L, Middleware as M, PluginLoaderService as P, Service as S, TaskName as T, List as a, TaskSpinner as b, COMMAND as c, COMMAND_MODULE as d, buildCommandModule as e, Command as f, getCommandOpts as g, applyMiddlewares as h, getRegistry as i, getModule as j, setModule as k, CURRENT as l, container as m, lazyInject as n, lazyInjectNamed as o, isCommandCtx as p, CommandTask as q, isScriptCtx as r, setRegistry as s, ScriptTask as t, TASK_MANAGER as u, linesFrom as v, dynamicImport as w, fixDefaultExport as x, printJson as y, capitalize as z };
2083
- //# sourceMappingURL=ink-command-libMC9Gc.js.map
2082
+ //# sourceMappingURL=ink-command-S3TpJLFi.js.map