@jujulego/jill 1.1.18 → 1.1.19

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.
Files changed (82) hide show
  1. package/dist/commands/each.command.d.ts +1 -2
  2. package/dist/commands/each.command.d.ts.map +1 -0
  3. package/dist/commands/each.command.js +147 -59
  4. package/dist/commands/each.command.js.map +1 -0
  5. package/dist/commands/info.command.d.ts +1 -2
  6. package/dist/commands/info.command.d.ts.map +1 -0
  7. package/dist/commands/info.command.js +146 -51
  8. package/dist/commands/info.command.js.map +1 -0
  9. package/dist/commands/list.command.d.ts +1 -2
  10. package/dist/commands/list.command.d.ts.map +1 -0
  11. package/dist/commands/list.command.js +134 -60
  12. package/dist/commands/list.command.js.map +1 -0
  13. package/dist/commands/run.command.d.ts +1 -2
  14. package/dist/commands/run.command.d.ts.map +1 -0
  15. package/dist/commands/run.command.js +77 -26
  16. package/dist/commands/run.command.js.map +1 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +1 -1
  19. package/dist/index.js.map +1 -0
  20. package/dist/main.d.ts.map +1 -0
  21. package/dist/main.js +41 -9
  22. package/dist/main.js.map +1 -0
  23. package/dist/myr/commands/kill.command.d.ts +1 -2
  24. package/dist/myr/commands/kill.command.d.ts.map +1 -0
  25. package/dist/myr/commands/kill.command.js +60 -23
  26. package/dist/myr/commands/kill.command.js.map +1 -0
  27. package/dist/myr/commands/list.command.d.ts +2 -3
  28. package/dist/myr/commands/list.command.d.ts.map +1 -0
  29. package/dist/myr/commands/list.command.js +77 -37
  30. package/dist/myr/commands/list.command.js.map +1 -0
  31. package/dist/myr/commands/logs.command.d.ts +1 -2
  32. package/dist/myr/commands/logs.command.d.ts.map +1 -0
  33. package/dist/myr/commands/logs.command.js +110 -28
  34. package/dist/myr/commands/logs.command.js.map +1 -0
  35. package/dist/myr/commands/spawn.command.d.ts +1 -2
  36. package/dist/myr/commands/spawn.command.d.ts.map +1 -0
  37. package/dist/myr/commands/spawn.command.js +56 -17
  38. package/dist/myr/commands/spawn.command.js.map +1 -0
  39. package/dist/myr/commands/stop.command.d.ts +1 -2
  40. package/dist/myr/commands/stop.command.d.ts.map +1 -0
  41. package/dist/myr/commands/stop.command.js +58 -21
  42. package/dist/myr/commands/stop.command.js.map +1 -0
  43. package/dist/myr/myr-client.d.ts.map +1 -0
  44. package/dist/myr/myr-client.js +224 -80
  45. package/dist/myr/myr-client.js.map +1 -0
  46. package/dist/myr/myr.command.d.ts +1 -1
  47. package/dist/myr/myr.command.d.ts.map +1 -0
  48. package/dist/myr/myr.command.js +9 -13
  49. package/dist/myr/myr.command.js.map +1 -0
  50. package/dist/myr/myr.process.d.ts.map +1 -0
  51. package/dist/myr/myr.process.js +41 -7
  52. package/dist/myr/myr.process.js.map +1 -0
  53. package/dist/myr/watch.command.d.ts +1 -2
  54. package/dist/myr/watch.command.d.ts.map +1 -0
  55. package/dist/myr/watch.command.js +132 -50
  56. package/dist/myr/watch.command.js.map +1 -0
  57. package/dist/task-logger.d.ts.map +1 -0
  58. package/dist/task-logger.js +27 -17
  59. package/dist/task-logger.js.map +1 -0
  60. package/package.json +8 -12
  61. package/dist/base.command.d.ts +0 -8
  62. package/dist/base.command.js +0 -33
  63. package/dist/command.d.ts +0 -21
  64. package/dist/command.js +0 -69
  65. package/dist/filters/affected.d.ts +0 -10
  66. package/dist/filters/affected.js +0 -80
  67. package/dist/filters/filter.d.ts +0 -8
  68. package/dist/filters/filter.js +0 -36
  69. package/dist/filters/index.d.ts +0 -2
  70. package/dist/filters/index.js +0 -22
  71. package/dist/logger.d.ts +0 -15
  72. package/dist/logger.js +0 -99
  73. package/dist/pipeline.d.ts +0 -9
  74. package/dist/pipeline.js +0 -53
  75. package/dist/plugin.d.ts +0 -11
  76. package/dist/plugin.js +0 -40
  77. package/dist/project.command.d.ts +0 -13
  78. package/dist/project.command.js +0 -58
  79. package/dist/utils/cli-list.d.ts +0 -15
  80. package/dist/utils/cli-list.js +0 -87
  81. package/dist/workspace.command.d.ts +0 -12
  82. package/dist/workspace.command.js +0 -55
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/myr.process.ts","myr/myr.process.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","trans","winston","transports","Console","level","format","combine","timestamp","Date","toLocaleString","errors","json","consoleWarnLevels","stderrLevels","logger","add","process","once","_a","_b","server","MyrServer","createServer","start","remove","send","call","error","name","message","exit"],"mappings":"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","file":"myr.process.js","sourcesContent":["import { logger } from '@jujulego/jill-core';\nimport { MyrServer } from '@jujulego/jill-myr';\nimport winston, { format } from 'winston';\n\n// Setup logger\nconst trans = new winston.transports.Console({\n level: 'debug',\n format: format.combine(\n format.timestamp({ format: () => new Date().toLocaleString() }),\n format.errors(),\n format.json()\n ),\n consoleWarnLevels: [],\n stderrLevels: []\n});\nlogger.add(trans);\n\n// Start server when parent is ready\nprocess.once('message', async () => {\n try {\n // Start server\n const server = await MyrServer.createServer();\n await server.start();\n\n logger.remove(trans);\n process.send?.('started');\n } catch (error) {\n process.send?.({ name: error.name, message: error.message });\n process.exit(1);\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};\nimport { logger } from '@jujulego/jill-core';\nimport { MyrServer } from '@jujulego/jill-myr';\nimport winston, { format } from 'winston';\n// Setup logger\nconst trans = new winston.transports.Console({\n level: 'debug',\n format: format.combine(format.timestamp({ format: () => new Date().toLocaleString() }), format.errors(), format.json()),\n consoleWarnLevels: [],\n stderrLevels: []\n});\nlogger.add(trans);\n// Start server when parent is ready\nprocess.once('message', () => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b;\n try {\n // Start server\n const server = yield MyrServer.createServer();\n yield server.start();\n logger.remove(trans);\n (_a = process.send) === null || _a === void 0 ? void 0 : _a.call(process, 'started');\n }\n catch (error) {\n (_b = process.send) === null || _b === void 0 ? void 0 : _b.call(process, { name: error.name, message: error.message });\n process.exit(1);\n }\n}));"]}
@@ -1,5 +1,4 @@
1
- import { Arguments, Builder } from '../command';
2
- import { WorkspaceArgs, WorkspaceCommand } from '../workspace.command';
1
+ import { Arguments, Builder, WorkspaceArgs, WorkspaceCommand } from '@jujulego/jill-common';
3
2
  export interface WatchArgs extends WorkspaceArgs {
4
3
  script: string;
5
4
  daemon: boolean;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/watch.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAM5F,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAGD,qBAAa,YAAa,SAAQ,gBAAgB,CAAC,SAAS,CAAC;IAE3D,QAAQ,CAAC,IAAI,oBAAoB;IACjC,QAAQ,CAAC,WAAW,kEAAkE;YAGxE,aAAa;IAoB3B,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;cAYzD,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CA0BjE","file":"watch.command.d.ts","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"]}
@@ -5,42 +5,114 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.WatchCommand = void 0;
7
7
 
8
- var _jillCore = require("@jujulego/jill-core");
8
+ var _jillCommon = require("@jujulego/jill-common");
9
9
 
10
- var _workspace = require("../workspace.command");
10
+ var _jillCore = require("@jujulego/jill-core");
11
11
 
12
12
  var _myrClient = require("./myr-client");
13
13
 
14
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
-
16
- // Command
17
- class WatchCommand extends _workspace.WorkspaceCommand {
18
- constructor(...args) {
19
- super(...args);
20
-
21
- _defineProperty(this, "name", 'watch <script>');
22
-
23
- _defineProperty(this, "description", 'Run script with watcher inside workspace and watch over deps');
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
+ });
24
19
  }
25
20
 
26
- // Methods
27
- async spawnDepsTree(myr, wks, set) {
28
- let count = 0;
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
29
 
30
- for await (const ws of (0, _jillCore.combine)(wks.dependencies(), wks.devDependencies())) {
31
- if (set.has(ws.cwd)) continue;
32
- set.add(ws.cwd); // Spawn dependencies
30
+ function rejected(value) {
31
+ try {
32
+ step(generator["throw"](value));
33
+ } catch (e) {
34
+ reject(e);
35
+ }
36
+ }
33
37
 
34
- count += await this.spawnDepsTree(myr, ws, set); // Spawn task
38
+ function step(result) {
39
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
40
+ }
35
41
 
36
- const tsk = await myr.spawnScript(ws, 'watch');
37
- this.logger.log('info', `Task ${tsk.id} spawned`, {
38
- label: ws.name
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);
39
58
  });
40
- count++;
41
- }
59
+ };
60
+ }
42
61
 
43
- return count;
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
+ });
44
116
  }
45
117
 
46
118
  define(builder) {
@@ -55,33 +127,43 @@ class WatchCommand extends _workspace.WorkspaceCommand {
55
127
  }));
56
128
  }
57
129
 
58
- async run(args) {
59
- await super.run(args); // Spawn watch
60
-
61
- this.spinner.start('Spawning dependencies watch tasks');
62
- const myr = new _myrClient.MyrClient(this.project);
63
- const count = await this.spawnDepsTree(myr, this.workspace, new Set()); // Spawn task
64
-
65
- if (args.daemon) {
66
- this.spinner.start(`Spawning ${args.script} task`);
67
- const tsk = await myr.spawnScript(this.workspace, args.script, args['--']?.map(arg => arg.toString()));
68
- this.logger.log('info', `Task ${tsk.id} spawned`, {
69
- label: this.workspace.name
70
- });
71
- this.spinner.succeed(`${count + 1} watch tasks spawned`);
72
- return 0;
73
- } else {
74
- this.spinner.succeed(`${count} watch tasks spawned`);
75
- const tsk = await this.workspace.run(args.script, args['--']?.map(arg => arg.toString()), {
76
- buildDeps: 'none'
77
- });
78
- tsk.start();
79
- await tsk.waitFor('done', 'failed');
80
- return tsk.exitCode === 0 ? 0 : 1;
81
- }
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
+ });
82
164
  }
83
165
 
84
166
  }
85
167
 
86
168
  exports.WatchCommand = WatchCommand;
87
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15ci93YXRjaC5jb21tYW5kLnRzIl0sIm5hbWVzIjpbIldhdGNoQ29tbWFuZCIsIldvcmtzcGFjZUNvbW1hbmQiLCJzcGF3bkRlcHNUcmVlIiwibXlyIiwid2tzIiwic2V0IiwiY291bnQiLCJ3cyIsImRlcGVuZGVuY2llcyIsImRldkRlcGVuZGVuY2llcyIsImhhcyIsImN3ZCIsImFkZCIsInRzayIsInNwYXduU2NyaXB0IiwibG9nZ2VyIiwibG9nIiwiaWQiLCJsYWJlbCIsIm5hbWUiLCJkZWZpbmUiLCJidWlsZGVyIiwieSIsInBvc2l0aW9uYWwiLCJ0eXBlIiwiZGVtYW5kT3B0aW9uIiwib3B0aW9uIiwiYWxpYXMiLCJib29sZWFuIiwiZGVmYXVsdCIsImRlc2MiLCJydW4iLCJhcmdzIiwic3Bpbm5lciIsInN0YXJ0IiwiTXlyQ2xpZW50IiwicHJvamVjdCIsIndvcmtzcGFjZSIsIlNldCIsImRhZW1vbiIsInNjcmlwdCIsIm1hcCIsImFyZyIsInRvU3RyaW5nIiwic3VjY2VlZCIsImJ1aWxkRGVwcyIsIndhaXRGb3IiLCJleGl0Q29kZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUdBOztBQUNBOzs7O0FBUUE7QUFDTyxNQUFNQSxZQUFOLFNBQTJCQywyQkFBM0IsQ0FBdUQ7QUFBQTtBQUFBOztBQUFBLGtDQUU1QyxnQkFGNEM7O0FBQUEseUNBR3JDLDhEQUhxQztBQUFBOztBQUs1RDtBQUMyQixRQUFiQyxhQUFhLENBQUNDLEdBQUQsRUFBaUJDLEdBQWpCLEVBQWlDQyxHQUFqQyxFQUFvRTtBQUM3RixRQUFJQyxLQUFLLEdBQUcsQ0FBWjs7QUFFQSxlQUFXLE1BQU1DLEVBQWpCLElBQXVCLHVCQUFRSCxHQUFHLENBQUNJLFlBQUosRUFBUixFQUE0QkosR0FBRyxDQUFDSyxlQUFKLEVBQTVCLENBQXZCLEVBQTJFO0FBQ3pFLFVBQUlKLEdBQUcsQ0FBQ0ssR0FBSixDQUFRSCxFQUFFLENBQUNJLEdBQVgsQ0FBSixFQUFxQjtBQUNyQk4sTUFB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Q0FBQ3FCLEtBQUo7QUFFQSxZQUFNckIsR0FBRyxDQUFDaUMsT0FBSixDQUFZLE1BQVosRUFBb0IsUUFBcEIsQ0FBTjtBQUNBLGFBQU9qQyxHQUFHLENBQUNrQyxRQUFKLEtBQWlCLENBQWpCLEdBQXFCLENBQXJCLEdBQXlCLENBQWhDO0FBQ0Q7QUFDRjs7QUEvRDJEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tYmluZSwgV29ya3NwYWNlIH0gZnJvbSAnQGp1anVsZWdvL2ppbGwtY29yZSc7XG5cbmltcG9ydCB7IEFyZ3VtZW50cywgQnVpbGRlciB9IGZyb20gJy4uL2NvbW1hbmQnO1xuaW1wb3J0IHsgV29ya3NwYWNlQXJncywgV29ya3NwYWNlQ29tbWFuZCB9IGZyb20gJy4uL3dvcmtzcGFjZS5jb21tYW5kJztcbmltcG9ydCB7IE15ckNsaWVudCB9IGZyb20gJy4vbXlyLWNsaWVudCc7XG5cbi8vIFR5cGVzXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoQXJncyBleHRlbmRzIFdvcmtzcGFjZUFyZ3Mge1xuICBzY3JpcHQ6IHN0cmluZztcbiAgZGFlbW9uOiBib29sZWFuO1xufVxuXG4vLyBDb21tYW5kXG5leHBvcnQgY2xhc3MgV2F0Y2hDb21tYW5kIGV4dGVuZHMgV29ya3NwYWNlQ29tbWFuZDxXYXRjaEFyZ3M+IHtcbiAgLy8gQXR0cmlidXRlc1xuICByZWFkb25seSBuYW1lID0gJ3dhdGNoIDxzY3JpcHQ+JztcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24gPSAnUnVuIHNjcmlwdCB3aXRoIHdhdGNoZXIgaW5zaWRlIHdvcmtzcGFjZSBhbmQgd2F0Y2ggb3ZlciBkZXBzJztcblxuICAvLyBNZXRob2RzXG4gIHByaXZhdGUgYXN5bmMgc3Bhd25EZXBzVHJlZShteXI6IE15ckNsaWVudCwgd2tzOiBXb3Jrc3BhY2UsIHNldDogU2V0PHN0cmluZz4pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGxldCBjb3VudCA9IDA7XG5cbiAgICBmb3IgYXdhaXQgKGNvbnN0IHdzIG9mIGNvbWJpbmUod2tzLmRlcGVuZGVuY2llcygpLCB3a3MuZGV2RGVwZW5kZW5jaWVzKCkpKSB7XG4gICAgICBpZiAoc2V0Lmhhcyh3cy5jd2QpKSBjb250aW51ZTtcbiAgICAgIHNldC5hZGQod3MuY3dkKTtcblxuICAgICAgLy8gU3Bhd24gZGVwZW5kZW5jaWVzXG4gICAgICBjb3VudCArPSBhd2FpdCB0aGlzLnNwYXduRGVwc1RyZWUobXlyLCB3cywgc2V0KTtcblxuICAgICAgLy8gU3Bhd24gdGFza1xuICAgICAgY29uc3QgdHNrID0gYXdhaXQgbXlyLnNwYXduU2NyaXB0KHdzLCAnd2F0Y2gnKTtcbiAgICAgIHRoaXMubG9nZ2VyLmxvZygnaW5mbycsIGBUYXNrICR7dHNrLmlkfSBzcGF3bmVkYCwgeyBsYWJlbDogd3MubmFtZSB9KTtcblxuICAgICAgY291bnQrKztcbiAgICB9XG5cbiAgICByZXR1cm4gY291bnQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVmaW5lPFQsIFU+KGJ1aWxkZXI6IEJ1aWxkZXI8VCwgVT4pOiBCdWlsZGVyPFQsIFUgJiBXYXRjaEFyZ3M+IHtcbiAgICByZXR1cm4gc3VwZXIuZGVmaW5lKHkgPT4gYnVpbGRlcih5KVxuICAgICAgLnBvc2l0aW9uYWwoJ3NjcmlwdCcsIHsgdHlwZTogJ3N0cmluZycsIGRlbWFuZE9wdGlvbjogdHJ1ZSB9KVxuICAgICAgLm9wdGlvbignZGFlbW9uJywge1xuICAgICAgICBhbGlhczogJ2QnLFxuICAgICAgICBib29sZWFuOiB0cnVlLFxuICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgZGVzYzogJ1J1biB3YXRjaCBzY3JpcHQgYWxzbyBpbiBiYWNrZ3JvdW5kJ1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJ1bihhcmdzOiBBcmd1bWVudHM8V2F0Y2hBcmdzPik6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgYXdhaXQgc3VwZXIucnVuKGFyZ3MpO1xuXG4gICAgLy8gU3Bhd24gd2F0Y2hcbiAgICB0aGlzLnNwaW5uZXIuc3RhcnQoJ1NwYXduaW5nIGRlcGVuZGVuY2llcyB3YXRjaCB0YXNrcycpO1xuICAgIGNvbnN0IG15ciA9IG5ldyBNeXJDbGllbnQodGhpcy5wcm9qZWN0KTtcbiAgICBjb25zdCBjb3VudCA9IGF3YWl0IHRoaXMuc3Bhd25EZXBzVHJlZShteXIsIHRoaXMud29ya3NwYWNlLCBuZXcgU2V0KCkpO1xuXG4gICAgLy8gU3Bhd24gdGFza1xuICAgIGlmIChhcmdzLmRhZW1vbikge1xuICAgICAgdGhpcy5zcGlubmVyLnN0YXJ0KGBTcGF3bmluZyAke2FyZ3Muc2NyaXB0fSB0YXNrYCk7XG4gICAgICBjb25zdCB0c2sgPSBhd2FpdCBteXIuc3Bhd25TY3JpcHQodGhpcy53b3Jrc3BhY2UsIGFyZ3Muc2NyaXB0LCBhcmdzWyctLSddPy5tYXAoYXJnID0+IGFyZy50b1N0cmluZygpKSk7XG4gICAgICB0aGlzLmxvZ2dlci5sb2coJ2luZm8nLCBgVGFzayAke3Rzay5pZH0gc3Bhd25lZGAsIHsgbGFiZWw6IHRoaXMud29ya3NwYWNlLm5hbWUgfSk7XG4gICAgICB0aGlzLnNwaW5uZXIuc3VjY2VlZChgJHtjb3VudCArIDF9IHdhdGNoIHRhc2tzIHNwYXduZWRgKTtcblxuICAgICAgcmV0dXJuIDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3Bpbm5lci5zdWNjZWVkKGAke2NvdW50fSB3YXRjaCB0YXNrcyBzcGF3bmVkYCk7XG5cbiAgICAgIGNvbnN0IHRzayA9IGF3YWl0IHRoaXMud29ya3NwYWNlLnJ1bihhcmdzLnNjcmlwdCwgYXJnc1snLS0nXT8ubWFwKGFyZyA9PiBhcmcudG9TdHJpbmcoKSksIHsgYnVpbGREZXBzOiAnbm9uZScgfSk7XG4gICAgICB0c2suc3RhcnQoKTtcblxuICAgICAgYXdhaXQgdHNrLndhaXRGb3IoJ2RvbmUnLCAnZmFpbGVkJyk7XG4gICAgICByZXR1cm4gdHNrLmV4aXRDb2RlID09PSAwID8gMCA6IDE7XG4gICAgfVxuICB9XG59Il0sImZpbGUiOiJteXIvd2F0Y2guY29tbWFuZC5qcyJ9
169
+ //# sourceMappingURL=watch.command.js.map
@@ -0,0 +1 @@
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}"]}
@@ -0,0 +1 @@
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"]}
@@ -5,31 +5,41 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.TaskLogger = void 0;
7
7
 
8
- var _logger = require("./logger");
9
-
10
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
+ var _jillCommon = require("@jujulego/jill-common");
11
9
 
12
10
  // Class
13
11
  class TaskLogger {
14
12
  constructor() {
15
- _defineProperty(this, "_running", new Set());
16
-
17
- _defineProperty(this, "_formats", {
13
+ // Attributes
14
+ this._running = new Set();
15
+ this._formats = {
18
16
  'spin-multiple': count => `Building ${count} workspaces ...`,
19
- 'spin-simple': tsk => `Building ${tsk.context.workspace?.name} ...`,
20
- 'fail': tsk => `Failed to build ${tsk.context.workspace?.name}`,
21
- 'succeed': tsk => `${tsk.context.workspace?.name} built`
22
- });
23
- }
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
+
24
35
 
25
- // Methods
26
36
  _refreshSpinner() {
27
37
  if (this._running.size > 1) {
28
- _logger.transport.spin(this._formats['spin-multiple'](this._running.size));
38
+ _jillCommon.transport.spin(this._formats['spin-multiple'](this._running.size));
29
39
  } else if (this._running.size > 0) {
30
40
  const tsk = this._running.values().next().value;
31
41
 
32
- _logger.transport.spin(this._formats['spin-simple'](tsk));
42
+ _jillCommon.transport.spin(this._formats['spin-simple'](tsk));
33
43
  }
34
44
  }
35
45
 
@@ -43,9 +53,9 @@ class TaskLogger {
43
53
  this._running.delete(task);
44
54
 
45
55
  if (task.status === 'failed') {
46
- _logger.transport.fail(this._formats['fail'](task));
56
+ _jillCommon.transport.fail(this._formats['fail'](task));
47
57
  } else {
48
- _logger.transport.succeed(this._formats['succeed'](task));
58
+ _jillCommon.transport.succeed(this._formats['succeed'](task));
49
59
  }
50
60
 
51
61
  this._refreshSpinner();
@@ -63,4 +73,4 @@ class TaskLogger {
63
73
  }
64
74
 
65
75
  exports.TaskLogger = TaskLogger;
66
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhc2stbG9nZ2VyLnRzIl0sIm5hbWVzIjpbIlRhc2tMb2dnZXIiLCJTZXQiLCJjb3VudCIsInRzayIsImNvbnRleHQiLCJ3b3Jrc3BhY2UiLCJuYW1lIiwiX3JlZnJlc2hTcGlubmVyIiwiX3J1bm5pbmciLCJzaXplIiwidHJhbnNwb3J0Iiwic3BpbiIsIl9mb3JtYXRzIiwidmFsdWVzIiwibmV4dCIsInZhbHVlIiwiX2hhbmRsZVN0YXJ0ZWQiLCJ0YXNrIiwiYWRkIiwiX2hhbmRsZUNvbXBsZXRlZCIsImRlbGV0ZSIsInN0YXR1cyIsImZhaWwiLCJzdWNjZWVkIiwiY29ubmVjdCIsInNldCIsIm9uIiwic3RhdGUiLCJmb3JtYXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7OztBQUtBO0FBQ08sTUFBTUEsVUFBTixDQUFpQjtBQUFBO0FBQUEsc0NBRU0sSUFBSUMsR0FBSixFQUZOOztBQUFBLHNDQUdNO0FBQzFCLHVCQUFrQkMsS0FBRCxJQUFvQixZQUFXQSxLQUFNLGlCQUQ1QjtBQUUxQixxQkFBZ0JDLEdBQUQsSUFBZ0IsWUFBV0EsR0FBRyxDQUFDQyxPQUFKLENBQVlDLFNBQVosRUFBdUJDLElBQUssTUFGNUM7QUFHMUIsY0FBU0gsR0FBRCxJQUFnQixtQkFBa0JBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZQyxTQUFaLEVBQXVCQyxJQUFLLEVBSDVDO0FBSTFCLGlCQUFZSCxHQUFELElBQWdCLEdBQUVBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZQyxTQUFaLEVBQXVCQyxJQUFLO0FBSi9CLEtBSE47QUFBQTs7QUFVdEI7QUFDUUMsRUFBQUEsZUFBZSxHQUFHO0FBQ3hCLFFBQUksS0FBS0MsUUFBTCxDQUFjQyxJQUFkLEdBQXFCLENBQXpCLEVBQTRCO0FBQzFCQyx3QkFBVUMsSUFBVixDQUFlLEtBQUtDLFFBQUwsQ0FBYyxlQUFkLEVBQStCLEtBQUtKLFFBQUwsQ0FBY0MsSUFBN0MsQ0FBZjtBQUNELEtBRkQsTUFFTyxJQUFJLEtBQUtELFFBQUwsQ0FBY0MsSUFBZCxHQUFxQixDQUF6QixFQUE0QjtBQUNqQyxZQUFNTixHQUFHLEdBQUcsS0FBS0ssUUFBTCxDQUFjSyxNQUFkLEdBQXVCQyxJQUF2QixHQUE4QkMsS0FBMUM7O0FBQ0FMLHdCQUFVQyxJQUFWLENBQWUsS0FBS0MsUUFBTCxDQUFjLGFBQWQsRUFBNkJULEdBQTdCLENBQWY7QUFDRDtBQUNGOztBQUVPYSxFQUFBQSxjQUFjLENBQUNDLElBQUQsRUFBYTtBQUNqQyxTQUFLVCxRQUFMLENBQWNVLEdBQWQsQ0FBa0JELElBQWxCOztBQUVBLFNBQUtWLGVBQUw7QUFDRDs7QUFFT1ksRUFBQUEsZ0JBQWdCLENBQUNGLElBQUQsRUFBYTtBQUNuQyxTQUFLVCxRQUFMLENBQWNZLE1BQWQsQ0FBcUJILElBQXJCOztBQUVBLFFBQUlBLElBQUksQ0FBQ0ksTUFBTCxLQUFnQixRQUFwQixFQUE4QjtBQUM1Qlgsd0JBQVVZLElBQVYsQ0FBZSxLQUFLVixRQUFMLENBQWMsTUFBZCxFQUFzQkssSUFBdEIsQ0FBZjtBQUNELEtBRkQsTUFFTztBQUNMUCx3QkFBVWEsT0FBVixDQUFrQixLQUFLWCxRQUFMLENBQWMsU0FBZCxFQUF5QkssSUFBekIsQ0FBbEI7QUFDRDs7QUFFRCxTQUFLVixlQUFMO0FBQ0Q7O0FBRURpQixFQUFBQSxPQUFPLENBQUNDLEdBQUQsRUFBcUI7QUFDMUJBLElBQUFBLEdBQUcsQ0FBQ0MsRUFBSixDQUFPLFNBQVAsRUFBbUJULElBQUQsSUFBVSxLQUFLRCxjQUFMLENBQW9CQyxJQUFwQixDQUE1QjtBQUNBUSxJQUFBQSxHQUFHLENBQUNDLEVBQUosQ0FBTyxXQUFQLEVBQXFCVCxJQUFELElBQVUsS0FBS0UsZ0JBQUwsQ0FBc0JGLElBQXRCLENBQTlCO0FBQ0Q7O0FBTURTLEVBQUFBLEVBQUUsQ0FBQ0MsS0FBRCxFQUF5QkMsTUFBekIsRUFBK0Q7QUFDL0QsU0FBS2hCLFFBQUwsQ0FBY2UsS0FBZCxJQUF1QkMsTUFBdkI7QUFDRDs7QUFqRHFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFzaywgVGFza1NldCB9IGZyb20gJ0BqdWp1bGVnby9qaWxsLWNvcmUnO1xuXG5pbXBvcnQgeyB0cmFuc3BvcnQgfSBmcm9tICcuL2xvZ2dlcic7XG5cbi8vIFR5cGVzXG5leHBvcnQgdHlwZSBUYXNrTG9nZ2VyU3RhdGUgPSAnc3Bpbi1tdWx0aXBsZScgfCAnc3Bpbi1zaW1wbGUnIHwgJ2ZhaWwnIHwgJ3N1Y2NlZWQnO1xuXG4vLyBDbGFzc1xuZXhwb3J0IGNsYXNzIFRhc2tMb2dnZXIge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHByaXZhdGUgcmVhZG9ubHkgX3J1bm5pbmcgPSBuZXcgU2V0PFRhc2s+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm1hdHMgPSB7XG4gICAgJ3NwaW4tbXVsdGlwbGUnOiAoY291bnQ6IG51bWJlcikgPT4gYEJ1aWxkaW5nICR7Y291bnR9IHdvcmtzcGFjZXMgLi4uYCxcbiAgICAnc3Bpbi1zaW1wbGUnOiAodHNrOiBUYXNrKSA9PiBgQnVpbGRpbmcgJHt0c2suY29udGV4dC53b3Jrc3BhY2U/Lm5hbWV9IC4uLmAsXG4gICAgJ2ZhaWwnOiAodHNrOiBUYXNrKSA9PiBgRmFpbGVkIHRvIGJ1aWxkICR7dHNrLmNvbnRleHQud29ya3NwYWNlPy5uYW1lfWAsXG4gICAgJ3N1Y2NlZWQnOiAodHNrOiBUYXNrKSA9PiBgJHt0c2suY29udGV4dC53b3Jrc3BhY2U/Lm5hbWV9IGJ1aWx0YCxcbiAgfTtcblxuICAvLyBNZXRob2RzXG4gIHByaXZhdGUgX3JlZnJlc2hTcGlubmVyKCkge1xuICAgIGlmICh0aGlzLl9ydW5uaW5nLnNpemUgPiAxKSB7XG4gICAgICB0cmFuc3BvcnQuc3Bpbih0aGlzLl9mb3JtYXRzWydzcGluLW11bHRpcGxlJ10odGhpcy5fcnVubmluZy5zaXplKSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9ydW5uaW5nLnNpemUgPiAwKSB7XG4gICAgICBjb25zdCB0c2sgPSB0aGlzLl9ydW5uaW5nLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcbiAgICAgIHRyYW5zcG9ydC5zcGluKHRoaXMuX2Zvcm1hdHNbJ3NwaW4tc2ltcGxlJ10odHNrKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlU3RhcnRlZCh0YXNrOiBUYXNrKSB7XG4gICAgdGhpcy5fcnVubmluZy5hZGQodGFzayk7XG5cbiAgICB0aGlzLl9yZWZyZXNoU3Bpbm5lcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ29tcGxldGVkKHRhc2s6IFRhc2spIHtcbiAgICB0aGlzLl9ydW5uaW5nLmRlbGV0ZSh0YXNrKTtcblxuICAgIGlmICh0YXNrLnN0YXR1cyA9PT0gJ2ZhaWxlZCcpIHtcbiAgICAgIHRyYW5zcG9ydC5mYWlsKHRoaXMuX2Zvcm1hdHNbJ2ZhaWwnXSh0YXNrKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyYW5zcG9ydC5zdWNjZWVkKHRoaXMuX2Zvcm1hdHNbJ3N1Y2NlZWQnXSh0YXNrKSk7XG4gICAgfVxuXG4gICAgdGhpcy5fcmVmcmVzaFNwaW5uZXIoKTtcbiAgfVxuXG4gIGNvbm5lY3Qoc2V0OiBUYXNrU2V0KTogdm9pZCB7XG4gICAgc2V0Lm9uKCdzdGFydGVkJywgKHRhc2spID0+IHRoaXMuX2hhbmRsZVN0YXJ0ZWQodGFzaykpO1xuICAgIHNldC5vbignY29tcGxldGVkJywgKHRhc2spID0+IHRoaXMuX2hhbmRsZUNvbXBsZXRlZCh0YXNrKSk7XG4gIH1cblxuICBvbihzdGF0ZTogJ3NwaW4tbXVsdGlwbGUnLCBmb3JtYXQ6IChjb3VudDogbnVtYmVyKSA9PiBzdHJpbmcpOiB2b2lkO1xuICBvbihzdGF0ZTogJ3NwaW4tc2ltcGxlJywgZm9ybWF0OiAodHNrOiBUYXNrKSA9PiBzdHJpbmcpOiB2b2lkO1xuICBvbihzdGF0ZTogJ2ZhaWwnLCBmb3JtYXQ6ICh0c2s6IFRhc2spID0+IHN0cmluZyk6IHZvaWQ7XG4gIG9uKHN0YXRlOiAnc3VjY2VlZCcsIGZvcm1hdDogKHRzazogVGFzaykgPT4gc3RyaW5nKTogdm9pZDtcbiAgb24oc3RhdGU6IFRhc2tMb2dnZXJTdGF0ZSwgZm9ybWF0OiAoYXJnOiBuZXZlcikgPT4gc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fZm9ybWF0c1tzdGF0ZV0gPSBmb3JtYXQ7XG4gIH1cbn1cbiJdLCJmaWxlIjoidGFzay1sb2dnZXIuanMifQ==
76
+ //# sourceMappingURL=task-logger.js.map
@@ -0,0 +1 @@
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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jujulego/jill",
3
- "version": "1.1.18",
3
+ "version": "1.1.19",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,6 +25,7 @@
25
25
  "node": "^14"
26
26
  },
27
27
  "dependencies": {
28
+ "@jujulego/jill-common": "^1.0.0",
28
29
  "@jujulego/jill-core": "^1.1.12",
29
30
  "@jujulego/jill-myr": "^0.1.0",
30
31
  "@repeaterjs/repeater": "^3.0.4",
@@ -44,27 +45,22 @@
44
45
  "@babel/core": "7.16.5",
45
46
  "@babel/plugin-proposal-class-properties": "7.16.5",
46
47
  "@babel/preset-env": "7.16.5",
47
- "@babel/preset-typescript": "7.16.5",
48
48
  "@babel/runtime": "7.16.5",
49
49
  "@types/gulp": "4.0.9",
50
- "@types/gulp-babel": "6.1.30",
51
- "@types/gulp-sourcemaps": "0.0.35",
52
50
  "@types/jest": "27.0.3",
53
- "@types/node": "14.18.1",
51
+ "@types/node": "14.18.3",
54
52
  "@types/ws": "8.2.1",
55
- "@types/yargs": "17.0.7",
56
- "@typescript-eslint/eslint-plugin": "5.8.0",
57
- "@typescript-eslint/parser": "5.8.0",
53
+ "@types/yargs": "17.0.8",
54
+ "@typescript-eslint/eslint-plugin": "5.8.1",
55
+ "@typescript-eslint/parser": "5.8.1",
58
56
  "del": "6.0.0",
59
57
  "eslint": "7.32.0",
60
- "eslint-plugin-jest": "25.3.0",
58
+ "eslint-plugin-jest": "25.3.2",
61
59
  "eslint-plugin-workspaces": "0.7.0",
62
60
  "gulp": "4.0.2",
63
- "gulp-babel": "8.0.0",
64
61
  "gulp-cli": "2.3.0",
65
- "gulp-sourcemaps": "3.0.0",
66
- "gulp-typescript": "6.0.0-alpha.1",
67
62
  "jest": "27.4.5",
63
+ "jill-tools": "0.0.0",
68
64
  "msw": "0.36.3",
69
65
  "ts-jest": "27.1.1",
70
66
  "ts-node": "10.4.0",
@@ -1,8 +0,0 @@
1
- import { Arguments, Awaitable, Builder, Command } from './command';
2
- export interface BaseArgs {
3
- verbose: number;
4
- }
5
- export declare abstract class BaseCommand<A extends BaseArgs> extends Command<BaseArgs> {
6
- protected define<T, U>(builder: Builder<T, U>): Builder<T, U & BaseArgs>;
7
- protected run(args: Arguments<A>): Awaitable<number | void>;
8
- }
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.BaseCommand = void 0;
7
-
8
- var _command = require("./command");
9
-
10
- // Command
11
- class BaseCommand extends _command.Command {
12
- // Methods
13
- define(builder) {
14
- return y => builder(y).option('verbose', {
15
- alias: 'v',
16
- type: 'count',
17
- description: 'Set verbosity level (1 for verbose, 2 for debug)'
18
- });
19
- }
20
-
21
- run(args) {
22
- // Setup logger verbosity
23
- if (args.verbose === 1) {
24
- this.logger.level = 'verbose';
25
- } else if (args.verbose >= 2) {
26
- this.logger.level = 'debug';
27
- }
28
- }
29
-
30
- }
31
-
32
- exports.BaseCommand = BaseCommand;
33
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhc2UuY29tbWFuZC50cyJdLCJuYW1lcyI6WyJCYXNlQ29tbWFuZCIsIkNvbW1hbmQiLCJkZWZpbmUiLCJidWlsZGVyIiwieSIsIm9wdGlvbiIsImFsaWFzIiwidHlwZSIsImRlc2NyaXB0aW9uIiwicnVuIiwiYXJncyIsInZlcmJvc2UiLCJsb2dnZXIiLCJsZXZlbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQU9BO0FBQ08sTUFBZUEsV0FBZixTQUF1REMsZ0JBQXZELENBQXlFO0FBQzlFO0FBQ1VDLEVBQUFBLE1BQU0sQ0FBT0MsT0FBUCxFQUF5RDtBQUN2RSxXQUFPQyxDQUFDLElBQUlELE9BQU8sQ0FBQ0MsQ0FBRCxDQUFQLENBQ1RDLE1BRFMsQ0FDRixTQURFLEVBQ1M7QUFDakJDLE1BQUFBLEtBQUssRUFBRSxHQURVO0FBRWpCQyxNQUFBQSxJQUFJLEVBQUUsT0FGVztBQUdqQkMsTUFBQUEsV0FBVyxFQUFFO0FBSEksS0FEVCxDQUFaO0FBTUQ7O0FBRVNDLEVBQUFBLEdBQUcsQ0FBQ0MsSUFBRCxFQUErQztBQUMxRDtBQUNBLFFBQUlBLElBQUksQ0FBQ0MsT0FBTCxLQUFpQixDQUFyQixFQUF3QjtBQUN0QixXQUFLQyxNQUFMLENBQVlDLEtBQVosR0FBb0IsU0FBcEI7QUFDRCxLQUZELE1BRU8sSUFBSUgsSUFBSSxDQUFDQyxPQUFMLElBQWdCLENBQXBCLEVBQXVCO0FBQzVCLFdBQUtDLE1BQUwsQ0FBWUMsS0FBWixHQUFvQixPQUFwQjtBQUNEO0FBQ0Y7O0FBbEI2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3VtZW50cywgQXdhaXRhYmxlLCBCdWlsZGVyLCBDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kJztcblxuLy8gVHlwZXNcbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUFyZ3Mge1xuICB2ZXJib3NlOiBudW1iZXI7XG59XG5cbi8vIENvbW1hbmRcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tbWFuZDxBIGV4dGVuZHMgQmFzZUFyZ3M+IGV4dGVuZHMgQ29tbWFuZDxCYXNlQXJncz4ge1xuICAvLyBNZXRob2RzXG4gIHByb3RlY3RlZCBkZWZpbmU8VCwgVT4oYnVpbGRlcjogQnVpbGRlcjxULCBVPik6IEJ1aWxkZXI8VCwgVSAmIEJhc2VBcmdzPiB7XG4gICAgcmV0dXJuIHkgPT4gYnVpbGRlcih5KVxuICAgICAgLm9wdGlvbigndmVyYm9zZScsIHtcbiAgICAgICAgYWxpYXM6ICd2JyxcbiAgICAgICAgdHlwZTogJ2NvdW50JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdTZXQgdmVyYm9zaXR5IGxldmVsICgxIGZvciB2ZXJib3NlLCAyIGZvciBkZWJ1ZyknLFxuICAgICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcnVuKGFyZ3M6IEFyZ3VtZW50czxBPik6IEF3YWl0YWJsZTxudW1iZXIgfCB2b2lkPiB7XG4gICAgLy8gU2V0dXAgbG9nZ2VyIHZlcmJvc2l0eVxuICAgIGlmIChhcmdzLnZlcmJvc2UgPT09IDEpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmxldmVsID0gJ3ZlcmJvc2UnO1xuICAgIH0gZWxzZSBpZiAoYXJncy52ZXJib3NlID49IDIpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmxldmVsID0gJ2RlYnVnJztcbiAgICB9XG4gIH1cbn0iXSwiZmlsZSI6ImJhc2UuY29tbWFuZC5qcyJ9
package/dist/command.d.ts DELETED
@@ -1,21 +0,0 @@
1
- import yargs from 'yargs';
2
- export declare type Awaitable<T> = T | PromiseLike<T>;
3
- export declare type Arguments<A> = yargs.Arguments<A> & {
4
- '--': readonly (string | number)[];
5
- };
6
- export declare type Builder<T, A = T> = (yargs: yargs.Argv<T>) => yargs.Argv<A>;
7
- export declare class Exit extends Error {
8
- readonly code: number;
9
- constructor(code?: number);
10
- }
11
- export declare abstract class Command<A = unknown> {
12
- readonly logger: import("winston").Logger;
13
- readonly spinner: import("ora").Ora;
14
- protected abstract define<T, U>(builder: Builder<T, U>): Builder<T, U & A>;
15
- protected abstract run(args: Arguments<A>): Awaitable<number | void>;
16
- setup<T>(yargs: yargs.Argv<T>): yargs.Argv<T>;
17
- private _wrapper;
18
- log(msg: string): void;
19
- abstract get name(): string | readonly string[];
20
- abstract get description(): string;
21
- }
package/dist/command.js DELETED
@@ -1,69 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Exit = exports.Command = void 0;
7
-
8
- var _jillCore = require("@jujulego/jill-core");
9
-
10
- var _yargs = _interopRequireDefault(require("yargs"));
11
-
12
- var _logger = require("./logger");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
-
18
- // Exceptions
19
- class Exit extends Error {
20
- // Constructor
21
- constructor(code = 1) {
22
- super();
23
- this.code = code;
24
- }
25
-
26
- } // Command
27
-
28
-
29
- exports.Exit = Exit;
30
-
31
- class Command {
32
- constructor() {
33
- _defineProperty(this, "logger", _jillCore.logger);
34
-
35
- _defineProperty(this, "spinner", _logger.transport.spinner);
36
- }
37
-
38
- setup(yargs) {
39
- yargs.command(this.name, this.description, y => this.define(_ => _)(y), a => this._wrapper(a));
40
- return yargs;
41
- }
42
-
43
- async _wrapper(args) {
44
- try {
45
- const exit = await this.run(args);
46
- process.exit(exit ?? 0);
47
- } catch (err) {
48
- if (err instanceof Exit) {
49
- process.exit(err.code);
50
- }
51
-
52
- this.spinner.fail(err.message);
53
- process.exit(1);
54
- }
55
- }
56
-
57
- log(msg) {
58
- if (this.spinner.isSpinning) {
59
- this.spinner.clear();
60
- }
61
-
62
- process.stdout.write(msg + '\n');
63
- } // Properties
64
-
65
-
66
- }
67
-
68
- exports.Command = Command;
69
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1hbmQudHMiXSwibmFtZXMiOlsiRXhpdCIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJjb2RlIiwiQ29tbWFuZCIsImxvZ2dlciIsInRyYW5zcG9ydCIsInNwaW5uZXIiLCJzZXR1cCIsInlhcmdzIiwiY29tbWFuZCIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsInkiLCJkZWZpbmUiLCJfIiwiYSIsIl93cmFwcGVyIiwiYXJncyIsImV4aXQiLCJydW4iLCJwcm9jZXNzIiwiZXJyIiwiZmFpbCIsIm1lc3NhZ2UiLCJsb2ciLCJtc2ciLCJpc1NwaW5uaW5nIiwiY2xlYXIiLCJzdGRvdXQiLCJ3cml0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUVBOzs7Ozs7QUFPQTtBQUNPLE1BQU1BLElBQU4sU0FBbUJDLEtBQW5CLENBQXlCO0FBQzlCO0FBQ0FDLEVBQUFBLFdBQVcsQ0FBVUMsSUFBSSxHQUFHLENBQWpCLEVBQW9CO0FBQzdCO0FBRDZCLFNBQVZBLElBQVUsR0FBVkEsSUFBVTtBQUU5Qjs7QUFKNkIsQyxDQU9oQzs7Ozs7QUFDTyxNQUFlQyxPQUFmLENBQW9DO0FBQUE7QUFBQSxvQ0FFdkJDLGdCQUZ1Qjs7QUFBQSxxQ0FHdEJDLGtCQUFVQyxPQUhZO0FBQUE7O0FBU3pDQyxFQUFBQSxLQUFLLENBQUlDLEtBQUosRUFBeUM7QUFDNUNBLElBQUFBLEtBQUssQ0FBQ0MsT0FBTixDQUNFLEtBQUtDLElBRFAsRUFFRSxLQUFLQyxXQUZQLEVBR0dDLENBQUQsSUFBTyxLQUFLQyxNQUFMLENBQVlDLENBQUMsSUFBSUEsQ0FBakIsRUFBb0JGLENBQXBCLENBSFQsRUFJR0csQ0FBRCxJQUFPLEtBQUtDLFFBQUwsQ0FBY0QsQ0FBZCxDQUpUO0FBT0EsV0FBT1AsS0FBUDtBQUNEOztBQUVxQixRQUFSUSxRQUFRLENBQUNDLElBQUQsRUFBb0M7QUFDeEQsUUFBSTtBQUNGLFlBQU1DLElBQUksR0FBRyxNQUFNLEtBQUtDLEdBQUwsQ0FBU0YsSUFBVCxDQUFuQjtBQUNBRyxNQUFBQSxPQUFPLENBQUNGLElBQVIsQ0FBYUEsSUFBSSxJQUFJLENBQXJCO0FBQ0QsS0FIRCxDQUdFLE9BQU9HLEdBQVAsRUFBWTtBQUNaLFVBQUlBLEdBQUcsWUFBWXRCLElBQW5CLEVBQXlCO0FBQ3ZCcUIsUUFBQUEsT0FBTyxDQUFDRixJQUFSLENBQWFHLEdBQUcsQ0FBQ25CLElBQWpCO0FBQ0Q7O0FBRUQsV0FBS0ksT0FBTCxDQUFhZ0IsSUFBYixDQUFrQkQsR0FBRyxDQUFDRSxPQUF0QjtBQUNBSCxNQUFBQSxPQUFPLENBQUNGLElBQVIsQ0FBYSxDQUFiO0FBQ0Q7QUFDRjs7QUFFRE0sRUFBQUEsR0FBRyxDQUFDQyxHQUFELEVBQW9CO0FBQ3JCLFFBQUksS0FBS25CLE9BQUwsQ0FBYW9CLFVBQWpCLEVBQTZCO0FBQzNCLFdBQUtwQixPQUFMLENBQWFxQixLQUFiO0FBQ0Q7O0FBRURQLElBQUFBLE9BQU8sQ0FBQ1EsTUFBUixDQUFlQyxLQUFmLENBQXFCSixHQUFHLEdBQUcsSUFBM0I7QUFDRCxHQXhDd0MsQ0EwQ3pDOzs7QUExQ3lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnQGp1anVsZWdvL2ppbGwtY29yZSc7XG5pbXBvcnQgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuXG5pbXBvcnQgeyB0cmFuc3BvcnQgfSBmcm9tICcuL2xvZ2dlcic7XG5cbi8vIEV4cG9ydFxuZXhwb3J0IHR5cGUgQXdhaXRhYmxlPFQ+ID0gVCB8IFByb21pc2VMaWtlPFQ+O1xuZXhwb3J0IHR5cGUgQXJndW1lbnRzPEE+ID0geWFyZ3MuQXJndW1lbnRzPEE+ICYgeyAnLS0nOiByZWFkb25seSAoc3RyaW5nIHwgbnVtYmVyKVtdIH07XG5leHBvcnQgdHlwZSBCdWlsZGVyPFQsIEEgPSBUPiA9ICh5YXJnczogeWFyZ3MuQXJndjxUPikgPT4geWFyZ3MuQXJndjxBPjtcblxuLy8gRXhjZXB0aW9uc1xuZXhwb3J0IGNsYXNzIEV4aXQgZXh0ZW5kcyBFcnJvciB7XG4gIC8vIENvbnN0cnVjdG9yXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvZGUgPSAxKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuXG4vLyBDb21tYW5kXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29tbWFuZDxBID0gdW5rbm93bj4ge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHJlYWRvbmx5IGxvZ2dlciA9IGxvZ2dlcjtcbiAgcmVhZG9ubHkgc3Bpbm5lciA9IHRyYW5zcG9ydC5zcGlubmVyO1xuXG4gIC8vIE1ldGhvZHNcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGRlZmluZTxULCBVPihidWlsZGVyOiBCdWlsZGVyPFQsIFU+KTogQnVpbGRlcjxULCBVICYgQT47XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBydW4oYXJnczogQXJndW1lbnRzPEE+KTogQXdhaXRhYmxlPG51bWJlciB8IHZvaWQ+O1xuXG4gIHNldHVwPFQ+KHlhcmdzOiB5YXJncy5Bcmd2PFQ+KTogeWFyZ3MuQXJndjxUPiB7XG4gICAgeWFyZ3MuY29tbWFuZDxBPihcbiAgICAgIHRoaXMubmFtZSxcbiAgICAgIHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICAoeSkgPT4gdGhpcy5kZWZpbmUoXyA9PiBfKSh5KSxcbiAgICAgIChhKSA9PiB0aGlzLl93cmFwcGVyKGEgYXMgQXJndW1lbnRzPEE+KVxuICAgICk7XG5cbiAgICByZXR1cm4geWFyZ3M7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF93cmFwcGVyKGFyZ3M6IEFyZ3VtZW50czxBPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBleGl0ID0gYXdhaXQgdGhpcy5ydW4oYXJncyk7XG4gICAgICBwcm9jZXNzLmV4aXQoZXhpdCA/PyAwKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFeGl0KSB7XG4gICAgICAgIHByb2Nlc3MuZXhpdChlcnIuY29kZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3Bpbm5lci5mYWlsKGVyci5tZXNzYWdlKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH1cblxuICBsb2cobXNnOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zcGlubmVyLmlzU3Bpbm5pbmcpIHtcbiAgICAgIHRoaXMuc3Bpbm5lci5jbGVhcigpO1xuICAgIH1cblxuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKG1zZyArICdcXG4nKTtcbiAgfVxuXG4gIC8vIFByb3BlcnRpZXNcbiAgYWJzdHJhY3QgZ2V0IG5hbWUoKTogc3RyaW5nIHwgcmVhZG9ubHkgc3RyaW5nW107XG4gIGFic3RyYWN0IGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmc7XG59Il0sImZpbGUiOiJjb21tYW5kLmpzIn0=
@@ -1,10 +0,0 @@
1
- import { Workspace } from '@jujulego/jill-core';
2
- import { Filter } from './filter';
3
- export declare class AffectedFilter extends Filter {
4
- readonly format: string;
5
- readonly fallback: string;
6
- readonly sort?: string | undefined;
7
- constructor(format: string, fallback: string, sort?: string | undefined);
8
- private _formatRevision;
9
- test(workspace: Workspace): Promise<boolean>;
10
- }