@jujulego/jill 1.1.19 → 2.0.0-beta.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.
- package/dist/application.context.d.ts +28 -0
- package/dist/application.context.d.ts.map +1 -0
- package/dist/application.context.js +30 -0
- package/dist/application.context.js.map +1 -0
- package/dist/application.d.ts +7 -0
- package/dist/application.d.ts.map +1 -0
- package/dist/application.js +125 -0
- package/dist/application.js.map +1 -0
- package/dist/command.d.ts +8 -0
- package/dist/command.d.ts.map +1 -0
- package/dist/command.js +24 -0
- package/dist/command.js.map +1 -0
- package/dist/commands/each.command.d.ts +14 -12
- package/dist/commands/each.command.d.ts.map +1 -1
- package/dist/commands/each.command.js +89 -116
- package/dist/commands/each.command.js.map +1 -1
- package/dist/commands/list.command.d.ts +17 -13
- package/dist/commands/list.command.d.ts.map +1 -1
- package/dist/commands/list.command.js +146 -145
- package/dist/commands/list.command.js.map +1 -1
- package/dist/commands/run.command.d.ts +10 -10
- package/dist/commands/run.command.d.ts.map +1 -1
- package/dist/commands/run.command.js +45 -62
- package/dist/commands/run.command.js.map +1 -1
- package/dist/commands/tree.command.d.ts +7 -0
- package/dist/commands/tree.command.d.ts.map +1 -0
- package/dist/commands/tree.command.js +35 -0
- package/dist/commands/tree.command.js.map +1 -0
- package/dist/components/StaticLogs.d.ts +2 -0
- package/dist/components/StaticLogs.d.ts.map +1 -0
- package/dist/components/StaticLogs.js +77 -0
- package/dist/components/StaticLogs.js.map +1 -0
- package/dist/components/WorkspaceTree.d.ts +8 -0
- package/dist/components/WorkspaceTree.d.ts.map +1 -0
- package/dist/components/WorkspaceTree.js +151 -0
- package/dist/components/WorkspaceTree.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +16 -21
- package/dist/main.js.map +1 -1
- package/dist/wrapper.d.ts +6 -0
- package/dist/wrapper.d.ts.map +1 -0
- package/dist/wrapper.js +30 -0
- package/dist/wrapper.js.map +1 -0
- package/dist/wrappers/project.wrapper.d.ts +7 -0
- package/dist/wrappers/project.wrapper.d.ts.map +1 -0
- package/dist/wrappers/project.wrapper.js +105 -0
- package/dist/wrappers/project.wrapper.js.map +1 -0
- package/dist/wrappers/workspace.wrapper.d.ts +5 -0
- package/dist/wrappers/workspace.wrapper.d.ts.map +1 -0
- package/dist/wrappers/workspace.wrapper.js +108 -0
- package/dist/wrappers/workspace.wrapper.js.map +1 -0
- package/package.json +44 -25
- package/dist/commands/info.command.d.ts +0 -8
- package/dist/commands/info.command.d.ts.map +0 -1
- package/dist/commands/info.command.js +0 -178
- package/dist/commands/info.command.js.map +0 -1
- package/dist/myr/commands/kill.command.d.ts +0 -10
- package/dist/myr/commands/kill.command.d.ts.map +0 -1
- package/dist/myr/commands/kill.command.js +0 -89
- package/dist/myr/commands/kill.command.js.map +0 -1
- package/dist/myr/commands/list.command.d.ts +0 -17
- package/dist/myr/commands/list.command.d.ts.map +0 -1
- package/dist/myr/commands/list.command.js +0 -167
- package/dist/myr/commands/list.command.js.map +0 -1
- package/dist/myr/commands/logs.command.d.ts +0 -10
- package/dist/myr/commands/logs.command.d.ts.map +0 -1
- package/dist/myr/commands/logs.command.js +0 -165
- package/dist/myr/commands/logs.command.js.map +0 -1
- package/dist/myr/commands/spawn.command.d.ts +0 -10
- package/dist/myr/commands/spawn.command.d.ts.map +0 -1
- package/dist/myr/commands/spawn.command.js +0 -84
- package/dist/myr/commands/spawn.command.js.map +0 -1
- package/dist/myr/commands/stop.command.d.ts +0 -6
- package/dist/myr/commands/stop.command.d.ts.map +0 -1
- package/dist/myr/commands/stop.command.js +0 -80
- package/dist/myr/commands/stop.command.js.map +0 -1
- package/dist/myr/myr-client.d.ts +0 -22
- package/dist/myr/myr-client.d.ts.map +0 -1
- package/dist/myr/myr-client.js +0 -378
- package/dist/myr/myr-client.js.map +0 -1
- package/dist/myr/myr.command.d.ts +0 -8
- package/dist/myr/myr.command.d.ts.map +0 -1
- package/dist/myr/myr.command.js +0 -42
- package/dist/myr/myr.command.js.map +0 -1
- package/dist/myr/myr.process.d.ts +0 -1
- package/dist/myr/myr.process.d.ts.map +0 -1
- package/dist/myr/myr.process.js +0 -77
- package/dist/myr/myr.process.js.map +0 -1
- package/dist/myr/watch.command.d.ts +0 -12
- package/dist/myr/watch.command.d.ts.map +0 -1
- package/dist/myr/watch.command.js +0 -169
- package/dist/myr/watch.command.js.map +0 -1
- package/dist/task-logger.d.ts +0 -14
- package/dist/task-logger.d.ts.map +0 -1
- package/dist/task-logger.js +0 -76
- package/dist/task-logger.js.map +0 -1
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.WatchCommand = void 0;
|
|
7
|
-
|
|
8
|
-
var _jillCommon = require("@jujulego/jill-common");
|
|
9
|
-
|
|
10
|
-
var _jillCore = require("@jujulego/jill-core");
|
|
11
|
-
|
|
12
|
-
var _myrClient = require("./myr-client");
|
|
13
|
-
|
|
14
|
-
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
15
|
-
function adopt(value) {
|
|
16
|
-
return value instanceof P ? value : new P(function (resolve) {
|
|
17
|
-
resolve(value);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
22
|
-
function fulfilled(value) {
|
|
23
|
-
try {
|
|
24
|
-
step(generator.next(value));
|
|
25
|
-
} catch (e) {
|
|
26
|
-
reject(e);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
function rejected(value) {
|
|
31
|
-
try {
|
|
32
|
-
step(generator["throw"](value));
|
|
33
|
-
} catch (e) {
|
|
34
|
-
reject(e);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function step(result) {
|
|
39
|
-
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
var __asyncValues = void 0 && (void 0).__asyncValues || function (o) {
|
|
47
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
48
|
-
var m = o[Symbol.asyncIterator],
|
|
49
|
-
i;
|
|
50
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
|
|
51
|
-
return this;
|
|
52
|
-
}, i);
|
|
53
|
-
|
|
54
|
-
function verb(n) {
|
|
55
|
-
i[n] = o[n] && function (v) {
|
|
56
|
-
return new Promise(function (resolve, reject) {
|
|
57
|
-
v = o[n](v), settle(resolve, reject, v.done, v.value);
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function settle(resolve, reject, d, v) {
|
|
63
|
-
Promise.resolve(v).then(function (v) {
|
|
64
|
-
resolve({
|
|
65
|
-
value: v,
|
|
66
|
-
done: d
|
|
67
|
-
});
|
|
68
|
-
}, reject);
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
// Command
|
|
73
|
-
class WatchCommand extends _jillCommon.WorkspaceCommand {
|
|
74
|
-
constructor() {
|
|
75
|
-
super(...arguments); // Attributes
|
|
76
|
-
|
|
77
|
-
this.name = 'watch <script>';
|
|
78
|
-
this.description = 'Run script with watcher inside workspace and watch over deps';
|
|
79
|
-
} // Methods
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
spawnDepsTree(myr, wks, set) {
|
|
83
|
-
var e_1, _a;
|
|
84
|
-
|
|
85
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
-
let count = 0;
|
|
87
|
-
|
|
88
|
-
try {
|
|
89
|
-
for (var _b = __asyncValues((0, _jillCore.combine)(wks.dependencies(), wks.devDependencies())), _c; _c = yield _b.next(), !_c.done;) {
|
|
90
|
-
const ws = _c.value;
|
|
91
|
-
if (set.has(ws.cwd)) continue;
|
|
92
|
-
set.add(ws.cwd); // Spawn dependencies
|
|
93
|
-
|
|
94
|
-
count += yield this.spawnDepsTree(myr, ws, set); // Spawn task
|
|
95
|
-
|
|
96
|
-
const tsk = yield myr.spawnScript(ws, 'watch');
|
|
97
|
-
this.logger.log('info', `Task ${tsk.id} spawned`, {
|
|
98
|
-
label: ws.name
|
|
99
|
-
});
|
|
100
|
-
count++;
|
|
101
|
-
}
|
|
102
|
-
} catch (e_1_1) {
|
|
103
|
-
e_1 = {
|
|
104
|
-
error: e_1_1
|
|
105
|
-
};
|
|
106
|
-
} finally {
|
|
107
|
-
try {
|
|
108
|
-
if (_c && !_c.done && (_a = _b.return)) yield _a.call(_b);
|
|
109
|
-
} finally {
|
|
110
|
-
if (e_1) throw e_1.error;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
return count;
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
define(builder) {
|
|
119
|
-
return super.define(y => builder(y).positional('script', {
|
|
120
|
-
type: 'string',
|
|
121
|
-
demandOption: true
|
|
122
|
-
}).option('daemon', {
|
|
123
|
-
alias: 'd',
|
|
124
|
-
boolean: true,
|
|
125
|
-
default: false,
|
|
126
|
-
desc: 'Run watch script also in background'
|
|
127
|
-
}));
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
run(args) {
|
|
131
|
-
const _super = Object.create(null, {
|
|
132
|
-
run: {
|
|
133
|
-
get: () => super.run
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
var _a, _b;
|
|
138
|
-
|
|
139
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
-
yield _super.run.call(this, args); // Spawn watch
|
|
141
|
-
|
|
142
|
-
this.spinner.start('Spawning dependencies watch tasks');
|
|
143
|
-
const myr = new _myrClient.MyrClient(this.project);
|
|
144
|
-
const count = yield this.spawnDepsTree(myr, this.workspace, new Set()); // Spawn task
|
|
145
|
-
|
|
146
|
-
if (args.daemon) {
|
|
147
|
-
this.spinner.start(`Spawning ${args.script} task`);
|
|
148
|
-
const tsk = yield myr.spawnScript(this.workspace, args.script, (_a = args['--']) === null || _a === void 0 ? void 0 : _a.map(arg => arg.toString()));
|
|
149
|
-
this.logger.log('info', `Task ${tsk.id} spawned`, {
|
|
150
|
-
label: this.workspace.name
|
|
151
|
-
});
|
|
152
|
-
this.spinner.succeed(`${count + 1} watch tasks spawned`);
|
|
153
|
-
return 0;
|
|
154
|
-
} else {
|
|
155
|
-
this.spinner.succeed(`${count} watch tasks spawned`);
|
|
156
|
-
const tsk = yield this.workspace.run(args.script, (_b = args['--']) === null || _b === void 0 ? void 0 : _b.map(arg => arg.toString()), {
|
|
157
|
-
buildDeps: 'none'
|
|
158
|
-
});
|
|
159
|
-
tsk.start();
|
|
160
|
-
yield tsk.waitFor('done', 'failed');
|
|
161
|
-
return tsk.exitCode === 0 ? 0 : 1;
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
exports.WatchCommand = WatchCommand;
|
|
169
|
-
//# sourceMappingURL=watch.command.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["myr/watch.command.ts","myr/watch.command.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__asyncValues","o","Symbol","asyncIterator","TypeError","m","i","call","__values","iterator","verb","n","v","settle","d","WatchCommand","WorkspaceCommand","constructor","arguments","name","description","spawnDepsTree","myr","wks","set","e_1","_a","count","_b","dependencies","devDependencies","_c","ws","has","cwd","add","tsk","spawnScript","logger","log","id","label","e_1_1","error","return","define","builder","y","positional","type","demandOption","option","alias","boolean","default","desc","run","args","_super","Object","create","get","spinner","start","MyrClient","project","workspace","Set","daemon","script","map","arg","toString","succeed","buildDeps","waitFor","exitCode"],"mappings":"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","file":"watch.command.js","sourcesContent":["import { Arguments, Builder, WorkspaceArgs, WorkspaceCommand } from '@jujulego/jill-common';\nimport { combine, Workspace } from '@jujulego/jill-core';\n\nimport { MyrClient } from './myr-client';\n\n// Types\nexport interface WatchArgs extends WorkspaceArgs {\n script: string;\n daemon: boolean;\n}\n\n// Command\nexport class WatchCommand extends WorkspaceCommand<WatchArgs> {\n // Attributes\n readonly name = 'watch <script>';\n readonly description = 'Run script with watcher inside workspace and watch over deps';\n\n // Methods\n private async spawnDepsTree(myr: MyrClient, wks: Workspace, set: Set<string>): Promise<number> {\n let count = 0;\n\n for await (const ws of combine(wks.dependencies(), wks.devDependencies())) {\n if (set.has(ws.cwd)) continue;\n set.add(ws.cwd);\n\n // Spawn dependencies\n count += await this.spawnDepsTree(myr, ws, set);\n\n // Spawn task\n const tsk = await myr.spawnScript(ws, 'watch');\n this.logger.log('info', `Task ${tsk.id} spawned`, { label: ws.name });\n\n count++;\n }\n\n return count;\n }\n\n protected define<T, U>(builder: Builder<T, U>): Builder<T, U & WatchArgs> {\n return super.define(y => builder(y)\n .positional('script', { type: 'string', demandOption: true })\n .option('daemon', {\n alias: 'd',\n boolean: true,\n default: false,\n desc: 'Run watch script also in background'\n })\n );\n }\n\n protected async run(args: Arguments<WatchArgs>): Promise<number> {\n await super.run(args);\n\n // Spawn watch\n this.spinner.start('Spawning dependencies watch tasks');\n const myr = new MyrClient(this.project);\n const count = await this.spawnDepsTree(myr, this.workspace, new Set());\n\n // Spawn task\n if (args.daemon) {\n this.spinner.start(`Spawning ${args.script} task`);\n const tsk = await myr.spawnScript(this.workspace, args.script, args['--']?.map(arg => arg.toString()));\n this.logger.log('info', `Task ${tsk.id} spawned`, { label: this.workspace.name });\n this.spinner.succeed(`${count + 1} watch tasks spawned`);\n\n return 0;\n } else {\n this.spinner.succeed(`${count} watch tasks spawned`);\n\n const tsk = await this.workspace.run(args.script, args['--']?.map(arg => arg.toString()), { buildDeps: 'none' });\n tsk.start();\n\n await tsk.waitFor('done', 'failed');\n return tsk.exitCode === 0 ? 0 : 1;\n }\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { WorkspaceCommand } from '@jujulego/jill-common';\nimport { combine } from '@jujulego/jill-core';\nimport { MyrClient } from './myr-client';\n// Command\nexport class WatchCommand extends WorkspaceCommand {\n constructor() {\n super(...arguments);\n // Attributes\n this.name = 'watch <script>';\n this.description = 'Run script with watcher inside workspace and watch over deps';\n }\n // Methods\n spawnDepsTree(myr, wks, set) {\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function* () {\n let count = 0;\n try {\n for (var _b = __asyncValues(combine(wks.dependencies(), wks.devDependencies())), _c; _c = yield _b.next(), !_c.done;) {\n const ws = _c.value;\n if (set.has(ws.cwd))\n continue;\n set.add(ws.cwd);\n // Spawn dependencies\n count += yield this.spawnDepsTree(myr, ws, set);\n // Spawn task\n const tsk = yield myr.spawnScript(ws, 'watch');\n this.logger.log('info', `Task ${tsk.id} spawned`, { label: ws.name });\n count++;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) yield _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return count;\n });\n }\n define(builder) {\n return super.define(y => builder(y)\n .positional('script', { type: 'string', demandOption: true })\n .option('daemon', {\n alias: 'd',\n boolean: true,\n default: false,\n desc: 'Run watch script also in background'\n }));\n }\n run(args) {\n const _super = Object.create(null, {\n run: { get: () => super.run }\n });\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.run.call(this, args);\n // Spawn watch\n this.spinner.start('Spawning dependencies watch tasks');\n const myr = new MyrClient(this.project);\n const count = yield this.spawnDepsTree(myr, this.workspace, new Set());\n // Spawn task\n if (args.daemon) {\n this.spinner.start(`Spawning ${args.script} task`);\n const tsk = yield myr.spawnScript(this.workspace, args.script, (_a = args['--']) === null || _a === void 0 ? void 0 : _a.map(arg => arg.toString()));\n this.logger.log('info', `Task ${tsk.id} spawned`, { label: this.workspace.name });\n this.spinner.succeed(`${count + 1} watch tasks spawned`);\n return 0;\n }\n else {\n this.spinner.succeed(`${count} watch tasks spawned`);\n const tsk = yield this.workspace.run(args.script, (_b = args['--']) === null || _b === void 0 ? void 0 : _b.map(arg => arg.toString()), { buildDeps: 'none' });\n tsk.start();\n yield tsk.waitFor('done', 'failed');\n return tsk.exitCode === 0 ? 0 : 1;\n }\n });\n }\n}"]}
|
package/dist/task-logger.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Task, TaskSet } from '@jujulego/jill-core';
|
|
2
|
-
export declare type TaskLoggerState = 'spin-multiple' | 'spin-simple' | 'fail' | 'succeed';
|
|
3
|
-
export declare class TaskLogger {
|
|
4
|
-
private readonly _running;
|
|
5
|
-
private readonly _formats;
|
|
6
|
-
private _refreshSpinner;
|
|
7
|
-
private _handleStarted;
|
|
8
|
-
private _handleCompleted;
|
|
9
|
-
connect(set: TaskSet): void;
|
|
10
|
-
on(state: 'spin-multiple', format: (count: number) => string): void;
|
|
11
|
-
on(state: 'spin-simple', format: (tsk: Task) => string): void;
|
|
12
|
-
on(state: 'fail', format: (tsk: Task) => string): void;
|
|
13
|
-
on(state: 'succeed', format: (tsk: Task) => string): void;
|
|
14
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["task-logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGpD,oBAAY,eAAe,GAAG,eAAe,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAGnF,qBAAa,UAAU;IAErB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAKvB;IAGF,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAK3B,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI;IACnE,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,GAAG,IAAI;IAC7D,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,GAAG,IAAI;IACtD,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,GAAG,IAAI;CAI1D","file":"task-logger.d.ts","sourcesContent":["import { transport } from '@jujulego/jill-common';\nimport { Task, TaskSet } from '@jujulego/jill-core';\n\n// Types\nexport type TaskLoggerState = 'spin-multiple' | 'spin-simple' | 'fail' | 'succeed';\n\n// Class\nexport class TaskLogger {\n // Attributes\n private readonly _running = new Set<Task>();\n private readonly _formats = {\n 'spin-multiple': (count: number) => `Building ${count} workspaces ...`,\n 'spin-simple': (tsk: Task) => `Building ${tsk.context.workspace?.name} ...`,\n 'fail': (tsk: Task) => `Failed to build ${tsk.context.workspace?.name}`,\n 'succeed': (tsk: Task) => `${tsk.context.workspace?.name} built`,\n };\n\n // Methods\n private _refreshSpinner() {\n if (this._running.size > 1) {\n transport.spin(this._formats['spin-multiple'](this._running.size));\n } else if (this._running.size > 0) {\n const tsk = this._running.values().next().value;\n transport.spin(this._formats['spin-simple'](tsk));\n }\n }\n\n private _handleStarted(task: Task) {\n this._running.add(task);\n\n this._refreshSpinner();\n }\n\n private _handleCompleted(task: Task) {\n this._running.delete(task);\n\n if (task.status === 'failed') {\n transport.fail(this._formats['fail'](task));\n } else {\n transport.succeed(this._formats['succeed'](task));\n }\n\n this._refreshSpinner();\n }\n\n connect(set: TaskSet): void {\n set.on('started', (task) => this._handleStarted(task));\n set.on('completed', (task) => this._handleCompleted(task));\n }\n\n on(state: 'spin-multiple', format: (count: number) => string): void;\n on(state: 'spin-simple', format: (tsk: Task) => string): void;\n on(state: 'fail', format: (tsk: Task) => string): void;\n on(state: 'succeed', format: (tsk: Task) => string): void;\n on(state: TaskLoggerState, format: (arg: never) => string): void {\n this._formats[state] = format;\n }\n}\n"]}
|
package/dist/task-logger.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.TaskLogger = void 0;
|
|
7
|
-
|
|
8
|
-
var _jillCommon = require("@jujulego/jill-common");
|
|
9
|
-
|
|
10
|
-
// Class
|
|
11
|
-
class TaskLogger {
|
|
12
|
-
constructor() {
|
|
13
|
-
// Attributes
|
|
14
|
-
this._running = new Set();
|
|
15
|
-
this._formats = {
|
|
16
|
-
'spin-multiple': count => `Building ${count} workspaces ...`,
|
|
17
|
-
'spin-simple': tsk => {
|
|
18
|
-
var _a;
|
|
19
|
-
|
|
20
|
-
return `Building ${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name} ...`;
|
|
21
|
-
},
|
|
22
|
-
'fail': tsk => {
|
|
23
|
-
var _a;
|
|
24
|
-
|
|
25
|
-
return `Failed to build ${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name}`;
|
|
26
|
-
},
|
|
27
|
-
'succeed': tsk => {
|
|
28
|
-
var _a;
|
|
29
|
-
|
|
30
|
-
return `${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name} built`;
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
} // Methods
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
_refreshSpinner() {
|
|
37
|
-
if (this._running.size > 1) {
|
|
38
|
-
_jillCommon.transport.spin(this._formats['spin-multiple'](this._running.size));
|
|
39
|
-
} else if (this._running.size > 0) {
|
|
40
|
-
const tsk = this._running.values().next().value;
|
|
41
|
-
|
|
42
|
-
_jillCommon.transport.spin(this._formats['spin-simple'](tsk));
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
_handleStarted(task) {
|
|
47
|
-
this._running.add(task);
|
|
48
|
-
|
|
49
|
-
this._refreshSpinner();
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
_handleCompleted(task) {
|
|
53
|
-
this._running.delete(task);
|
|
54
|
-
|
|
55
|
-
if (task.status === 'failed') {
|
|
56
|
-
_jillCommon.transport.fail(this._formats['fail'](task));
|
|
57
|
-
} else {
|
|
58
|
-
_jillCommon.transport.succeed(this._formats['succeed'](task));
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
this._refreshSpinner();
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
connect(set) {
|
|
65
|
-
set.on('started', task => this._handleStarted(task));
|
|
66
|
-
set.on('completed', task => this._handleCompleted(task));
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
on(state, format) {
|
|
70
|
-
this._formats[state] = format;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
exports.TaskLogger = TaskLogger;
|
|
76
|
-
//# sourceMappingURL=task-logger.js.map
|
package/dist/task-logger.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["task-logger.ts"],"names":["TaskLogger","constructor","_running","Set","_formats","count","tsk","_a","context","workspace","name","_refreshSpinner","size","transport","spin","values","next","value","_handleStarted","task","add","_handleCompleted","delete","status","fail","succeed","connect","set","on","state","format"],"mappings":";;;;;;;AAAA;;AAMA;AACM,MAAOA,UAAP,CAAiB;AAAvBC,EAAAA,WAAA,GAAA;AACE;AACiB,SAAAC,QAAA,GAAW,IAAIC,GAAJ,EAAX;AACA,SAAAC,QAAA,GAAW;AAC1B,uBAAkBC,KAAD,IAAmB,YAAYA,KAAK,iBAD3B;AAE1B,qBAAgBC,GAAD,IAAc;AAAA,YAAAC,EAAA;;AAAC,eAAA,YAAY,CAAAA,EAAA,GAAAD,GAAG,CAACE,OAAJ,CAAYC,SAAZ,MAAqB,IAArB,IAAqBF,EAAA,KAAA,KAAA,CAArB,GAAqB,KAAA,CAArB,GAAqBA,EAAA,CAAEG,IAAI,MAAvC;AAA6C,OAFjD;AAG1B,cAASJ,GAAD,IAAc;AAAA,YAAAC,EAAA;;AAAC,eAAA,mBAAmB,CAAAA,EAAA,GAAAD,GAAG,CAACE,OAAJ,CAAYC,SAAZ,MAAqB,IAArB,IAAqBF,EAAA,KAAA,KAAA,CAArB,GAAqB,KAAA,CAArB,GAAqBA,EAAA,CAAEG,IAAI,EAA9C;AAAgD,OAH7C;AAI1B,iBAAYJ,GAAD,IAAc;AAAA,YAAAC,EAAA;;AAAC,eAAA,GAAG,CAAAA,EAAA,GAAAD,GAAG,CAACE,OAAJ,CAAYC,SAAZ,MAAqB,IAArB,IAAqBF,EAAA,KAAA,KAAA,CAArB,GAAqB,KAAA,CAArB,GAAqBA,EAAA,CAAEG,IAAI,QAA9B;AAAsC;AAJtC,KAAX;AA+ClB,GAlDsB,CAUrB;;;AACQC,EAAAA,eAAe,GAAA;AACrB,QAAI,KAAKT,QAAL,CAAcU,IAAd,GAAqB,CAAzB,EAA4B;AAC1BC,4BAAUC,IAAV,CAAe,KAAKV,QAAL,CAAc,eAAd,EAA+B,KAAKF,QAAL,CAAcU,IAA7C,CAAf;AACD,KAFD,MAEO,IAAI,KAAKV,QAAL,CAAcU,IAAd,GAAqB,CAAzB,EAA4B;AACjC,YAAMN,GAAG,GAAG,KAAKJ,QAAL,CAAca,MAAd,GAAuBC,IAAvB,GAA8BC,KAA1C;;AACAJ,4BAAUC,IAAV,CAAe,KAAKV,QAAL,CAAc,aAAd,EAA6BE,GAA7B,CAAf;AACD;AACF;;AAEOY,EAAAA,cAAc,CAACC,IAAD,EAAW;AAC/B,SAAKjB,QAAL,CAAckB,GAAd,CAAkBD,IAAlB;;AAEA,SAAKR,eAAL;AACD;;AAEOU,EAAAA,gBAAgB,CAACF,IAAD,EAAW;AACjC,SAAKjB,QAAL,CAAcoB,MAAd,CAAqBH,IAArB;;AAEA,QAAIA,IAAI,CAACI,MAAL,KAAgB,QAApB,EAA8B;AAC5BV,4BAAUW,IAAV,CAAe,KAAKpB,QAAL,CAAc,MAAd,EAAsBe,IAAtB,CAAf;AACD,KAFD,MAEO;AACLN,4BAAUY,OAAV,CAAkB,KAAKrB,QAAL,CAAc,SAAd,EAAyBe,IAAzB,CAAlB;AACD;;AAED,SAAKR,eAAL;AACD;;AAEDe,EAAAA,OAAO,CAACC,GAAD,EAAa;AAClBA,IAAAA,GAAG,CAACC,EAAJ,CAAO,SAAP,EAAmBT,IAAD,IAAU,KAAKD,cAAL,CAAoBC,IAApB,CAA5B;AACAQ,IAAAA,GAAG,CAACC,EAAJ,CAAO,WAAP,EAAqBT,IAAD,IAAU,KAAKE,gBAAL,CAAsBF,IAAtB,CAA9B;AACD;;AAMDS,EAAAA,EAAE,CAACC,KAAD,EAAyBC,MAAzB,EAAuD;AACvD,SAAK1B,QAAL,CAAcyB,KAAd,IAAuBC,MAAvB;AACD;;AAjDoB","file":"task-logger.js","sourcesContent":["import { transport } from '@jujulego/jill-common';\nimport { Task, TaskSet } from '@jujulego/jill-core';\n\n// Types\nexport type TaskLoggerState = 'spin-multiple' | 'spin-simple' | 'fail' | 'succeed';\n\n// Class\nexport class TaskLogger {\n // Attributes\n private readonly _running = new Set<Task>();\n private readonly _formats = {\n 'spin-multiple': (count: number) => `Building ${count} workspaces ...`,\n 'spin-simple': (tsk: Task) => `Building ${tsk.context.workspace?.name} ...`,\n 'fail': (tsk: Task) => `Failed to build ${tsk.context.workspace?.name}`,\n 'succeed': (tsk: Task) => `${tsk.context.workspace?.name} built`,\n };\n\n // Methods\n private _refreshSpinner() {\n if (this._running.size > 1) {\n transport.spin(this._formats['spin-multiple'](this._running.size));\n } else if (this._running.size > 0) {\n const tsk = this._running.values().next().value;\n transport.spin(this._formats['spin-simple'](tsk));\n }\n }\n\n private _handleStarted(task: Task) {\n this._running.add(task);\n\n this._refreshSpinner();\n }\n\n private _handleCompleted(task: Task) {\n this._running.delete(task);\n\n if (task.status === 'failed') {\n transport.fail(this._formats['fail'](task));\n } else {\n transport.succeed(this._formats['succeed'](task));\n }\n\n this._refreshSpinner();\n }\n\n connect(set: TaskSet): void {\n set.on('started', (task) => this._handleStarted(task));\n set.on('completed', (task) => this._handleCompleted(task));\n }\n\n on(state: 'spin-multiple', format: (count: number) => string): void;\n on(state: 'spin-simple', format: (tsk: Task) => string): void;\n on(state: 'fail', format: (tsk: Task) => string): void;\n on(state: 'succeed', format: (tsk: Task) => string): void;\n on(state: TaskLoggerState, format: (arg: never) => string): void {\n this._formats[state] = format;\n }\n}\n"]}
|