@jujulego/jill 1.1.15 → 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 (98) hide show
  1. package/dist/commands/each.command.d.ts +16 -0
  2. package/dist/commands/each.command.d.ts.map +1 -0
  3. package/dist/commands/each.command.js +203 -0
  4. package/dist/commands/each.command.js.map +1 -0
  5. package/dist/commands/info.command.d.ts +8 -0
  6. package/dist/commands/info.command.d.ts.map +1 -0
  7. package/dist/commands/info.command.js +178 -0
  8. package/dist/commands/info.command.js.map +1 -0
  9. package/dist/commands/list.command.d.ts +21 -0
  10. package/dist/commands/list.command.d.ts.map +1 -0
  11. package/dist/commands/list.command.js +251 -0
  12. package/dist/commands/list.command.js.map +1 -0
  13. package/dist/commands/run.command.d.ts +12 -0
  14. package/dist/commands/run.command.d.ts.map +1 -0
  15. package/dist/commands/run.command.js +111 -0
  16. package/dist/commands/run.command.js.map +1 -0
  17. package/dist/index.d.ts +4 -9
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +13 -26
  20. package/dist/index.js.map +1 -0
  21. package/dist/main.d.ts.map +1 -0
  22. package/dist/main.js +53 -134
  23. package/dist/main.js.map +1 -0
  24. package/dist/myr/commands/kill.command.d.ts +10 -0
  25. package/dist/myr/commands/kill.command.d.ts.map +1 -0
  26. package/dist/myr/commands/kill.command.js +89 -0
  27. package/dist/myr/commands/kill.command.js.map +1 -0
  28. package/dist/myr/commands/list.command.d.ts +17 -0
  29. package/dist/myr/commands/list.command.d.ts.map +1 -0
  30. package/dist/myr/commands/list.command.js +167 -0
  31. package/dist/myr/commands/list.command.js.map +1 -0
  32. package/dist/myr/commands/logs.command.d.ts +10 -0
  33. package/dist/myr/commands/logs.command.d.ts.map +1 -0
  34. package/dist/myr/commands/logs.command.js +165 -0
  35. package/dist/myr/commands/logs.command.js.map +1 -0
  36. package/dist/myr/commands/spawn.command.d.ts +10 -0
  37. package/dist/myr/commands/spawn.command.d.ts.map +1 -0
  38. package/dist/myr/commands/spawn.command.js +84 -0
  39. package/dist/myr/commands/spawn.command.js.map +1 -0
  40. package/dist/myr/commands/stop.command.d.ts +6 -0
  41. package/dist/myr/commands/stop.command.d.ts.map +1 -0
  42. package/dist/myr/commands/stop.command.js +80 -0
  43. package/dist/myr/commands/stop.command.js.map +1 -0
  44. package/dist/myr/myr-client.d.ts +11 -5
  45. package/dist/myr/myr-client.d.ts.map +1 -0
  46. package/dist/myr/myr-client.js +291 -368
  47. package/dist/myr/myr-client.js.map +1 -0
  48. package/dist/myr/myr.command.d.ts +8 -0
  49. package/dist/myr/myr.command.d.ts.map +1 -0
  50. package/dist/myr/myr.command.js +42 -0
  51. package/dist/myr/myr.command.js.map +1 -0
  52. package/dist/myr/myr.process.d.ts.map +1 -0
  53. package/dist/myr/myr.process.js +41 -6
  54. package/dist/myr/myr.process.js.map +1 -0
  55. package/dist/myr/watch.command.d.ts +12 -0
  56. package/dist/myr/watch.command.d.ts.map +1 -0
  57. package/dist/myr/watch.command.js +169 -0
  58. package/dist/myr/watch.command.js.map +1 -0
  59. package/dist/task-logger.d.ts.map +1 -0
  60. package/dist/task-logger.js +28 -17
  61. package/dist/task-logger.js.map +1 -0
  62. package/package.json +29 -23
  63. package/dist/commands/each.d.ts +0 -12
  64. package/dist/commands/each.js +0 -74
  65. package/dist/commands/info.d.ts +0 -5
  66. package/dist/commands/info.js +0 -42
  67. package/dist/commands/list.d.ts +0 -15
  68. package/dist/commands/list.js +0 -119
  69. package/dist/commands/run.d.ts +0 -9
  70. package/dist/commands/run.js +0 -43
  71. package/dist/filters/affected.d.ts +0 -10
  72. package/dist/filters/affected.js +0 -81
  73. package/dist/filters/filter.d.ts +0 -8
  74. package/dist/filters/filter.js +0 -35
  75. package/dist/filters/index.d.ts +0 -2
  76. package/dist/filters/index.js +0 -21
  77. package/dist/logger.d.ts +0 -32
  78. package/dist/logger.js +0 -189
  79. package/dist/myr/command.d.ts +0 -2
  80. package/dist/myr/command.js +0 -52
  81. package/dist/myr/commands/kill.d.ts +0 -5
  82. package/dist/myr/commands/kill.js +0 -34
  83. package/dist/myr/commands/list.d.ts +0 -10
  84. package/dist/myr/commands/list.js +0 -91
  85. package/dist/myr/commands/spawn.d.ts +0 -7
  86. package/dist/myr/commands/spawn.js +0 -39
  87. package/dist/myr/commands/stop.d.ts +0 -2
  88. package/dist/myr/commands/stop.js +0 -31
  89. package/dist/myr/watch.d.ts +0 -8
  90. package/dist/myr/watch.js +0 -79
  91. package/dist/pipeline.d.ts +0 -9
  92. package/dist/pipeline.js +0 -52
  93. package/dist/utils/cli-list.d.ts +0 -15
  94. package/dist/utils/cli-list.js +0 -86
  95. package/dist/utils/deps-tree.d.ts +0 -2
  96. package/dist/utils/deps-tree.js +0 -51
  97. package/dist/wrapper.d.ts +0 -9
  98. package/dist/wrapper.js +0 -38
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/myr-client.ts","myr/myr-client.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__rest","s","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","__asyncValues","o","Symbol","asyncIterator","TypeError","m","__values","iterator","verb","n","v","settle","d","__await","__asyncGenerator","g","q","a","b","push","resume","r","fulfill","f","shift","MyrClient","constructor","project","_logger","logger","child","context","name","_endpoint","_qclient","GraphQLClient","_sclient","url","replace","webSocketImpl","WebSocket","lazy","_autoStart","fn","error","code","verbose","start","_subscription","query","variables","Repeater","stop","subscribe","data","complete","_a","_b","path","__dirname","cwd","root","detached","stdio","stdout","on","msg","line","toString","split","JSON","parse","level","message","meta","log","stderr","signal","Error","send","request","tasks","TaskFragment","spawn","cmd","args","spawnScript","wks","script","packageManager","logs","res","logs$","arguments","logs$_1","e_1","_c","e_1_1","return","kill","id"],"mappings":"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","file":"myr-client.js","sourcesContent":["import { logger, Project, Workspace } from '@jujulego/jill-core';\nimport { SpawnArgs, Task, TaskFragment } from '@jujulego/jill-myr';\nimport { Repeater } from '@repeaterjs/repeater';\nimport { fork } from 'child_process';\nimport { DocumentNode, print } from 'graphql';\nimport { GraphQLClient } from 'graphql-request';\nimport { createClient } from 'graphql-ws';\nimport gql from 'graphql-tag';\nimport path from 'path';\nimport WebSocket from 'ws';\n\n\n// Types\ntype ILog = Record<string, unknown> & {\n // Attributes\n level: string;\n message: string;\n};\n\n// Class\nexport class MyrClient {\n // Attributes\n private readonly _logger = logger.child({ context: MyrClient.name });\n private readonly _endpoint = 'http://localhost:5001/graphql';\n private readonly _qclient = new GraphQLClient(this._endpoint);\n private readonly _sclient = createClient({\n url: this._endpoint.replace(/^http/, 'ws'),\n webSocketImpl: WebSocket,\n lazy: true\n });\n\n // Constructor\n constructor(\n readonly project: Project,\n ) {}\n\n // Methods\n protected async _autoStart<T>(fn: () => Promise<T>): Promise<T> {\n try {\n return await fn();\n } catch (error) {\n if (error.code !== 'ECONNREFUSED') throw error;\n\n // Start myr if connection impossible\n this._logger.verbose('Unable to connect to myr server, trying to start it');\n await this.start();\n\n // Retry\n return await fn();\n }\n }\n\n protected _subscription<T>(query: DocumentNode, variables: Record<string, unknown>): Repeater<T> {\n return new Repeater<T>((push, stop) => {\n this._sclient.subscribe<T>({ query: print(query), variables }, {\n next(value) {\n push(value.data!).then();\n },\n error(error) {\n stop(error);\n },\n complete() {\n stop();\n }\n });\n });\n }\n\n start(): Promise<void> {\n const child = fork(path.resolve(__dirname, './myr.process'), [], {\n cwd: this.project.root,\n detached: true,\n stdio: ['ignore', 'pipe', 'pipe', 'ipc'],\n });\n\n // Transmit logs to logger\n child.stdout?.on('data', (msg: Buffer) => {\n for (const line of msg.toString('utf-8').split('\\n')) {\n if (!line) continue;\n\n const { level, message, ...meta } = JSON.parse(line) as ILog;\n logger.log(level, message, meta);\n }\n });\n\n child.stderr?.on('data', (msg: Buffer) => {\n logger.error(msg.toString('utf-8'));\n });\n\n // Start server\n return new Promise<void>((resolve, reject) => {\n child.on('message', (msg: 'started' | Error) => {\n if (msg === 'started') {\n resolve();\n } else {\n reject(msg);\n }\n });\n\n child.on('close', (code, signal) => {\n reject(new Error(`Myr process ended with code ${code} by signal ${signal}`));\n });\n\n child.send('start');\n });\n }\n\n async stop(): Promise<boolean> {\n try {\n await this._qclient.request(gql`\n mutation Shutdown {\n shutdown\n }\n `);\n\n return true;\n } catch (error) {\n if (error.code !== 'ECONNREFUSED') throw error;\n\n return false;\n }\n }\n\n async tasks(): Promise<Task[]> {\n return await this._autoStart(async () => {\n const { tasks } = await this._qclient.request<{ tasks: Task[] }>(gql`\n query Tasks {\n tasks {\n ...Task\n }\n }\n\n ${TaskFragment}\n `);\n\n return tasks;\n });\n }\n\n async spawn(cwd: string, cmd: string, args: string[] = []): Promise<Task> {\n return await this._autoStart(async () => {\n const { spawn } = await this._qclient.request<{ spawn:Task },SpawnArgs>(gql`\n mutation Spawn($cwd: String!, $cmd: String!, $args: [String!]!) {\n spawn(cwd: $cwd, cmd: $cmd, args: $args) {\n ...Task\n }\n }\n\n ${TaskFragment}\n `, { cwd, cmd, args });\n\n return spawn;\n });\n }\n\n async spawnScript(wks: Workspace, script: string, args: string[] = []): Promise<Task> {\n return await this.spawn(wks.cwd, await wks.project.packageManager(), [script, ...args]);\n }\n\n async logs(): Promise<any[]> {\n try {\n const res = await this._qclient.request<{ logs: any[] }>(gql`\n query Logs {\n logs\n }\n `);\n\n return res.logs;\n } catch (error) {\n if (error.code !== 'ECONNREFUSED') throw error;\n\n return [];\n }\n }\n\n async* logs$(): AsyncGenerator<any> {\n try {\n for await (const { log } of this._subscription<{ log: any }>(gql`subscription Logs { log }`, {})) {\n yield log;\n }\n } catch (error) {\n if (error.code !== 'ECONNREFUSED') throw error;\n\n return;\n }\n }\n\n async kill(id: string): Promise<Task | undefined> {\n return await this._autoStart(async () => {\n const { kill } = await this._qclient.request<{ kill: Task | undefined }>(gql`\n mutation Kill($id: ID!) {\n kill(id: $id) {\n ...Task\n }\n }\n\n ${TaskFragment}\n `, { id });\n\n return kill;\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 __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\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};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { logger } from '@jujulego/jill-core';\nimport { TaskFragment } from '@jujulego/jill-myr';\nimport { Repeater } from '@repeaterjs/repeater';\nimport { fork } from 'child_process';\nimport { print } from 'graphql';\nimport { GraphQLClient } from 'graphql-request';\nimport { createClient } from 'graphql-ws';\nimport gql from 'graphql-tag';\nimport path from 'path';\nimport WebSocket from 'ws';\n// Class\nexport class MyrClient {\n // Constructor\n constructor(project) {\n this.project = project;\n // Attributes\n this._logger = logger.child({ context: MyrClient.name });\n this._endpoint = 'http://localhost:5001/graphql';\n this._qclient = new GraphQLClient(this._endpoint);\n this._sclient = createClient({\n url: this._endpoint.replace(/^http/, 'ws'),\n webSocketImpl: WebSocket,\n lazy: true\n });\n }\n // Methods\n _autoStart(fn) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield fn();\n }\n catch (error) {\n if (error.code !== 'ECONNREFUSED')\n throw error;\n // Start myr if connection impossible\n this._logger.verbose('Unable to connect to myr server, trying to start it');\n yield this.start();\n // Retry\n return yield fn();\n }\n });\n }\n _subscription(query, variables) {\n return new Repeater((push, stop) => {\n this._sclient.subscribe({ query: print(query), variables }, {\n next(value) {\n push(value.data).then();\n },\n error(error) {\n stop(error);\n },\n complete() {\n stop();\n }\n });\n });\n }\n start() {\n var _a, _b;\n const child = fork(path.resolve(__dirname, './myr.process'), [], {\n cwd: this.project.root,\n detached: true,\n stdio: ['ignore', 'pipe', 'pipe', 'ipc'],\n });\n // Transmit logs to logger\n (_a = child.stdout) === null || _a === void 0 ? void 0 : _a.on('data', (msg) => {\n for (const line of msg.toString('utf-8').split('\\n')) {\n if (!line)\n continue;\n const _a = JSON.parse(line), { level, message } = _a, meta = __rest(_a, [\"level\", \"message\"]);\n logger.log(level, message, meta);\n }\n });\n (_b = child.stderr) === null || _b === void 0 ? void 0 : _b.on('data', (msg) => {\n logger.error(msg.toString('utf-8'));\n });\n // Start server\n return new Promise((resolve, reject) => {\n child.on('message', (msg) => {\n if (msg === 'started') {\n resolve();\n }\n else {\n reject(msg);\n }\n });\n child.on('close', (code, signal) => {\n reject(new Error(`Myr process ended with code ${code} by signal ${signal}`));\n });\n child.send('start');\n });\n }\n stop() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n yield this._qclient.request(gql `\n mutation Shutdown {\n shutdown\n }\n `);\n return true;\n }\n catch (error) {\n if (error.code !== 'ECONNREFUSED')\n throw error;\n return false;\n }\n });\n }\n tasks() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this._autoStart(() => __awaiter(this, void 0, void 0, function* () {\n const { tasks } = yield this._qclient.request(gql `\n query Tasks {\n tasks {\n ...Task\n }\n }\n\n ${TaskFragment}\n `);\n return tasks;\n }));\n });\n }\n spawn(cwd, cmd, args = []) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this._autoStart(() => __awaiter(this, void 0, void 0, function* () {\n const { spawn } = yield this._qclient.request(gql `\n mutation Spawn($cwd: String!, $cmd: String!, $args: [String!]!) {\n spawn(cwd: $cwd, cmd: $cmd, args: $args) {\n ...Task\n }\n }\n\n ${TaskFragment}\n `, { cwd, cmd, args });\n return spawn;\n }));\n });\n }\n spawnScript(wks, script, args = []) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.spawn(wks.cwd, yield wks.project.packageManager(), [script, ...args]);\n });\n }\n logs() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const res = yield this._qclient.request(gql `\n query Logs {\n logs\n }\n `);\n return res.logs;\n }\n catch (error) {\n if (error.code !== 'ECONNREFUSED')\n throw error;\n return [];\n }\n });\n }\n logs$() {\n return __asyncGenerator(this, arguments, function* logs$_1() {\n var e_1, _a;\n try {\n try {\n for (var _b = __asyncValues(this._subscription(gql `subscription Logs { log }`, {})), _c; _c = yield __await(_b.next()), !_c.done;) {\n const { log } = _c.value;\n yield yield __await(log);\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 __await(_a.call(_b));\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n catch (error) {\n if (error.code !== 'ECONNREFUSED')\n throw error;\n return yield __await(void 0);\n }\n });\n }\n kill(id) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this._autoStart(() => __awaiter(this, void 0, void 0, function* () {\n const { kill } = yield this._qclient.request(gql `\n mutation Kill($id: ID!) {\n kill(id: $id) {\n ...Task\n }\n }\n\n ${TaskFragment}\n `, { id });\n return kill;\n }));\n });\n }\n}"]}
@@ -0,0 +1,8 @@
1
+ import { Builder, Command } from '@jujulego/jill-common';
2
+ export declare class MyrCommand extends Command {
3
+ readonly name = "myr";
4
+ readonly description = "Interact with myr server";
5
+ readonly commands: readonly Command[];
6
+ protected define<T, U>(builder: Builder<T, U>): Builder<T, U>;
7
+ protected run(): number;
8
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/myr.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AASzD,qBAAa,UAAW,SAAQ,OAAO;IAErC,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,WAAW,8BAA8B;IAElD,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAMnC;IAGF,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAI7D,SAAS,CAAC,GAAG,IAAI,MAAM;CAGxB","file":"myr.command.d.ts","sourcesContent":["import { Builder, Command } from '@jujulego/jill-common';\n\nimport { KillCommand } from './commands/kill.command';\nimport { ListCommand } from './commands/list.command';\nimport { LogsCommand } from './commands/logs.command';\nimport { SpawnCommand } from './commands/spawn.command';\nimport { StopCommand } from './commands/stop.command';\n\n// Command\nexport class MyrCommand extends Command {\n // Properties\n readonly name = 'myr';\n readonly description = 'Interact with myr server';\n\n readonly commands: readonly Command[] = [\n new KillCommand(),\n new ListCommand(),\n new LogsCommand(),\n new SpawnCommand(),\n new StopCommand(),\n ];\n\n // Methods\n protected define<T, U>(builder: Builder<T, U>): Builder<T, U> {\n return yargs => this.commands.reduce((y, cmd) => cmd.setup(y), builder(yargs));\n }\n\n protected run(): number {\n return 0;\n }\n}\n"]}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MyrCommand = void 0;
7
+
8
+ var _jillCommon = require("@jujulego/jill-common");
9
+
10
+ var _kill = require("./commands/kill.command");
11
+
12
+ var _list = require("./commands/list.command");
13
+
14
+ var _logs = require("./commands/logs.command");
15
+
16
+ var _spawn = require("./commands/spawn.command");
17
+
18
+ var _stop = require("./commands/stop.command");
19
+
20
+ // Command
21
+ class MyrCommand extends _jillCommon.Command {
22
+ constructor() {
23
+ super(...arguments); // Properties
24
+
25
+ this.name = 'myr';
26
+ this.description = 'Interact with myr server';
27
+ this.commands = [new _kill.KillCommand(), new _list.ListCommand(), new _logs.LogsCommand(), new _spawn.SpawnCommand(), new _stop.StopCommand()];
28
+ } // Methods
29
+
30
+
31
+ define(builder) {
32
+ return yargs => this.commands.reduce((y, cmd) => cmd.setup(y), builder(yargs));
33
+ }
34
+
35
+ run() {
36
+ return 0;
37
+ }
38
+
39
+ }
40
+
41
+ exports.MyrCommand = MyrCommand;
42
+ //# sourceMappingURL=myr.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/myr.command.ts","myr/myr.command.js"],"names":["MyrCommand","Command","constructor","arguments","name","description","commands","KillCommand","ListCommand","LogsCommand","SpawnCommand","StopCommand","define","builder","yargs","reduce","y","cmd","setup","run"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;AACM,MAAOA,UAAP,SAA0BC,mBAA1B,CAAiC;AAAvCC,EAAAA,WAAA,GAAA;ACAQ,UAAM,GAAGC,SAAT,EDAR,CACE;;AACS,SAAAC,IAAA,GAAO,KAAP;AACA,SAAAC,WAAA,GAAc,0BAAd;AAEA,SAAAC,QAAA,GAA+B,CACtC,IAAIC,iBAAJ,EADsC,EAEtC,IAAIC,iBAAJ,EAFsC,EAGtC,IAAIC,iBAAJ,EAHsC,EAItC,IAAIC,mBAAJ,EAJsC,EAKtC,IAAIC,iBAAJ,EALsC,CAA/B;AAgBV,GArBsC,CAarC;;;AACUC,EAAAA,MAAM,CAAOC,OAAP,EAA6B;AAC3C,WAAOC,KAAK,IAAI,KAAKR,QAAL,CAAcS,MAAd,CAAqB,CAACC,CAAD,EAAIC,GAAJ,KAAYA,GAAG,CAACC,KAAJ,CAAUF,CAAV,CAAjC,EAA+CH,OAAO,CAACC,KAAD,CAAtD,CAAhB;AACD;;AAESK,EAAAA,GAAG,GAAA;AACX,WAAO,CAAP;AACD;;AApBoC","file":"myr.command.js","sourcesContent":["import { Builder, Command } from '@jujulego/jill-common';\n\nimport { KillCommand } from './commands/kill.command';\nimport { ListCommand } from './commands/list.command';\nimport { LogsCommand } from './commands/logs.command';\nimport { SpawnCommand } from './commands/spawn.command';\nimport { StopCommand } from './commands/stop.command';\n\n// Command\nexport class MyrCommand extends Command {\n // Properties\n readonly name = 'myr';\n readonly description = 'Interact with myr server';\n\n readonly commands: readonly Command[] = [\n new KillCommand(),\n new ListCommand(),\n new LogsCommand(),\n new SpawnCommand(),\n new StopCommand(),\n ];\n\n // Methods\n protected define<T, U>(builder: Builder<T, U>): Builder<T, U> {\n return yargs => this.commands.reduce((y, cmd) => cmd.setup(y), builder(yargs));\n }\n\n protected run(): number {\n return 0;\n }\n}\n","import { Command } from '@jujulego/jill-common';\nimport { KillCommand } from './commands/kill.command';\nimport { ListCommand } from './commands/list.command';\nimport { LogsCommand } from './commands/logs.command';\nimport { SpawnCommand } from './commands/spawn.command';\nimport { StopCommand } from './commands/stop.command';\n// Command\nexport class MyrCommand extends Command {\n constructor() {\n super(...arguments);\n // Properties\n this.name = 'myr';\n this.description = 'Interact with myr server';\n this.commands = [\n new KillCommand(),\n new ListCommand(),\n new LogsCommand(),\n new SpawnCommand(),\n new StopCommand(),\n ];\n }\n // Methods\n define(builder) {\n return yargs => this.commands.reduce((y, cmd) => cmd.setup(y), builder(yargs));\n }\n run() {\n return 0;\n }\n}"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/myr.process.ts"],"names":[],"mappings":"","file":"myr.process.d.ts","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});"]}
@@ -10,6 +10,38 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
10
10
 
11
11
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
12
 
13
+ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) {
15
+ return value instanceof P ? value : new P(function (resolve) {
16
+ resolve(value);
17
+ });
18
+ }
19
+
20
+ return new (P || (P = Promise))(function (resolve, reject) {
21
+ function fulfilled(value) {
22
+ try {
23
+ step(generator.next(value));
24
+ } catch (e) {
25
+ reject(e);
26
+ }
27
+ }
28
+
29
+ function rejected(value) {
30
+ try {
31
+ step(generator["throw"](value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ }
36
+
37
+ function step(result) {
38
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
39
+ }
40
+
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+
13
45
  // Setup logger
14
46
  const trans = new _winston.default.transports.Console({
15
47
  level: 'debug',
@@ -23,20 +55,23 @@ const trans = new _winston.default.transports.Console({
23
55
  _jillCore.logger.add(trans); // Start server when parent is ready
24
56
 
25
57
 
26
- process.once('message', async () => {
58
+ process.once('message', () => __awaiter(void 0, void 0, void 0, function* () {
59
+ var _a, _b;
60
+
27
61
  try {
28
62
  // Start server
29
- const server = new _jillMyr.MyrServer();
30
- await server.start();
63
+ const server = yield _jillMyr.MyrServer.createServer();
64
+ yield server.start();
31
65
 
32
66
  _jillCore.logger.remove(trans);
33
67
 
34
- process.send?.('started');
68
+ (_a = process.send) === null || _a === void 0 ? void 0 : _a.call(process, 'started');
35
69
  } catch (error) {
36
- process.send?.({
70
+ (_b = process.send) === null || _b === void 0 ? void 0 : _b.call(process, {
37
71
  name: error.name,
38
72
  message: error.message
39
73
  });
40
74
  process.exit(1);
41
75
  }
42
- });
76
+ }));
77
+ //# sourceMappingURL=myr.process.js.map
@@ -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}));"]}
@@ -0,0 +1,12 @@
1
+ import { Arguments, Builder, WorkspaceArgs, WorkspaceCommand } from '@jujulego/jill-common';
2
+ export interface WatchArgs extends WorkspaceArgs {
3
+ script: string;
4
+ daemon: boolean;
5
+ }
6
+ export declare class WatchCommand extends WorkspaceCommand<WatchArgs> {
7
+ readonly name = "watch <script>";
8
+ readonly description = "Run script with watcher inside workspace and watch over deps";
9
+ private spawnDepsTree;
10
+ protected define<T, U>(builder: Builder<T, U>): Builder<T, U & WatchArgs>;
11
+ protected run(args: Arguments<WatchArgs>): Promise<number>;
12
+ }
@@ -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"]}
@@ -0,0 +1,169 @@
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
@@ -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.logger.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.logger.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.logger.fail(this._formats['fail'](task));
56
+ _jillCommon.transport.fail(this._formats['fail'](task));
47
57
  } else {
48
- _logger.logger.succeed(this._formats['succeed'](task));
58
+ _jillCommon.transport.succeed(this._formats['succeed'](task));
49
59
  }
50
60
 
51
61
  this._refreshSpinner();
@@ -62,4 +72,5 @@ class TaskLogger {
62
72
 
63
73
  }
64
74
 
65
- exports.TaskLogger = TaskLogger;
75
+ exports.TaskLogger = TaskLogger;
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"]}