@jujulego/jill 2.4.0-alpha.4 → 2.4.0-alpha.6
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 +9 -12
- 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-CZ8_7QfH.js → core.plugin-fx8ZOGe-.js} +106 -135
- package/dist/core.plugin-fx8ZOGe-.js.map +1 -0
- package/dist/filters/scripts.filter.d.ts +2 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/{ink-command-SIxVoU_e.js → ink-command-OuyNSTxT.js} +14 -57
- package/dist/{ink-command-SIxVoU_e.js.map → ink-command-OuyNSTxT.js.map} +1 -1
- package/dist/{jill.application-NaKSF97o.js → jill.application-JCJSgP36.js} +21 -34
- package/dist/{jill.application-NaKSF97o.js.map → jill.application-JCJSgP36.js.map} +1 -1
- package/dist/main.js +6 -4
- 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} +3 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/{workspace-tree-9cXaezk-.js → workspace-tree-YMFiEGQk.js} +71 -110
- package/dist/workspace-tree-YMFiEGQk.js.map +1 -0
- package/package.json +10 -8
- package/dist/core.plugin-CZ8_7QfH.js.map +0 -1
- package/dist/workspace-tree-9cXaezk-.js.map +0 -1
|
@@ -1,17 +1,13 @@
|
|
|
1
|
+
import { _ } from '@swc/helpers/_/_ts_decorate';
|
|
2
|
+
import { _ as _$1 } from '@swc/helpers/_/_ts_param';
|
|
1
3
|
import { Logger, withLabel } from '@jujulego/logger';
|
|
2
4
|
import { injectable, inject } from 'inversify';
|
|
3
5
|
import yargs from 'yargs';
|
|
4
|
-
import { o as lazyInject, v as TASK_MANAGER, I as InkCommand, z as printJson, q as isCommandCtx, t as isScriptCtx, a as List, T as TaskManagerSpinner, E as ExitException, n as container, F as ContextService, P as PluginLoaderService, m as CURRENT, H as applyConfigOptions, k as getModule, e as COMMAND_MODULE, d as COMMAND, g as getCommandOpts, f as buildCommandModule } from './ink-command-
|
|
6
|
+
import { o as lazyInject, v as TASK_MANAGER, I as InkCommand, z as printJson, q as isCommandCtx, t as isScriptCtx, a as List, T as TaskManagerSpinner, E as ExitException, n as container, F as ContextService, P as PluginLoaderService, m as CURRENT, H as applyConfigOptions, k as getModule, e as COMMAND_MODULE, d as COMMAND, g as getCommandOpts, f as buildCommandModule } from './ink-command-OuyNSTxT.js';
|
|
5
7
|
import { jsx } from 'react/jsx-runtime';
|
|
6
8
|
import { waitFor$ } from '@jujulego/event-tree';
|
|
7
9
|
import { TaskSet, plan } from '@jujulego/tasks';
|
|
8
10
|
|
|
9
|
-
function _ts_decorate$1(decorators, target, key, desc) {
|
|
10
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
11
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
12
|
-
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;
|
|
13
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
14
|
-
}
|
|
15
11
|
let TaskCommand = class TaskCommand extends InkCommand {
|
|
16
12
|
addTaskOptions(parser) {
|
|
17
13
|
return parser.option("plan", {
|
|
@@ -68,15 +64,15 @@ let TaskCommand = class TaskCommand extends InkCommand {
|
|
|
68
64
|
}
|
|
69
65
|
}
|
|
70
66
|
};
|
|
71
|
-
|
|
67
|
+
_([
|
|
72
68
|
lazyInject(TASK_MANAGER)
|
|
73
69
|
], TaskCommand.prototype, "manager", void 0);
|
|
74
|
-
TaskCommand =
|
|
70
|
+
TaskCommand = _([
|
|
75
71
|
injectable()
|
|
76
72
|
], TaskCommand);
|
|
77
73
|
|
|
78
74
|
var name = "@jujulego/jill";
|
|
79
|
-
var version = "2.4.0-alpha.
|
|
75
|
+
var version = "2.4.0-alpha.6";
|
|
80
76
|
var license = "MIT";
|
|
81
77
|
var repository = {
|
|
82
78
|
type: "git",
|
|
@@ -111,6 +107,7 @@ var dependencies = {
|
|
|
111
107
|
"@jujulego/quick-tag": "^0.3.3",
|
|
112
108
|
"@jujulego/tasks": "^2.2.0",
|
|
113
109
|
"@jujulego/utils": "^2.0.2",
|
|
110
|
+
"@swc/helpers": "^0.5.3",
|
|
114
111
|
ajv: "^8.12.0",
|
|
115
112
|
chalk: "^5.3.0",
|
|
116
113
|
"chalk-template": "^1.1.0",
|
|
@@ -133,23 +130,24 @@ var dependencies = {
|
|
|
133
130
|
};
|
|
134
131
|
var devDependencies = {
|
|
135
132
|
"@jujulego/2d-maths": "1.6.0",
|
|
136
|
-
"@jujulego/vite-plugin-swc": "1.1.
|
|
133
|
+
"@jujulego/vite-plugin-swc": "1.1.1",
|
|
137
134
|
"@microsoft/eslint-formatter-sarif": "3.0.0",
|
|
138
135
|
"@rollup/plugin-json": "6.0.1",
|
|
136
|
+
"@rollup/plugin-node-resolve": "15.2.3",
|
|
139
137
|
"@swc/core": "1.3.96",
|
|
140
138
|
"@types/moo": "0.5.9",
|
|
141
|
-
"@types/node": "16.18.
|
|
139
|
+
"@types/node": "16.18.62",
|
|
142
140
|
"@types/normalize-package-data": "2.4.4",
|
|
143
141
|
"@types/react": "18.2.37",
|
|
144
142
|
"@types/semver": "7.5.5",
|
|
145
143
|
"@types/yargs": "17.0.31",
|
|
146
|
-
"@typescript-eslint/eslint-plugin": "6.
|
|
147
|
-
"@typescript-eslint/parser": "6.
|
|
144
|
+
"@typescript-eslint/eslint-plugin": "6.11.0",
|
|
145
|
+
"@typescript-eslint/parser": "6.11.0",
|
|
148
146
|
"@vitest/coverage-v8": "0.34.6",
|
|
149
147
|
"@vitest/expect": "0.34.6",
|
|
150
148
|
"@vitest/spy": "0.34.6",
|
|
151
149
|
browserslist: "4.22.1",
|
|
152
|
-
eslint: "8.
|
|
150
|
+
eslint: "8.54.0",
|
|
153
151
|
"eslint-plugin-react": "7.33.2",
|
|
154
152
|
"eslint-plugin-react-hooks": "4.6.0",
|
|
155
153
|
"eslint-plugin-vitest": "0.3.9",
|
|
@@ -160,11 +158,11 @@ var devDependencies = {
|
|
|
160
158
|
shx: "0.3.4",
|
|
161
159
|
"ts-node": "10.9.1",
|
|
162
160
|
typescript: "5.2.2",
|
|
163
|
-
vite: "5.0.0
|
|
161
|
+
vite: "5.0.0",
|
|
164
162
|
"vite-tsconfig-paths": "4.2.1",
|
|
165
163
|
vitest: "0.34.6"
|
|
166
164
|
};
|
|
167
|
-
var packageManager = "yarn@3.
|
|
165
|
+
var packageManager = "yarn@3.7.0";
|
|
168
166
|
var pkg = {
|
|
169
167
|
name: name,
|
|
170
168
|
version: version,
|
|
@@ -181,17 +179,6 @@ var pkg = {
|
|
|
181
179
|
packageManager: packageManager
|
|
182
180
|
};
|
|
183
181
|
|
|
184
|
-
function _ts_decorate(decorators, target, key, desc) {
|
|
185
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
186
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
187
|
-
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;
|
|
188
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
189
|
-
}
|
|
190
|
-
function _ts_param(paramIndex, decorator) {
|
|
191
|
-
return function(target, key) {
|
|
192
|
-
decorator(target, key, paramIndex);
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
182
|
let JillApplication = class JillApplication {
|
|
196
183
|
// Constructor
|
|
197
184
|
constructor(context, plugins, logger){
|
|
@@ -210,7 +197,7 @@ let JillApplication = class JillApplication {
|
|
|
210
197
|
}
|
|
211
198
|
async _loadPlugins() {
|
|
212
199
|
this.logger.child(withLabel("plugin")).verbose("Loading plugin <core>");
|
|
213
|
-
const { CorePlugin } = await import('./core.plugin-
|
|
200
|
+
const { CorePlugin } = await import('./core.plugin-fx8ZOGe-.js');
|
|
214
201
|
this.container.load(getModule(CorePlugin, true));
|
|
215
202
|
await this.plugins.loadPlugins(this.container);
|
|
216
203
|
}
|
|
@@ -254,11 +241,11 @@ let JillApplication = class JillApplication {
|
|
|
254
241
|
});
|
|
255
242
|
}
|
|
256
243
|
};
|
|
257
|
-
JillApplication =
|
|
244
|
+
JillApplication = _([
|
|
258
245
|
injectable(),
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
246
|
+
_$1(0, inject(ContextService)),
|
|
247
|
+
_$1(1, inject(PluginLoaderService)),
|
|
248
|
+
_$1(2, inject(Logger))
|
|
262
249
|
], JillApplication);
|
|
263
250
|
container.bind(JillApplication).toSelf().inTransientScope().whenTargetIsDefault();
|
|
264
251
|
container.bind(JillApplication).toDynamicValue(({ container })=>{
|
|
@@ -276,4 +263,4 @@ var jill_application = /*#__PURE__*/Object.freeze({
|
|
|
276
263
|
});
|
|
277
264
|
|
|
278
265
|
export { JillApplication as J, TaskCommand as T, jill_application as j };
|
|
279
|
-
//# sourceMappingURL=jill.application-
|
|
266
|
+
//# sourceMappingURL=jill.application-JCJSgP36.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jill.application-NaKSF97o.js","sources":["../src/modules/task-command.tsx","../src/jill.application.ts"],"sourcesContent":["import { waitFor$ } from '@jujulego/event-tree';\nimport { Logger } from '@jujulego/logger';\nimport { plan as extractPlan, type Task, type TaskManager, TaskSet, type TaskSummary } from '@jujulego/tasks';\nimport { injectable } from 'inversify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { container, lazyInject } from '@/src/inversify.config.ts';\nimport { isCommandCtx } from '@/src/tasks/command-task.ts';\nimport { isScriptCtx } from '@/src/tasks/script-task.ts';\nimport { TASK_MANAGER } from '@/src/tasks/task-manager.config.ts';\nimport { type AwaitableGenerator } from '@/src/types.ts';\nimport List from '@/src/ui/list.tsx';\nimport TaskManagerSpinner from '@/src/ui/task-manager-spinner.tsx';\nimport { ExitException } from '@/src/utils/exit.ts';\nimport { printJson } from '@/src/utils/json.ts';\n\nimport { InkCommand } from './ink-command.tsx';\n\n// Types\nexport interface ITaskCommandArgs {\n plan: boolean;\n 'plan-mode': 'json' | 'list';\n}\n\n// Class\n@injectable()\nexport abstract class TaskCommand<A = unknown> extends InkCommand<A> {\n // Attributes\n @lazyInject(TASK_MANAGER)\n readonly manager: TaskManager;\n\n // Methods\n abstract prepare(args: ArgumentsCamelCase<A>): AwaitableGenerator<Task>;\n\n protected addTaskOptions(parser: Argv): Argv<ITaskCommandArgs> {\n return parser\n .option('plan', {\n type: 'boolean',\n desc: 'Only prints tasks to be run',\n default: false,\n })\n .option('plan-mode', {\n type: 'string',\n desc: 'Plan output mode',\n choices: ['json', 'list'] as const,\n default: 'list' as const\n });\n }\n\n async* render(args: ArgumentsCamelCase<A & ITaskCommandArgs>) {\n // Prepare tasks\n const tasks = new TaskSet();\n\n for await (const tsk of this.prepare(args)) {\n tasks.add(tsk);\n }\n\n if (args.plan) {\n const plan: TaskSummary[] = Array.from(extractPlan(tasks));\n\n if (args.planMode === 'json') {\n printJson(plan);\n } else {\n const data = plan.map((tsk) => ({\n id: tsk.id.substring(0, 6),\n name: tsk.name,\n workspace: isCommandCtx(tsk.context) || isScriptCtx(tsk.context) ? tsk.context.workspace.name : '',\n group: tsk.groupId?.substring(0, 6),\n 'depends on': tsk.dependenciesIds.map(id => id.substring(0, 6)).join(', ')\n }));\n\n yield <List items={data} headers/>;\n }\n } else if (tasks.tasks.length > 0) {\n // Render\n yield <TaskManagerSpinner manager={this.manager} />;\n\n // Start tasks\n tasks.start(this.manager);\n\n const result = await waitFor$(tasks, 'finished');\n\n if (result.failed > 0) {\n throw new ExitException(1);\n }\n } else {\n const logger = container.get(Logger);\n logger.warning('No task found');\n }\n }\n}\n","import { Logger, withLabel } from '@jujulego/logger';\nimport { type Task } from '@jujulego/tasks';\nimport { inject, injectable, type interfaces as int } from 'inversify';\nimport yargs, { type Argv, type CommandModule } from 'yargs';\n\nimport { ContextService, type Context } from '@/src/commons/context.service.ts';\nimport { applyConfigOptions } from '@/src/config/config-options.ts';\nimport { CURRENT } from '@/src/constants.ts';\nimport { container, lazyInjectNamed } from '@/src/inversify.config.ts';\nimport { buildCommandModule, COMMAND, COMMAND_MODULE, getCommandOpts, type ICommand } from '@/src/modules/command.ts';\nimport { getModule } from '@/src/modules/module.ts';\nimport { PluginLoaderService } from '@/src/modules/plugin-loader.service.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { type Class } from '@/src/types.ts';\n\n// @ts-ignore: Outside of typescript's rootDir in build\nimport pkg from '../package.json';\n\n// Application\n@injectable()\nexport class JillApplication {\n // Attributes\n readonly container: int.Container;\n readonly parser: Argv;\n\n // Constructor\n constructor(\n @inject(ContextService)\n private readonly context: ContextService,\n @inject(PluginLoaderService)\n private readonly plugins: PluginLoaderService,\n @inject(Logger)\n private readonly logger: Logger,\n ) {\n // Create container\n this.container = container.createChild();\n\n // Create parser\n this.parser = yargs()\n .scriptName('jill')\n .completion('completion', 'Generate bash completion script')\n .help('help', 'Show help for a command')\n .version('version', 'Show version', pkg.version)\n .wrap(process.stdout.columns)\n .exitProcess(false);\n }\n\n // Methods\n private _prepareParser(commands: CommandModule[]): Argv {\n applyConfigOptions(this.parser);\n\n return this.parser\n .command(commands)\n .recommendCommands()\n .strict()\n .fail(false);\n }\n\n private async _loadPlugins(): Promise<void> {\n this.logger.child(withLabel('plugin')).verbose('Loading plugin <core>');\n\n const { CorePlugin } = await import('@/src/core.plugin.ts');\n this.container.load(getModule(CorePlugin, true));\n\n await this.plugins.loadPlugins(this.container);\n }\n\n async run(argv: string | readonly string[]): Promise<void> {\n this.context.reset({ application: this });\n await this._loadPlugins();\n\n // Parse command\n const commands = await this.container.getAllAsync(COMMAND_MODULE);\n\n await this._prepareParser(commands).parseAsync(argv);\n }\n\n async tasksOf(argv: string[], ctx: Omit<Context, 'application'> = {}): Promise<Task[]> {\n this.context.reset({ ...ctx, application: this });\n await this._loadPlugins();\n\n // Prepare commands\n const commands = await this.container.getAllAsync(COMMAND);\n\n return new Promise<Task[]>((resolve, reject) => {\n const modules: CommandModule[] = [];\n\n for (const cmd of commands) {\n const opts = getCommandOpts(cmd.constructor as Class<ICommand>);\n const mod = buildCommandModule(cmd, opts);\n\n mod.handler = async (args) => {\n if (cmd instanceof TaskCommand) {\n const tasks: Task[] = [];\n\n for await (const tsk of cmd.prepare(args)) {\n tasks.push(tsk);\n }\n\n resolve(tasks);\n } else {\n resolve([]);\n }\n };\n\n modules.push(mod);\n }\n\n // Parse command\n this._prepareParser(modules)\n .parseAsync(argv)\n .catch(reject);\n });\n }\n}\n\ncontainer.bind(JillApplication)\n .toSelf()\n .inTransientScope()\n .whenTargetIsDefault();\n\n// Lazy injection\nexport function LazyCurrentApplication() {\n return lazyInjectNamed(JillApplication, CURRENT);\n}\n\ncontainer.bind(JillApplication)\n .toDynamicValue(({ container }) => {\n const ctx = container.get(ContextService);\n const app = ctx.application;\n\n if (!app) {\n throw new Error('Cannot inject current application, it not yet defined');\n }\n\n return app;\n })\n .whenTargetNamed(CURRENT);\n"],"names":["TaskCommand","InkCommand","addTaskOptions","parser","option","type","desc","default","choices","render","args","tasks","TaskSet","tsk","prepare","add","plan","Array","from","extractPlan","planMode","printJson","data","map","id","substring","name","workspace","isCommandCtx","context","isScriptCtx","group","groupId","dependenciesIds","join","_jsx","List","items","headers","length","TaskManagerSpinner","manager","start","result","waitFor$","failed","ExitException","logger","container","get","Logger","warning","lazyInject","TASK_MANAGER","injectable","JillApplication","constructor","plugins","createChild","yargs","scriptName","completion","help","version","pkg","wrap","process","stdout","columns","exitProcess","_prepareParser","commands","applyConfigOptions","command","recommendCommands","strict","fail","_loadPlugins","child","withLabel","verbose","CorePlugin","load","getModule","loadPlugins","run","argv","reset","application","getAllAsync","COMMAND_MODULE","parseAsync","tasksOf","ctx","COMMAND","Promise","resolve","reject","modules","cmd","opts","getCommandOpts","mod","buildCommandModule","handler","push","catch","inject","ContextService","PluginLoaderService","bind","toSelf","inTransientScope","whenTargetIsDefault","toDynamicValue","app","Error","whenTargetNamed","CURRENT"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jill.application-JCJSgP36.js","sources":["../src/modules/task-command.tsx","../src/jill.application.ts"],"sourcesContent":["import { waitFor$ } from '@jujulego/event-tree';\nimport { Logger } from '@jujulego/logger';\nimport { plan as extractPlan, type Task, type TaskManager, TaskSet, type TaskSummary } from '@jujulego/tasks';\nimport { injectable } from 'inversify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { container, lazyInject } from '@/src/inversify.config.ts';\nimport { isCommandCtx } from '@/src/tasks/command-task.ts';\nimport { isScriptCtx } from '@/src/tasks/script-task.ts';\nimport { TASK_MANAGER } from '@/src/tasks/task-manager.config.ts';\nimport { type AwaitableGenerator } from '@/src/types.ts';\nimport List from '@/src/ui/list.tsx';\nimport TaskManagerSpinner from '@/src/ui/task-manager-spinner.tsx';\nimport { ExitException } from '@/src/utils/exit.ts';\nimport { printJson } from '@/src/utils/json.ts';\n\nimport { InkCommand } from './ink-command.tsx';\n\n// Types\nexport interface ITaskCommandArgs {\n plan: boolean;\n 'plan-mode': 'json' | 'list';\n}\n\n// Class\n@injectable()\nexport abstract class TaskCommand<A = unknown> extends InkCommand<A> {\n // Attributes\n @lazyInject(TASK_MANAGER)\n readonly manager: TaskManager;\n\n // Methods\n abstract prepare(args: ArgumentsCamelCase<A>): AwaitableGenerator<Task>;\n\n protected addTaskOptions(parser: Argv): Argv<ITaskCommandArgs> {\n return parser\n .option('plan', {\n type: 'boolean',\n desc: 'Only prints tasks to be run',\n default: false,\n })\n .option('plan-mode', {\n type: 'string',\n desc: 'Plan output mode',\n choices: ['json', 'list'] as const,\n default: 'list' as const\n });\n }\n\n async* render(args: ArgumentsCamelCase<A & ITaskCommandArgs>) {\n // Prepare tasks\n const tasks = new TaskSet();\n\n for await (const tsk of this.prepare(args)) {\n tasks.add(tsk);\n }\n\n if (args.plan) {\n const plan: TaskSummary[] = Array.from(extractPlan(tasks));\n\n if (args.planMode === 'json') {\n printJson(plan);\n } else {\n const data = plan.map((tsk) => ({\n id: tsk.id.substring(0, 6),\n name: tsk.name,\n workspace: isCommandCtx(tsk.context) || isScriptCtx(tsk.context) ? tsk.context.workspace.name : '',\n group: tsk.groupId?.substring(0, 6),\n 'depends on': tsk.dependenciesIds.map(id => id.substring(0, 6)).join(', ')\n }));\n\n yield <List items={data} headers/>;\n }\n } else if (tasks.tasks.length > 0) {\n // Render\n yield <TaskManagerSpinner manager={this.manager} />;\n\n // Start tasks\n tasks.start(this.manager);\n\n const result = await waitFor$(tasks, 'finished');\n\n if (result.failed > 0) {\n throw new ExitException(1);\n }\n } else {\n const logger = container.get(Logger);\n logger.warning('No task found');\n }\n }\n}\n","import { Logger, withLabel } from '@jujulego/logger';\nimport { type Task } from '@jujulego/tasks';\nimport { inject, injectable, type interfaces as int } from 'inversify';\nimport yargs, { type Argv, type CommandModule } from 'yargs';\n\nimport { ContextService, type Context } from '@/src/commons/context.service.ts';\nimport { applyConfigOptions } from '@/src/config/config-options.ts';\nimport { CURRENT } from '@/src/constants.ts';\nimport { container, lazyInjectNamed } from '@/src/inversify.config.ts';\nimport { buildCommandModule, COMMAND, COMMAND_MODULE, getCommandOpts, type ICommand } from '@/src/modules/command.ts';\nimport { getModule } from '@/src/modules/module.ts';\nimport { PluginLoaderService } from '@/src/modules/plugin-loader.service.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { type Class } from '@/src/types.ts';\n\n// @ts-ignore: Outside of typescript's rootDir in build\nimport pkg from '../package.json';\n\n// Application\n@injectable()\nexport class JillApplication {\n // Attributes\n readonly container: int.Container;\n readonly parser: Argv;\n\n // Constructor\n constructor(\n @inject(ContextService)\n private readonly context: ContextService,\n @inject(PluginLoaderService)\n private readonly plugins: PluginLoaderService,\n @inject(Logger)\n private readonly logger: Logger,\n ) {\n // Create container\n this.container = container.createChild();\n\n // Create parser\n this.parser = yargs()\n .scriptName('jill')\n .completion('completion', 'Generate bash completion script')\n .help('help', 'Show help for a command')\n .version('version', 'Show version', pkg.version)\n .wrap(process.stdout.columns)\n .exitProcess(false);\n }\n\n // Methods\n private _prepareParser(commands: CommandModule[]): Argv {\n applyConfigOptions(this.parser);\n\n return this.parser\n .command(commands)\n .recommendCommands()\n .strict()\n .fail(false);\n }\n\n private async _loadPlugins(): Promise<void> {\n this.logger.child(withLabel('plugin')).verbose('Loading plugin <core>');\n\n const { CorePlugin } = await import('@/src/core.plugin.ts');\n this.container.load(getModule(CorePlugin, true));\n\n await this.plugins.loadPlugins(this.container);\n }\n\n async run(argv: string | readonly string[]): Promise<void> {\n this.context.reset({ application: this });\n await this._loadPlugins();\n\n // Parse command\n const commands = await this.container.getAllAsync(COMMAND_MODULE);\n\n await this._prepareParser(commands).parseAsync(argv);\n }\n\n async tasksOf(argv: string[], ctx: Omit<Context, 'application'> = {}): Promise<Task[]> {\n this.context.reset({ ...ctx, application: this });\n await this._loadPlugins();\n\n // Prepare commands\n const commands = await this.container.getAllAsync(COMMAND);\n\n return new Promise<Task[]>((resolve, reject) => {\n const modules: CommandModule[] = [];\n\n for (const cmd of commands) {\n const opts = getCommandOpts(cmd.constructor as Class<ICommand>);\n const mod = buildCommandModule(cmd, opts);\n\n mod.handler = async (args) => {\n if (cmd instanceof TaskCommand) {\n const tasks: Task[] = [];\n\n for await (const tsk of cmd.prepare(args)) {\n tasks.push(tsk);\n }\n\n resolve(tasks);\n } else {\n resolve([]);\n }\n };\n\n modules.push(mod);\n }\n\n // Parse command\n this._prepareParser(modules)\n .parseAsync(argv)\n .catch(reject);\n });\n }\n}\n\ncontainer.bind(JillApplication)\n .toSelf()\n .inTransientScope()\n .whenTargetIsDefault();\n\n// Lazy injection\nexport function LazyCurrentApplication() {\n return lazyInjectNamed(JillApplication, CURRENT);\n}\n\ncontainer.bind(JillApplication)\n .toDynamicValue(({ container }) => {\n const ctx = container.get(ContextService);\n const app = ctx.application;\n\n if (!app) {\n throw new Error('Cannot inject current application, it not yet defined');\n }\n\n return app;\n })\n .whenTargetNamed(CURRENT);\n"],"names":["TaskCommand","InkCommand","addTaskOptions","parser","option","type","desc","default","choices","render","args","tasks","TaskSet","tsk","prepare","add","plan","Array","from","extractPlan","planMode","printJson","data","map","id","substring","name","workspace","isCommandCtx","context","isScriptCtx","group","groupId","dependenciesIds","join","_jsx","List","items","headers","length","TaskManagerSpinner","manager","start","result","waitFor$","failed","ExitException","logger","container","get","Logger","warning","lazyInject","TASK_MANAGER","injectable","JillApplication","constructor","plugins","createChild","yargs","scriptName","completion","help","version","pkg","wrap","process","stdout","columns","exitProcess","_prepareParser","commands","applyConfigOptions","command","recommendCommands","strict","fail","_loadPlugins","child","withLabel","verbose","CorePlugin","load","getModule","loadPlugins","run","argv","reset","application","getAllAsync","COMMAND_MODULE","parseAsync","tasksOf","ctx","COMMAND","Promise","resolve","reject","modules","cmd","opts","getCommandOpts","mod","buildCommandModule","handler","push","catch","inject","ContextService","PluginLoaderService","bind","toSelf","inTransientScope","whenTargetIsDefault","toDynamicValue","app","Error","whenTargetNamed","CURRENT"],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Logger } from '@jujulego/logger';
|
|
2
2
|
import { hideBin } from 'yargs/helpers';
|
|
3
|
-
import { n as container, E as ExitException } from './ink-command-
|
|
4
|
-
import { J as JillApplication } from './jill.application-
|
|
3
|
+
import { n as container, E as ExitException } from './ink-command-OuyNSTxT.js';
|
|
4
|
+
import { J as JillApplication } from './jill.application-JCJSgP36.js';
|
|
5
|
+
import '@swc/helpers/_/_ts_decorate';
|
|
6
|
+
import '@swc/helpers/_/_ts_param';
|
|
5
7
|
import 'inversify';
|
|
6
8
|
import 'node:async_hooks';
|
|
7
9
|
import '@jujulego/tasks';
|
|
@@ -33,11 +35,11 @@ import 'chalk-template';
|
|
|
33
35
|
if (err instanceof ExitException) {
|
|
34
36
|
process.exit(err.code);
|
|
35
37
|
} else {
|
|
38
|
+
console.error(await app.parser.getHelp());
|
|
36
39
|
if (err.message) {
|
|
37
40
|
const logger = container.get(Logger);
|
|
38
|
-
logger.error(
|
|
41
|
+
logger.error(err.message);
|
|
39
42
|
}
|
|
40
|
-
console.error(await app.parser.getHelp());
|
|
41
43
|
process.exit(1);
|
|
42
44
|
}
|
|
43
45
|
}
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["../src/main.ts"],"sourcesContent":["import { Logger } from '@jujulego/logger';\nimport { hideBin } from 'yargs/helpers';\n\nimport '@/src/commons/logger.service.ts';\nimport { container } from '@/src/inversify.config.ts';\nimport { JillApplication } from '@/src/jill.application.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\n// Bootstrap\n(async () => {\n const app = await container.getAsync(JillApplication);\n\n try {\n await app.run(hideBin(process.argv));\n } catch (err) {\n if (err instanceof ExitException) {\n process.exit(err.code);\n } else {\n if (err.message) {\n const logger = container.get(Logger);\n logger.error(
|
|
1
|
+
{"version":3,"file":"main.js","sources":["../src/main.ts"],"sourcesContent":["import { Logger } from '@jujulego/logger';\nimport { hideBin } from 'yargs/helpers';\n\nimport '@/src/commons/logger.service.ts';\nimport { container } from '@/src/inversify.config.ts';\nimport { JillApplication } from '@/src/jill.application.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\n// Bootstrap\n(async () => {\n const app = await container.getAsync(JillApplication);\n\n try {\n await app.run(hideBin(process.argv));\n } catch (err) {\n if (err instanceof ExitException) {\n process.exit(err.code);\n } else {\n console.error(await app.parser.getHelp());\n\n if (err.message) {\n const logger = container.get(Logger);\n logger.error(err.message);\n }\n\n process.exit(1);\n }\n }\n})();\n"],"names":["app","container","getAsync","JillApplication","run","hideBin","process","argv","err","ExitException","exit","code","console","error","parser","getHelp","message","logger","get","Logger"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA;AACC,CAAA,UAAA;AACC,IAAA,MAAMA,GAAM,GAAA,MAAMC,SAAUC,CAAAA,QAAQ,CAACC,eAAAA,CAAAA,CAAAA;IAErC,IAAI;AACF,QAAA,MAAMH,GAAII,CAAAA,GAAG,CAACC,OAAAA,CAAQC,QAAQC,IAAI,CAAA,CAAA,CAAA;AACpC,KAAA,CAAE,OAAOC,GAAK,EAAA;AACZ,QAAA,IAAIA,eAAeC,aAAe,EAAA;YAChCH,OAAQI,CAAAA,IAAI,CAACF,GAAAA,CAAIG,IAAI,CAAA,CAAA;SAChB,MAAA;AACLC,YAAAA,OAAAA,CAAQC,KAAK,CAAC,MAAMb,GAAIc,CAAAA,MAAM,CAACC,OAAO,EAAA,CAAA,CAAA;YAEtC,IAAIP,GAAAA,CAAIQ,OAAO,EAAE;gBACf,MAAMC,MAAAA,GAAShB,SAAUiB,CAAAA,GAAG,CAACC,MAAAA,CAAAA,CAAAA;gBAC7BF,MAAOJ,CAAAA,KAAK,CAACL,GAAAA,CAAIQ,OAAO,CAAA,CAAA;AAC1B,aAAA;AAEAV,YAAAA,OAAAA,CAAQI,IAAI,CAAC,CAAA,CAAA,CAAA;AACf,SAAA;AACF,KAAA;AACF,CAAA,GAAA"}
|
|
@@ -12,12 +12,14 @@ export interface GroupNode {
|
|
|
12
12
|
export interface TaskTree {
|
|
13
13
|
roots: (TaskNode | GroupNode)[];
|
|
14
14
|
}
|
|
15
|
-
export declare class
|
|
15
|
+
export declare class TaskExpressionService {
|
|
16
16
|
private readonly _logger;
|
|
17
17
|
static isTaskNode(node: TaskNode | GroupNode): node is TaskNode;
|
|
18
|
+
private static _sequenceOperatorWarn;
|
|
18
19
|
constructor(_logger: Logger);
|
|
19
20
|
private _lexer;
|
|
20
21
|
private _nextNode;
|
|
21
22
|
parse(expr: string): TaskTree;
|
|
23
|
+
extractScripts(node: TaskTree | TaskNode | GroupNode): Generator<string>;
|
|
22
24
|
buildTask(node: TaskNode | GroupNode, workspace: Workspace, opts?: WorkspaceRunOptions): Promise<Task>;
|
|
23
25
|
}
|