@jujulego/jill 2.4.0-alpha.5 → 2.4.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/README.md +8 -11
- package/dist/commands/each.d.ts +9 -6
- package/dist/commands/group.d.ts +2 -2
- package/dist/commands/run.d.ts +6 -4
- package/dist/{core.plugin-ED-2XO_T.js → core.plugin-eIXhcLId.js} +119 -148
- package/dist/core.plugin-eIXhcLId.js.map +1 -0
- package/dist/filters/scripts.filter.d.ts +2 -1
- package/dist/index.d.ts +1 -5
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/dist/{ink-command-HSaTNbaX.js → ink-command-8BDSCbqp.js} +30 -190
- package/dist/ink-command-8BDSCbqp.js.map +1 -0
- package/dist/jill.application-8LJ2a7MD.js +636 -0
- package/dist/jill.application-8LJ2a7MD.js.map +1 -0
- package/dist/main.js +10 -8
- package/dist/main.js.map +1 -1
- package/dist/tasks/errors.d.ts +4 -0
- package/dist/tasks/{task-expr.service.d.ts → task-expression.service.d.ts} +2 -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-DEg4wm69.js → workspace-tree-1zFRh2Fq.js} +86 -128
- package/dist/workspace-tree-1zFRh2Fq.js.map +1 -0
- package/package.json +17 -15
- package/dist/core.plugin-ED-2XO_T.js.map +0 -1
- package/dist/ink-command-HSaTNbaX.js.map +0 -1
- package/dist/jill.application-nR6EmV7y.js +0 -279
- package/dist/jill.application-nR6EmV7y.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-DEg4wm69.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.plugin-eIXhcLId.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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"}
|
|
@@ -2,6 +2,7 @@ import { type Workspace } from '@/src/project/workspace.ts';
|
|
|
2
2
|
import { type PipelineFilter } from './pipeline.ts';
|
|
3
3
|
export declare class ScriptsFilter implements PipelineFilter {
|
|
4
4
|
readonly scripts: string[];
|
|
5
|
-
|
|
5
|
+
readonly all: boolean;
|
|
6
|
+
constructor(scripts: string[], all?: boolean);
|
|
6
7
|
test(workspace: Workspace): boolean;
|
|
7
8
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -22,18 +22,14 @@ export * from './project/types.ts';
|
|
|
22
22
|
export * from './inversify.config.ts';
|
|
23
23
|
export * from './tasks/command-task.ts';
|
|
24
24
|
export * from './tasks/script-task.ts';
|
|
25
|
-
export * from './tasks/task-
|
|
25
|
+
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,12 +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
|
|
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-8BDSCbqp.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-1zFRh2Fq.js';
|
|
3
3
|
import '@jujulego/logger';
|
|
4
|
+
import '@swc/helpers/_/_ts_decorate';
|
|
5
|
+
import '@swc/helpers/_/_ts_param';
|
|
4
6
|
import 'inversify';
|
|
5
7
|
import 'node:async_hooks';
|
|
6
8
|
import '@jujulego/tasks';
|
|
7
|
-
import 'react/jsx-runtime';
|
|
8
|
-
import 'ink';
|
|
9
|
-
import 'react';
|
|
10
9
|
import 'node:os';
|
|
11
10
|
import 'node:path';
|
|
12
11
|
import 'ajv';
|
|
@@ -14,10 +13,13 @@ import 'node:worker_threads';
|
|
|
14
13
|
import 'yargs';
|
|
15
14
|
import 'yargs/helpers';
|
|
16
15
|
import 'cosmiconfig';
|
|
17
|
-
import '
|
|
16
|
+
import 'react/jsx-runtime';
|
|
17
|
+
import 'ink';
|
|
18
18
|
import 'ink-spinner';
|
|
19
19
|
import 'log-symbols';
|
|
20
20
|
import 'pretty-ms';
|
|
21
|
+
import 'react';
|
|
22
|
+
import '@jujulego/event-tree';
|
|
21
23
|
import 'inversify-inject-decorators';
|
|
22
24
|
import 'reflect-metadata';
|
|
23
25
|
import '@jujulego/aegis';
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { withTimestamp, LogLevel, quick, qlevelColor, toStderr, Logger, logger$, withLabel } from '@jujulego/logger';
|
|
2
|
+
import { _ } from '@swc/helpers/_/_ts_decorate';
|
|
3
|
+
import { _ as _$1 } from '@swc/helpers/_/_ts_param';
|
|
2
4
|
import { Container, decorate, injectable, inject, ContainerModule } from 'inversify';
|
|
3
5
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
4
6
|
import { SpawnTask, GroupTask, TaskSet, TaskManager } from '@jujulego/tasks';
|
|
5
|
-
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
|
-
import { Box, Text, useStderr, render } from 'ink';
|
|
7
|
-
import { useState, useLayoutEffect, useMemo, Fragment as Fragment$1 } from 'react';
|
|
8
7
|
import os from 'node:os';
|
|
9
8
|
import path from 'node:path';
|
|
10
9
|
import Ajv from 'ajv';
|
|
@@ -12,10 +11,13 @@ import wt, { BroadcastChannel, setEnvironmentData, getEnvironmentData } from 'no
|
|
|
12
11
|
import yargs from 'yargs';
|
|
13
12
|
import { hideBin } from 'yargs/helpers';
|
|
14
13
|
import { cosmiconfig, defaultLoaders } from 'cosmiconfig';
|
|
15
|
-
import {
|
|
14
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
15
|
+
import { Box, Text, useStderr, render } from 'ink';
|
|
16
16
|
import Spinner from 'ink-spinner';
|
|
17
17
|
import symbols from 'log-symbols';
|
|
18
18
|
import ms from 'pretty-ms';
|
|
19
|
+
import { useState, useLayoutEffect } from 'react';
|
|
20
|
+
import { source$, once$, waitFor$ } from '@jujulego/event-tree';
|
|
19
21
|
import getDecorators from 'inversify-inject-decorators';
|
|
20
22
|
import 'reflect-metadata';
|
|
21
23
|
import { flow$, filter$, var$ } from '@jujulego/aegis';
|
|
@@ -56,18 +58,7 @@ const LOG_BROADCAST_CHANNEL = Symbol.for("jujulego:jill:log-broadcast-channel");
|
|
|
56
58
|
// Parameters
|
|
57
59
|
container.bind(LOG_BROADCAST_CHANNEL).toConstantValue("jujulego:jill:logger");
|
|
58
60
|
|
|
59
|
-
|
|
60
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
61
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
62
|
-
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
63
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
64
|
-
}
|
|
65
|
-
function _ts_param$2(paramIndex, decorator) {
|
|
66
|
-
return function(target, key) {
|
|
67
|
-
decorator(target, key, paramIndex);
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
let ThreadGateway = class ThreadGateway {
|
|
61
|
+
class ThreadGateway {
|
|
71
62
|
// Constructor
|
|
72
63
|
constructor(channel){
|
|
73
64
|
this._source = source$();
|
|
@@ -90,21 +81,15 @@ let ThreadGateway = class ThreadGateway {
|
|
|
90
81
|
next(data) {
|
|
91
82
|
this.channel.postMessage(data);
|
|
92
83
|
}
|
|
93
|
-
}
|
|
94
|
-
ThreadGateway =
|
|
84
|
+
}
|
|
85
|
+
ThreadGateway = _([
|
|
95
86
|
Service(),
|
|
96
|
-
|
|
87
|
+
_$1(0, inject(LOG_BROADCAST_CHANNEL))
|
|
97
88
|
], ThreadGateway);
|
|
98
89
|
|
|
99
|
-
function _ts_decorate$3(decorators, target, key, desc) {
|
|
100
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
101
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
102
|
-
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
103
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
104
|
-
}
|
|
105
90
|
// Utils
|
|
106
91
|
const jillLogFormat = qlevelColor(quick.wrap(chalkTemplateStderr).function`#?:${qprop("label")}{grey [#$]} ?#${qprop("message")}#?:${qprop("error")}\n#!error$?#`);
|
|
107
|
-
|
|
92
|
+
class LogGateway {
|
|
108
93
|
// Lifecycle
|
|
109
94
|
onServiceActivate({ container }) {
|
|
110
95
|
const threadGtw = container.get(ThreadGateway);
|
|
@@ -140,8 +125,8 @@ let LogGateway = class LogGateway {
|
|
|
140
125
|
this.unsubscribe = this._source.unsubscribe;
|
|
141
126
|
this.clear = this._source.clear;
|
|
142
127
|
}
|
|
143
|
-
}
|
|
144
|
-
LogGateway =
|
|
128
|
+
}
|
|
129
|
+
LogGateway = _([
|
|
145
130
|
Service()
|
|
146
131
|
], LogGateway);
|
|
147
132
|
|
|
@@ -152,18 +137,7 @@ container.bind(Logger).toDynamicValue(()=>logger$(withTimestamp())).inSingletonS
|
|
|
152
137
|
return logger;
|
|
153
138
|
});
|
|
154
139
|
|
|
155
|
-
|
|
156
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
157
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
158
|
-
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
159
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
160
|
-
}
|
|
161
|
-
function _ts_param$1(paramIndex, decorator) {
|
|
162
|
-
return function(target, key) {
|
|
163
|
-
decorator(target, key, paramIndex);
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
let ContextService = class ContextService {
|
|
140
|
+
class ContextService {
|
|
167
141
|
// Constructor
|
|
168
142
|
constructor(logger){
|
|
169
143
|
this._storage = new AsyncLocalStorage();
|
|
@@ -210,10 +184,10 @@ let ContextService = class ContextService {
|
|
|
210
184
|
workspace
|
|
211
185
|
});
|
|
212
186
|
}
|
|
213
|
-
}
|
|
214
|
-
ContextService =
|
|
187
|
+
}
|
|
188
|
+
ContextService = _([
|
|
215
189
|
Service(),
|
|
216
|
-
|
|
190
|
+
_$1(0, inject(Logger))
|
|
217
191
|
], ContextService);
|
|
218
192
|
|
|
219
193
|
// Symbols
|
|
@@ -503,18 +477,7 @@ async function configLoader() {
|
|
|
503
477
|
}
|
|
504
478
|
container.bind(CONFIG).toDynamicValue(async ()=>await workerCache("jujulego:jill:config", configLoader)).inSingletonScope();
|
|
505
479
|
|
|
506
|
-
|
|
507
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
508
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
509
|
-
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
510
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
511
|
-
}
|
|
512
|
-
function _ts_param(paramIndex, decorator) {
|
|
513
|
-
return function(target, key) {
|
|
514
|
-
decorator(target, key, paramIndex);
|
|
515
|
-
};
|
|
516
|
-
}
|
|
517
|
-
let PluginLoaderService = class PluginLoaderService {
|
|
480
|
+
class PluginLoaderService {
|
|
518
481
|
// Constructor
|
|
519
482
|
constructor(_config, logger){
|
|
520
483
|
this._config = _config;
|
|
@@ -545,11 +508,11 @@ let PluginLoaderService = class PluginLoaderService {
|
|
|
545
508
|
ctn.load(plugin);
|
|
546
509
|
}
|
|
547
510
|
}
|
|
548
|
-
}
|
|
549
|
-
PluginLoaderService =
|
|
511
|
+
}
|
|
512
|
+
PluginLoaderService = _([
|
|
550
513
|
Service(),
|
|
551
|
-
|
|
552
|
-
|
|
514
|
+
_$1(0, inject(CONFIG)),
|
|
515
|
+
_$1(1, inject(Logger))
|
|
553
516
|
], PluginLoaderService);
|
|
554
517
|
|
|
555
518
|
// Utils
|
|
@@ -686,7 +649,7 @@ class ScriptTask extends GroupTask {
|
|
|
686
649
|
if (command === "jill") {
|
|
687
650
|
this._logger.debug(`Interpreting ${line}`);
|
|
688
651
|
const argv = commandArgs.map((arg)=>arg.replace(/^["'](.+)["']$/, "$1"));
|
|
689
|
-
const { JillApplication } = await import('./jill.application-
|
|
652
|
+
const { JillApplication } = await import('./jill.application-8LJ2a7MD.js').then(function (n) { return n.j; });
|
|
690
653
|
const app = container.get(JillApplication);
|
|
691
654
|
const tasks = await app.tasksOf(argv, {
|
|
692
655
|
project: this.project,
|
|
@@ -850,7 +813,7 @@ function TaskName({ task }) {
|
|
|
850
813
|
function TaskSpinner({ task }) {
|
|
851
814
|
// State
|
|
852
815
|
const [status, setStatus] = useState(task.status);
|
|
853
|
-
const [time, setTime] = useState(
|
|
816
|
+
const [time, setTime] = useState(task.duration);
|
|
854
817
|
// Effects
|
|
855
818
|
useLayoutEffect(()=>{
|
|
856
819
|
return task.on("status", (event)=>{
|
|
@@ -974,123 +937,6 @@ function TaskSpinner({ task }) {
|
|
|
974
937
|
}
|
|
975
938
|
}
|
|
976
939
|
|
|
977
|
-
// Components
|
|
978
|
-
function GroupTaskSpinner({ group }) {
|
|
979
|
-
// State
|
|
980
|
-
const [verbose, setVerbose] = useState(false);
|
|
981
|
-
const [status, setStatus] = useState(group.status);
|
|
982
|
-
const [tasks, setTasks] = useState([
|
|
983
|
-
...group.tasks
|
|
984
|
-
]);
|
|
985
|
-
const [canReduce, setCanReduce] = useState(true);
|
|
986
|
-
// Memo
|
|
987
|
-
const forceExtended = useMemo(()=>verbose || tasks.some((tsk)=>!isCommandCtx(tsk.context)), [
|
|
988
|
-
verbose,
|
|
989
|
-
tasks
|
|
990
|
-
]);
|
|
991
|
-
const isReduced = useMemo(()=>!forceExtended && canReduce, [
|
|
992
|
-
forceExtended,
|
|
993
|
-
canReduce
|
|
994
|
-
]);
|
|
995
|
-
// Effects
|
|
996
|
-
useLayoutEffect(()=>{
|
|
997
|
-
const config = container.get(CONFIG);
|
|
998
|
-
if (config.verbose) {
|
|
999
|
-
setVerbose([
|
|
1000
|
-
"verbose",
|
|
1001
|
-
"debug"
|
|
1002
|
-
].includes(config.verbose));
|
|
1003
|
-
}
|
|
1004
|
-
}, []);
|
|
1005
|
-
useLayoutEffect(()=>{
|
|
1006
|
-
return group.on("status", (event)=>{
|
|
1007
|
-
setStatus(event.status);
|
|
1008
|
-
});
|
|
1009
|
-
}, [
|
|
1010
|
-
group
|
|
1011
|
-
]);
|
|
1012
|
-
useLayoutEffect(()=>{
|
|
1013
|
-
let dirty = false;
|
|
1014
|
-
return group.on("task.added", ()=>{
|
|
1015
|
-
if (!dirty) {
|
|
1016
|
-
dirty = true;
|
|
1017
|
-
queueMicrotask(()=>{
|
|
1018
|
-
setTasks([
|
|
1019
|
-
...group.tasks
|
|
1020
|
-
]);
|
|
1021
|
-
dirty = false;
|
|
1022
|
-
});
|
|
1023
|
-
}
|
|
1024
|
-
});
|
|
1025
|
-
}, [
|
|
1026
|
-
group
|
|
1027
|
-
]);
|
|
1028
|
-
useLayoutEffect(()=>{
|
|
1029
|
-
if (status === "running") {
|
|
1030
|
-
setCanReduce(false);
|
|
1031
|
-
} else if (status === "done") {
|
|
1032
|
-
setCanReduce(true);
|
|
1033
|
-
}
|
|
1034
|
-
}, [
|
|
1035
|
-
status
|
|
1036
|
-
]);
|
|
1037
|
-
// Render
|
|
1038
|
-
return /*#__PURE__*/ jsxs(Fragment, {
|
|
1039
|
-
children: [
|
|
1040
|
-
/*#__PURE__*/ jsx(TaskSpinner, {
|
|
1041
|
-
task: group
|
|
1042
|
-
}),
|
|
1043
|
-
isReduced || /*#__PURE__*/ jsx(Box, {
|
|
1044
|
-
flexDirection: "column",
|
|
1045
|
-
marginLeft: 2,
|
|
1046
|
-
children: tasks.map((task)=>/*#__PURE__*/ jsx(Fragment$1, {
|
|
1047
|
-
children: task instanceof GroupTask ? /*#__PURE__*/ jsx(GroupTaskSpinner, {
|
|
1048
|
-
group: task
|
|
1049
|
-
}) : /*#__PURE__*/ jsx(TaskSpinner, {
|
|
1050
|
-
task: task
|
|
1051
|
-
})
|
|
1052
|
-
}, task.id))
|
|
1053
|
-
})
|
|
1054
|
-
]
|
|
1055
|
-
});
|
|
1056
|
-
}
|
|
1057
|
-
|
|
1058
|
-
// Utils
|
|
1059
|
-
function taskPredicate(task) {
|
|
1060
|
-
if (task.group) {
|
|
1061
|
-
return false;
|
|
1062
|
-
}
|
|
1063
|
-
if ("hidden" in task.context && task.context.hidden) {
|
|
1064
|
-
return false;
|
|
1065
|
-
}
|
|
1066
|
-
return true;
|
|
1067
|
-
}
|
|
1068
|
-
// Components
|
|
1069
|
-
function TaskManagerSpinner({ manager }) {
|
|
1070
|
-
const [tasks, setTasks] = useState(manager.tasks.filter(taskPredicate));
|
|
1071
|
-
useLayoutEffect(()=>{
|
|
1072
|
-
let dirty = false;
|
|
1073
|
-
return manager.on("added", ()=>{
|
|
1074
|
-
if (!dirty) {
|
|
1075
|
-
dirty = true;
|
|
1076
|
-
queueMicrotask(()=>{
|
|
1077
|
-
setTasks(manager.tasks.filter(taskPredicate));
|
|
1078
|
-
dirty = false;
|
|
1079
|
-
});
|
|
1080
|
-
}
|
|
1081
|
-
});
|
|
1082
|
-
}, [
|
|
1083
|
-
manager
|
|
1084
|
-
]);
|
|
1085
|
-
return /*#__PURE__*/ jsx(Fragment, {
|
|
1086
|
-
children: tasks.map((task)=>task instanceof GroupTask ? /*#__PURE__*/ jsx(GroupTaskSpinner, {
|
|
1087
|
-
group: task
|
|
1088
|
-
}, task.id) : /*#__PURE__*/ jsx(TaskSpinner, {
|
|
1089
|
-
task: task
|
|
1090
|
-
}, task.id))
|
|
1091
|
-
});
|
|
1092
|
-
}
|
|
1093
|
-
|
|
1094
940
|
// Utils
|
|
1095
941
|
function printJson(data, stream = process.stdout) {
|
|
1096
942
|
if (stream.isTTY) {
|
|
@@ -1147,13 +993,7 @@ container.bind(INK_APP).toDynamicValue(()=>{
|
|
|
1147
993
|
return render(/*#__PURE__*/ jsx(Layout, {}));
|
|
1148
994
|
}).inSingletonScope();
|
|
1149
995
|
|
|
1150
|
-
|
|
1151
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1152
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1153
|
-
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1154
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1155
|
-
}
|
|
1156
|
-
let InkCommand = class InkCommand {
|
|
996
|
+
class InkCommand {
|
|
1157
997
|
builder(parser) {
|
|
1158
998
|
return parser;
|
|
1159
999
|
}
|
|
@@ -1165,13 +1005,13 @@ let InkCommand = class InkCommand {
|
|
|
1165
1005
|
}
|
|
1166
1006
|
await this.app.waitUntilExit();
|
|
1167
1007
|
}
|
|
1168
|
-
}
|
|
1169
|
-
|
|
1008
|
+
}
|
|
1009
|
+
_([
|
|
1170
1010
|
lazyInject(INK_APP)
|
|
1171
1011
|
], InkCommand.prototype, "app", void 0);
|
|
1172
|
-
InkCommand =
|
|
1012
|
+
InkCommand = _([
|
|
1173
1013
|
injectable()
|
|
1174
1014
|
], InkCommand);
|
|
1175
1015
|
|
|
1176
|
-
export {
|
|
1177
|
-
//# sourceMappingURL=ink-command-
|
|
1016
|
+
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 };
|
|
1017
|
+
//# sourceMappingURL=ink-command-8BDSCbqp.js.map
|