@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
package/dist/main.js CHANGED
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _jillCommon = require("@jujulego/jill-common");
4
+
3
5
  var _helpers = require("yargs/helpers");
4
6
 
5
7
  var _yargs = _interopRequireDefault(require("yargs"));
@@ -16,23 +18,53 @@ var _myr = require("./myr/myr.command");
16
18
 
17
19
  var _watch = require("./myr/watch.command");
18
20
 
19
- var _plugin = require("./plugin");
20
-
21
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
22
 
23
+ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
24
+ function adopt(value) {
25
+ return value instanceof P ? value : new P(function (resolve) {
26
+ resolve(value);
27
+ });
28
+ }
29
+
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) {
32
+ try {
33
+ step(generator.next(value));
34
+ } catch (e) {
35
+ reject(e);
36
+ }
37
+ }
38
+
39
+ function rejected(value) {
40
+ try {
41
+ step(generator["throw"](value));
42
+ } catch (e) {
43
+ reject(e);
44
+ }
45
+ }
46
+
47
+ function step(result) {
48
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
49
+ }
50
+
51
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
52
+ });
53
+ };
54
+
23
55
  // Bootstrap
24
- (async () => {
56
+ (() => __awaiter(void 0, void 0, void 0, function* () {
25
57
  // Options
26
- const parser = await (0, _yargs.default)((0, _helpers.hideBin)(process.argv)).scriptName('jill').parserConfiguration({
58
+ const parser = yield (0, _yargs.default)((0, _helpers.hideBin)(process.argv)).scriptName('jill').parserConfiguration({
27
59
  'populate--': true
28
60
  }).strictCommands().help();
29
61
 
30
- const core = _plugin.Plugin.createPlugin('core', [_info.InfoCommand, _list.ListCommand, _run.RunCommand, _each.EachCommand]);
62
+ const core = _jillCommon.Plugin.createPlugin('core', [_info.InfoCommand, _list.ListCommand, _run.RunCommand, _each.EachCommand]);
31
63
 
32
- const myr = _plugin.Plugin.createPlugin('myr', [_myr.MyrCommand, _watch.WatchCommand]);
64
+ const myr = _jillCommon.Plugin.createPlugin('myr', [_myr.MyrCommand, _watch.WatchCommand]);
33
65
 
34
66
  core.setup(parser);
35
67
  myr.setup(parser);
36
- await parser.parse();
37
- })();
38
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4udHMiXSwibmFtZXMiOlsicGFyc2VyIiwicHJvY2VzcyIsImFyZ3YiLCJzY3JpcHROYW1lIiwicGFyc2VyQ29uZmlndXJhdGlvbiIsInN0cmljdENvbW1hbmRzIiwiaGVscCIsImNvcmUiLCJQbHVnaW4iLCJjcmVhdGVQbHVnaW4iLCJJbmZvQ29tbWFuZCIsIkxpc3RDb21tYW5kIiwiUnVuQ29tbWFuZCIsIkVhY2hDb21tYW5kIiwibXlyIiwiTXlyQ29tbWFuZCIsIldhdGNoQ29tbWFuZCIsInNldHVwIiwicGFyc2UiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQTtBQUNBLENBQUMsWUFBWTtBQUNYO0FBQ0EsUUFBTUEsTUFBTSxHQUFHLE1BQU0sb0JBQU0sc0JBQVFDLE9BQU8sQ0FBQ0MsSUFBaEIsQ0FBTixFQUNsQkMsVUFEa0IsQ0FDUCxNQURPLEVBRWxCQyxtQkFGa0IsQ0FFRTtBQUNuQixrQkFBYztBQURLLEdBRkYsRUFLbEJDLGNBTGtCLEdBTWxCQyxJQU5rQixFQUFyQjs7QUFRQSxRQUFNQyxJQUFJLEdBQUdDLGVBQU9DLFlBQVAsQ0FBb0IsTUFBcEIsRUFBNEIsQ0FDdkNDLGlCQUR1QyxFQUV2Q0MsaUJBRnVDLEVBR3ZDQyxlQUh1QyxFQUl2Q0MsaUJBSnVDLENBQTVCLENBQWI7O0FBT0EsUUFBTUMsR0FBRyxHQUFHTixlQUFPQyxZQUFQLENBQW9CLEtBQXBCLEVBQTJCLENBQ3JDTSxlQURxQyxFQUVyQ0MsbUJBRnFDLENBQTNCLENBQVo7O0FBS0FULEVBQUFBLElBQUksQ0FBQ1UsS0FBTCxDQUFXakIsTUFBWDtBQUNBYyxFQUFBQSxHQUFHLENBQUNHLEtBQUosQ0FBVWpCLE1BQVY7QUFFQSxRQUFNQSxNQUFNLENBQUNrQixLQUFQLEVBQU47QUFDRCxDQTFCRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhpZGVCaW4gfSBmcm9tICd5YXJncy9oZWxwZXJzJztcbmltcG9ydCB5YXJncyBmcm9tICd5YXJncyc7XG5cbmltcG9ydCB7IEVhY2hDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9lYWNoLmNvbW1hbmQnO1xuaW1wb3J0IHsgSW5mb0NvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmRzL2luZm8uY29tbWFuZCc7XG5pbXBvcnQgeyBMaXN0Q29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvbGlzdC5jb21tYW5kJztcbmltcG9ydCB7IFJ1bkNvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmRzL3J1bi5jb21tYW5kJztcbmltcG9ydCB7IE15ckNvbW1hbmQgfSBmcm9tICcuL215ci9teXIuY29tbWFuZCc7XG5pbXBvcnQgeyBXYXRjaENvbW1hbmQgfSBmcm9tICcuL215ci93YXRjaC5jb21tYW5kJztcbmltcG9ydCB7IFBsdWdpbiB9IGZyb20gJy4vcGx1Z2luJztcblxuLy8gQm9vdHN0cmFwXG4oYXN5bmMgKCkgPT4ge1xuICAvLyBPcHRpb25zXG4gIGNvbnN0IHBhcnNlciA9IGF3YWl0IHlhcmdzKGhpZGVCaW4ocHJvY2Vzcy5hcmd2KSlcbiAgICAuc2NyaXB0TmFtZSgnamlsbCcpXG4gICAgLnBhcnNlckNvbmZpZ3VyYXRpb24oe1xuICAgICAgJ3BvcHVsYXRlLS0nOiB0cnVlLFxuICAgIH0pXG4gICAgLnN0cmljdENvbW1hbmRzKClcbiAgICAuaGVscCgpO1xuXG4gIGNvbnN0IGNvcmUgPSBQbHVnaW4uY3JlYXRlUGx1Z2luKCdjb3JlJywgW1xuICAgIEluZm9Db21tYW5kLFxuICAgIExpc3RDb21tYW5kLFxuICAgIFJ1bkNvbW1hbmQsXG4gICAgRWFjaENvbW1hbmQsXG4gIF0pO1xuXG4gIGNvbnN0IG15ciA9IFBsdWdpbi5jcmVhdGVQbHVnaW4oJ215cicsIFtcbiAgICBNeXJDb21tYW5kLFxuICAgIFdhdGNoQ29tbWFuZCxcbiAgXSk7XG5cbiAgY29yZS5zZXR1cChwYXJzZXIpO1xuICBteXIuc2V0dXAocGFyc2VyKTtcblxuICBhd2FpdCBwYXJzZXIucGFyc2UoKTtcbn0pKCk7XG4iXSwiZmlsZSI6Im1haW4uanMifQ==
68
+ yield parser.parse();
69
+ }))();
70
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["main.ts","main.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","parser","process","argv","scriptName","parserConfiguration","strictCommands","help","core","Plugin","createPlugin","InfoCommand","ListCommand","RunCommand","EachCommand","myr","MyrCommand","WatchCommand","setup","parse"],"mappings":";;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;ACTA,IAAIA,SAAS,GAAI,UAAQ,SAAKA,SAAd,IAA4B,UAAUC,OAAV,EAAmBC,UAAnB,EAA+BC,CAA/B,EAAkCC,SAAlC,EAA6C;AACrF,WAASC,KAAT,CAAeC,KAAf,EAAsB;AAAE,WAAOA,KAAK,YAAYH,CAAjB,GAAqBG,KAArB,GAA6B,IAAIH,CAAJ,CAAM,UAAUI,OAAV,EAAmB;AAAEA,MAAAA,OAAO,CAACD,KAAD,CAAP;AAAiB,KAA5C,CAApC;AAAoF;;AAC5G,SAAO,KAAKH,CAAC,KAAKA,CAAC,GAAGK,OAAT,CAAN,EAAyB,UAAUD,OAAV,EAAmBE,MAAnB,EAA2B;AACvD,aAASC,SAAT,CAAmBJ,KAAnB,EAA0B;AAAE,UAAI;AAAEK,QAAAA,IAAI,CAACP,SAAS,CAACQ,IAAV,CAAeN,KAAf,CAAD,CAAJ;AAA8B,OAApC,CAAqC,OAAOO,CAAP,EAAU;AAAEJ,QAAAA,MAAM,CAACI,CAAD,CAAN;AAAY;AAAE;;AAC3F,aAASC,QAAT,CAAkBR,KAAlB,EAAyB;AAAE,UAAI;AAAEK,QAAAA,IAAI,CAACP,SAAS,CAAC,OAAD,CAAT,CAAmBE,KAAnB,CAAD,CAAJ;AAAkC,OAAxC,CAAyC,OAAOO,CAAP,EAAU;AAAEJ,QAAAA,MAAM,CAACI,CAAD,CAAN;AAAY;AAAE;;AAC9F,aAASF,IAAT,CAAcI,MAAd,EAAsB;AAAEA,MAAAA,MAAM,CAACC,IAAP,GAAcT,OAAO,CAACQ,MAAM,CAACT,KAAR,CAArB,GAAsCD,KAAK,CAACU,MAAM,CAACT,KAAR,CAAL,CAAoBW,IAApB,CAAyBP,SAAzB,EAAoCI,QAApC,CAAtC;AAAsF;;AAC9GH,IAAAA,IAAI,CAAC,CAACP,SAAS,GAAGA,SAAS,CAACc,KAAV,CAAgBjB,OAAhB,EAAyBC,UAAU,IAAI,EAAvC,CAAb,EAAyDU,IAAzD,EAAD,CAAJ;AACH,GALM,CAAP;AAMH,CARD;;ADWA;AACA,CAAC,MAAWZ,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACV;AACA,QAAMmB,MAAM,GAAG,MAAM,oBAAM,sBAAQC,OAAO,CAACC,IAAhB,CAAN,EAClBC,UADkB,CACP,MADO,EAElBC,mBAFkB,CAEE;AACnB,kBAAc;AADK,GAFF,EAKlBC,cALkB,GAMlBC,IANkB,EAArB;;AAQA,QAAMC,IAAI,GAAGC,mBAAOC,YAAP,CAAoB,MAApB,EAA4B,CACvCC,iBADuC,EAEvCC,iBAFuC,EAGvCC,eAHuC,EAIvCC,iBAJuC,CAA5B,CAAb;;AAOA,QAAMC,GAAG,GAAGN,mBAAOC,YAAP,CAAoB,KAApB,EAA2B,CACrCM,eADqC,EAErCC,mBAFqC,CAA3B,CAAZ;;AAKAT,EAAAA,IAAI,CAACU,KAAL,CAAWjB,MAAX;AACAc,EAAAA,GAAG,CAACG,KAAJ,CAAUjB,MAAV;AAEA,QAAMA,MAAM,CAACkB,KAAP,EAAN;AACD,CA1BW,CAAZ","file":"main.js","sourcesContent":["import { Plugin } from '@jujulego/jill-common';\nimport { hideBin } from 'yargs/helpers';\nimport yargs from 'yargs';\n\nimport { EachCommand } from './commands/each.command';\nimport { InfoCommand } from './commands/info.command';\nimport { ListCommand } from './commands/list.command';\nimport { RunCommand } from './commands/run.command';\nimport { MyrCommand } from './myr/myr.command';\nimport { WatchCommand } from './myr/watch.command';\n\n// Bootstrap\n(async () => {\n // Options\n const parser = await yargs(hideBin(process.argv))\n .scriptName('jill')\n .parserConfiguration({\n 'populate--': true,\n })\n .strictCommands()\n .help();\n\n const core = Plugin.createPlugin('core', [\n InfoCommand,\n ListCommand,\n RunCommand,\n EachCommand,\n ]);\n\n const myr = Plugin.createPlugin('myr', [\n MyrCommand,\n WatchCommand,\n ]);\n\n core.setup(parser);\n myr.setup(parser);\n\n await parser.parse();\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 { Plugin } from '@jujulego/jill-common';\nimport { hideBin } from 'yargs/helpers';\nimport yargs from 'yargs';\nimport { EachCommand } from './commands/each.command';\nimport { InfoCommand } from './commands/info.command';\nimport { ListCommand } from './commands/list.command';\nimport { RunCommand } from './commands/run.command';\nimport { MyrCommand } from './myr/myr.command';\nimport { WatchCommand } from './myr/watch.command';\n// Bootstrap\n(() => __awaiter(void 0, void 0, void 0, function* () {\n // Options\n const parser = yield yargs(hideBin(process.argv))\n .scriptName('jill')\n .parserConfiguration({\n 'populate--': true,\n })\n .strictCommands()\n .help();\n const core = Plugin.createPlugin('core', [\n InfoCommand,\n ListCommand,\n RunCommand,\n EachCommand,\n ]);\n const myr = Plugin.createPlugin('myr', [\n MyrCommand,\n WatchCommand,\n ]);\n core.setup(parser);\n myr.setup(parser);\n yield parser.parse();\n}))();"]}
@@ -1,5 +1,4 @@
1
- import { ProjectArgs, ProjectCommand } from '../../project.command';
2
- import { Arguments, Builder } from '../../command';
1
+ import { Arguments, Builder, ProjectArgs, ProjectCommand } from '@jujulego/jill-common';
3
2
  export interface KillArgs extends ProjectArgs {
4
3
  id: string;
5
4
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/commands/kill.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKxF,MAAM,WAAW,QAAS,SAAQ,WAAW;IAC3C,EAAE,EAAE,MAAM,CAAC;CACZ;AAGD,qBAAa,WAAY,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAEvD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,eAAe;IAGnC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;cAMxD,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAkBhE","file":"kill.command.d.ts","sourcesContent":["import { Arguments, Builder, ProjectArgs, ProjectCommand } from '@jujulego/jill-common';\n\nimport { MyrClient } from '../myr-client';\n\n// Types\nexport interface KillArgs extends ProjectArgs {\n id: string;\n}\n\n// Command\nexport class KillCommand extends ProjectCommand<KillArgs> {\n // Attributes\n readonly name = 'kill <id>';\n readonly description = 'Kill task';\n\n // Methods\n protected define<T, U>(builder: Builder<T, U>): Builder<T, U & KillArgs> {\n return super.define(y => builder(y)\n .positional('id', { type: 'string', demandOption: true })\n );\n }\n\n protected async run(args: Arguments<KillArgs>): Promise<number> {\n await super.run(args);\n\n // Spawn task\n this.spinner.start('Connecting to myr');\n const client = new MyrClient(this.project);\n\n this.spinner.start('Killing task');\n const task = await client.kill(args.id);\n\n if (task) {\n this.spinner.succeed(`Task ${task.id} killed`);\n return 0;\n } else {\n this.spinner.fail(`Task ${args.id} not found`);\n return 1;\n }\n }\n}\n"]}
@@ -5,23 +5,52 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.KillCommand = void 0;
7
7
 
8
- var _project = require("../../project.command");
8
+ var _jillCommon = require("@jujulego/jill-common");
9
9
 
10
10
  var _myrClient = require("../myr-client");
11
11
 
12
- 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; }
12
+ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) {
14
+ return value instanceof P ? value : new P(function (resolve) {
15
+ resolve(value);
16
+ });
17
+ }
18
+
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) {
21
+ try {
22
+ step(generator.next(value));
23
+ } catch (e) {
24
+ reject(e);
25
+ }
26
+ }
27
+
28
+ function rejected(value) {
29
+ try {
30
+ step(generator["throw"](value));
31
+ } catch (e) {
32
+ reject(e);
33
+ }
34
+ }
35
+
36
+ function step(result) {
37
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
38
+ }
39
+
40
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
41
+ });
42
+ };
13
43
 
14
44
  // Command
15
- class KillCommand extends _project.ProjectCommand {
16
- constructor(...args) {
17
- super(...args);
45
+ class KillCommand extends _jillCommon.ProjectCommand {
46
+ constructor() {
47
+ super(...arguments); // Attributes
18
48
 
19
- _defineProperty(this, "name", 'kill <id>');
49
+ this.name = 'kill <id>';
50
+ this.description = 'Kill task';
51
+ } // Methods
20
52
 
21
- _defineProperty(this, "description", 'Kill task');
22
- }
23
53
 
24
- // Methods
25
54
  define(builder) {
26
55
  return super.define(y => builder(y).positional('id', {
27
56
  type: 'string',
@@ -29,24 +58,32 @@ class KillCommand extends _project.ProjectCommand {
29
58
  }));
30
59
  }
31
60
 
32
- async run(args) {
33
- await super.run(args); // Spawn task
61
+ run(args) {
62
+ const _super = Object.create(null, {
63
+ run: {
64
+ get: () => super.run
65
+ }
66
+ });
34
67
 
35
- this.spinner.start('Connecting to myr');
36
- const client = new _myrClient.MyrClient(this.project);
37
- this.spinner.start('Killing task');
38
- const task = await client.kill(args.id);
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ yield _super.run.call(this, args); // Spawn task
39
70
 
40
- if (task) {
41
- this.spinner.succeed(`Task ${task.id} killed`);
42
- return 0;
43
- } else {
44
- this.spinner.fail(`Task ${args.id} not found`);
45
- return 1;
46
- }
71
+ this.spinner.start('Connecting to myr');
72
+ const client = new _myrClient.MyrClient(this.project);
73
+ this.spinner.start('Killing task');
74
+ const task = yield client.kill(args.id);
75
+
76
+ if (task) {
77
+ this.spinner.succeed(`Task ${task.id} killed`);
78
+ return 0;
79
+ } else {
80
+ this.spinner.fail(`Task ${args.id} not found`);
81
+ return 1;
82
+ }
83
+ });
47
84
  }
48
85
 
49
86
  }
50
87
 
51
88
  exports.KillCommand = KillCommand;
52
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15ci9jb21tYW5kcy9raWxsLmNvbW1hbmQudHMiXSwibmFtZXMiOlsiS2lsbENvbW1hbmQiLCJQcm9qZWN0Q29tbWFuZCIsImRlZmluZSIsImJ1aWxkZXIiLCJ5IiwicG9zaXRpb25hbCIsInR5cGUiLCJkZW1hbmRPcHRpb24iLCJydW4iLCJhcmdzIiwic3Bpbm5lciIsInN0YXJ0IiwiY2xpZW50IiwiTXlyQ2xpZW50IiwicHJvamVjdCIsInRhc2siLCJraWxsIiwiaWQiLCJzdWNjZWVkIiwiZmFpbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOzs7O0FBUUE7QUFDTyxNQUFNQSxXQUFOLFNBQTBCQyx1QkFBMUIsQ0FBbUQ7QUFBQTtBQUFBOztBQUFBLGtDQUV4QyxXQUZ3Qzs7QUFBQSx5Q0FHakMsV0FIaUM7QUFBQTs7QUFLeEQ7QUFDVUMsRUFBQUEsTUFBTSxDQUFPQyxPQUFQLEVBQXlEO0FBQ3ZFLFdBQU8sTUFBTUQsTUFBTixDQUFhRSxDQUFDLElBQUlELE9BQU8sQ0FBQ0MsQ0FBRCxDQUFQLENBQ3RCQyxVQURzQixDQUNYLElBRFcsRUFDTDtBQUFFQyxNQUFBQSxJQUFJLEVBQUUsUUFBUjtBQUFrQkMsTUFBQUEsWUFBWSxFQUFFO0FBQWhDLEtBREssQ0FBbEIsQ0FBUDtBQUdEOztBQUVrQixRQUFIQyxHQUFHLENBQUNDLElBQUQsRUFBNkM7QUFDOUQsVUFBTSxNQUFNRCxHQUFOLENBQVVDLElBQVYsQ0FBTixDQUQ4RCxDQUc5RDs7QUFDQSxTQUFLQyxPQUFMLENBQWFDLEtBQWIsQ0FBbUIsbUJBQW5CO0FBQ0EsVUFBTUMsTUFBTSxHQUFHLElBQUlDLG9CQUFKLENBQWMsS0FBS0MsT0FBbkIsQ0FBZjtBQUVBLFNBQUtKLE9BQUwsQ0FBYUMsS0FBYixDQUFtQixjQUFuQjtBQUNBLFVBQU1JLElBQUksR0FBRyxNQUFNSCxNQUFNLENBQUNJLElBQVAsQ0FBWVAsSUFBSSxDQUFDUSxFQUFqQixDQUFuQjs7QUFFQSxRQUFJRixJQUFKLEVBQVU7QUFDUixXQUFLTCxPQUFMLENBQWFRLE9BQWIsQ0FBc0IsUUFBT0gsSUFBSSxDQUFDRSxFQUFHLFNBQXJDO0FBQ0EsYUFBTyxDQUFQO0FBQ0QsS0FIRCxNQUdPO0FBQ0wsV0FBS1AsT0FBTCxDQUFhUyxJQUFiLENBQW1CLFFBQU9WLElBQUksQ0FBQ1EsRUFBRyxZQUFsQztBQUNBLGFBQU8sQ0FBUDtBQUNEO0FBQ0Y7O0FBN0J1RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2plY3RBcmdzLCBQcm9qZWN0Q29tbWFuZCB9IGZyb20gJy4uLy4uL3Byb2plY3QuY29tbWFuZCc7XG5pbXBvcnQgeyBNeXJDbGllbnQgfSBmcm9tICcuLi9teXItY2xpZW50JztcbmltcG9ydCB7IEFyZ3VtZW50cywgQnVpbGRlciB9IGZyb20gJy4uLy4uL2NvbW1hbmQnO1xuXG4vLyBUeXBlc1xuZXhwb3J0IGludGVyZmFjZSBLaWxsQXJncyBleHRlbmRzIFByb2plY3RBcmdzIHtcbiAgaWQ6IHN0cmluZztcbn1cblxuLy8gQ29tbWFuZFxuZXhwb3J0IGNsYXNzIEtpbGxDb21tYW5kIGV4dGVuZHMgUHJvamVjdENvbW1hbmQ8S2lsbEFyZ3M+IHtcbiAgLy8gQXR0cmlidXRlc1xuICByZWFkb25seSBuYW1lID0gJ2tpbGwgPGlkPic7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gJ0tpbGwgdGFzayc7XG5cbiAgLy8gTWV0aG9kc1xuICBwcm90ZWN0ZWQgZGVmaW5lPFQsIFU+KGJ1aWxkZXI6IEJ1aWxkZXI8VCwgVT4pOiBCdWlsZGVyPFQsIFUgJiBLaWxsQXJncz4ge1xuICAgIHJldHVybiBzdXBlci5kZWZpbmUoeSA9PiBidWlsZGVyKHkpXG4gICAgICAucG9zaXRpb25hbCgnaWQnLCB7IHR5cGU6ICdzdHJpbmcnLCBkZW1hbmRPcHRpb246IHRydWUgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJ1bihhcmdzOiBBcmd1bWVudHM8S2lsbEFyZ3M+KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBhd2FpdCBzdXBlci5ydW4oYXJncyk7XG5cbiAgICAvLyBTcGF3biB0YXNrXG4gICAgdGhpcy5zcGlubmVyLnN0YXJ0KCdDb25uZWN0aW5nIHRvIG15cicpO1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBNeXJDbGllbnQodGhpcy5wcm9qZWN0KTtcblxuICAgIHRoaXMuc3Bpbm5lci5zdGFydCgnS2lsbGluZyB0YXNrJyk7XG4gICAgY29uc3QgdGFzayA9IGF3YWl0IGNsaWVudC5raWxsKGFyZ3MuaWQpO1xuXG4gICAgaWYgKHRhc2spIHtcbiAgICAgIHRoaXMuc3Bpbm5lci5zdWNjZWVkKGBUYXNrICR7dGFzay5pZH0ga2lsbGVkYCk7XG4gICAgICByZXR1cm4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zcGlubmVyLmZhaWwoYFRhc2sgJHthcmdzLmlkfSBub3QgZm91bmRgKTtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgfVxufSJdLCJmaWxlIjoibXlyL2NvbW1hbmRzL2tpbGwuY29tbWFuZC5qcyJ9
89
+ //# sourceMappingURL=kill.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/commands/kill.command.ts","myr/commands/kill.command.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","KillCommand","ProjectCommand","constructor","arguments","name","description","define","builder","y","positional","type","demandOption","run","args","_super","Object","create","get","call","spinner","start","client","MyrClient","project","task","kill","id","succeed","fail"],"mappings":"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","file":"kill.command.js","sourcesContent":["import { Arguments, Builder, ProjectArgs, ProjectCommand } from '@jujulego/jill-common';\n\nimport { MyrClient } from '../myr-client';\n\n// Types\nexport interface KillArgs extends ProjectArgs {\n id: string;\n}\n\n// Command\nexport class KillCommand extends ProjectCommand<KillArgs> {\n // Attributes\n readonly name = 'kill <id>';\n readonly description = 'Kill task';\n\n // Methods\n protected define<T, U>(builder: Builder<T, U>): Builder<T, U & KillArgs> {\n return super.define(y => builder(y)\n .positional('id', { type: 'string', demandOption: true })\n );\n }\n\n protected async run(args: Arguments<KillArgs>): Promise<number> {\n await super.run(args);\n\n // Spawn task\n this.spinner.start('Connecting to myr');\n const client = new MyrClient(this.project);\n\n this.spinner.start('Killing task');\n const task = await client.kill(args.id);\n\n if (task) {\n this.spinner.succeed(`Task ${task.id} killed`);\n return 0;\n } else {\n this.spinner.fail(`Task ${args.id} not found`);\n return 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};\nimport { ProjectCommand } from '@jujulego/jill-common';\nimport { MyrClient } from '../myr-client';\n// Command\nexport class KillCommand extends ProjectCommand {\n constructor() {\n super(...arguments);\n // Attributes\n this.name = 'kill <id>';\n this.description = 'Kill task';\n }\n // Methods\n define(builder) {\n return super.define(y => builder(y)\n .positional('id', { type: 'string', demandOption: true }));\n }\n run(args) {\n const _super = Object.create(null, {\n run: { get: () => super.run }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.run.call(this, args);\n // Spawn task\n this.spinner.start('Connecting to myr');\n const client = new MyrClient(this.project);\n this.spinner.start('Killing task');\n const task = yield client.kill(args.id);\n if (task) {\n this.spinner.succeed(`Task ${task.id} killed`);\n return 0;\n }\n else {\n this.spinner.fail(`Task ${args.id} not found`);\n return 1;\n }\n });\n }\n}"]}
@@ -1,10 +1,9 @@
1
- import { ProjectArgs, ProjectCommand } from '../../project.command';
2
- import { Arguments, Builder } from '../../command';
1
+ import { Arguments, Builder, ProjectArgs, ProjectCommand } from '@jujulego/jill-common';
3
2
  export declare type Attribute = 'identifier' | 'status' | 'cwd' | 'command' | 'cmd' | 'args';
4
3
  export declare type Data = Partial<Record<Attribute, string>>;
5
4
  export interface ListArgs extends ProjectArgs {
6
5
  all: boolean | undefined;
7
- attrs: Attribute[] | undefined;
6
+ attrs: Attribute[];
8
7
  headers: boolean | undefined;
9
8
  long: boolean | undefined;
10
9
  json: boolean | undefined;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/commands/list.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAW,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AASjG,oBAAY,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AACrF,oBAAY,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AAItD,MAAM,WAAW,QAAS,SAAQ,WAAW;IAC3C,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC;IAEzB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B;AAwBD,qBAAa,WAAY,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAEvD,QAAQ,CAAC,IAAI,WAAkB;IAC/B,QAAQ,CAAC,WAAW,oBAAoB;IAGxC,OAAO,CAAC,cAAc;IAYtB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;cAkCxD,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CA0C9D","file":"list.command.d.ts","sourcesContent":["import { Arguments, Builder, CliList, ProjectArgs, ProjectCommand } from '@jujulego/jill-common';\nimport { TaskStatus } from '@jujulego/jill-core';\nimport { Task } from '@jujulego/jill-myr';\nimport chalk from 'chalk';\nimport path from 'path';\n\nimport { MyrClient } from '../myr-client';\n\n// Types\nexport type Attribute = 'identifier' | 'status' | 'cwd' | 'command' | 'cmd' | 'args';\nexport type Data = Partial<Record<Attribute, string>>;\n\ntype Extractor<T> = (tsk: Task) => T;\n\nexport interface ListArgs extends ProjectArgs {\n all: boolean | undefined;\n\n attrs: Attribute[];\n headers: boolean | undefined;\n long: boolean | undefined;\n json: boolean | undefined;\n}\n\n// Constants\nconst COLORED_STATUS: Record<TaskStatus, string> = {\n blocked: chalk.yellow('blocked'),\n ready: chalk.blue('ready'),\n running: 'running',\n failed: chalk.red('failed'),\n done: chalk.green('done')\n};\n\nconst LONG_ATTRIBUTES: Attribute[] = ['identifier', 'status', 'cwd', 'command'];\nconst DEFAULT_ATTRIBUTES: Attribute[] = ['identifier', 'command'];\n\nconst EXTRACTORS: Record<Attribute, Extractor<string | undefined>> = {\n identifier: tsk => chalk.grey(tsk.id),\n status: tsk => COLORED_STATUS[tsk.status],\n cwd: tsk => path.relative(process.cwd(), tsk.cwd) || '.',\n command: tsk => `${tsk.cmd} ${tsk.args.join(' ')}`,\n cmd: tsk => tsk.cmd,\n args: tsk => tsk.args.join(' ')\n};\n\n// Command\nexport class ListCommand extends ProjectCommand<ListArgs> {\n // Attributes\n readonly name = ['list', 'ls'];\n readonly description = 'List myr tasks';\n\n // Methods\n private buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (tsk) => {\n const data: Data = {};\n\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](tsk);\n }\n\n return data;\n };\n }\n\n protected define<T, U>(builder: Builder<T, U>): Builder<T, U & ListArgs> {\n return super.define(y => builder(y)\n .option('all', {\n alias: 'a',\n type: 'boolean',\n group: 'Filters:',\n desc: 'Show all tasks (by default list shows only running tasks)',\n })\n .option('attrs', {\n type: 'array',\n choices: ['identifier', 'status', 'cwd' ,'command', 'cmd', 'args'],\n default: [] as Attribute[],\n group: 'Format:',\n desc: 'Select printed attributes'\n })\n .option('headers', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints columns headers'\n })\n .option('long', {\n alias: 'l',\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints name, version and root of all workspaces',\n })\n .option('json', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints data as a JSON array',\n })\n );\n }\n\n protected async run(args: Arguments<ListArgs>): Promise<void> {\n await super.run(args);\n\n // Spawn task\n this.spinner.start('Connecting to myr');\n const client = new MyrClient(this.project);\n\n this.spinner.start('Requesting tasks');\n const tasks = await client.tasks();\n\n this.spinner.stop();\n\n // Build data\n let attrs = args.attrs;\n\n if (args.attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n } else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n\n const data = tasks\n .filter(tsk => args.all || tsk.status === 'running')\n .map(tsk => this.buildExtractor(attrs)(tsk));\n\n // Print data\n const list = new CliList();\n\n if (args.headers ?? (attrs.length > 1)) {\n list.setHeaders(attrs);\n }\n\n for (const d of data) {\n list.add(attrs.map(attr => d[attr] || ''));\n }\n\n for (const d of list.lines()) {\n this.log(d);\n }\n }\n}\n"]}
@@ -5,19 +5,47 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.ListCommand = void 0;
7
7
 
8
+ var _jillCommon = require("@jujulego/jill-common");
9
+
8
10
  var _chalk = _interopRequireDefault(require("chalk"));
9
11
 
10
12
  var _path = _interopRequireDefault(require("path"));
11
13
 
12
- var _project = require("../../project.command");
13
-
14
14
  var _myrClient = require("../myr-client");
15
15
 
16
- var _cliList = require("../../utils/cli-list");
17
-
18
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
17
 
20
- 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; }
18
+ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
19
+ function adopt(value) {
20
+ return value instanceof P ? value : new P(function (resolve) {
21
+ resolve(value);
22
+ });
23
+ }
24
+
25
+ return new (P || (P = Promise))(function (resolve, reject) {
26
+ function fulfilled(value) {
27
+ try {
28
+ step(generator.next(value));
29
+ } catch (e) {
30
+ reject(e);
31
+ }
32
+ }
33
+
34
+ function rejected(value) {
35
+ try {
36
+ step(generator["throw"](value));
37
+ } catch (e) {
38
+ reject(e);
39
+ }
40
+ }
41
+
42
+ function step(result) {
43
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
44
+ }
45
+
46
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
47
+ });
48
+ };
21
49
 
22
50
  // Constants
23
51
  const COLORED_STATUS = {
@@ -38,16 +66,15 @@ const EXTRACTORS = {
38
66
  args: tsk => tsk.args.join(' ')
39
67
  }; // Command
40
68
 
41
- class ListCommand extends _project.ProjectCommand {
42
- constructor(...args) {
43
- super(...args);
69
+ class ListCommand extends _jillCommon.ProjectCommand {
70
+ constructor() {
71
+ super(...arguments); // Attributes
44
72
 
45
- _defineProperty(this, "name", ['list', 'ls']);
73
+ this.name = ['list', 'ls'];
74
+ this.description = 'List myr tasks';
75
+ } // Methods
46
76
 
47
- _defineProperty(this, "description", 'List myr tasks');
48
- }
49
77
 
50
- // Methods
51
78
  buildExtractor(attrs) {
52
79
  return tsk => {
53
80
  const data = {};
@@ -69,7 +96,7 @@ class ListCommand extends _project.ProjectCommand {
69
96
  }).option('attrs', {
70
97
  type: 'array',
71
98
  choices: ['identifier', 'status', 'cwd', 'command', 'cmd', 'args'],
72
- default: undefined,
99
+ default: [],
73
100
  group: 'Format:',
74
101
  desc: 'Select printed attributes'
75
102
  }).option('headers', {
@@ -79,7 +106,6 @@ class ListCommand extends _project.ProjectCommand {
79
106
  }).option('long', {
80
107
  alias: 'l',
81
108
  type: 'boolean',
82
- conflicts: 'attrs',
83
109
  group: 'Format:',
84
110
  desc: 'Prints name, version and root of all workspaces'
85
111
  }).option('json', {
@@ -89,39 +115,53 @@ class ListCommand extends _project.ProjectCommand {
89
115
  }));
90
116
  }
91
117
 
92
- async run(args) {
93
- await super.run(args); // Spawn task
118
+ run(args) {
119
+ const _super = Object.create(null, {
120
+ run: {
121
+ get: () => super.run
122
+ }
123
+ });
94
124
 
95
- this.spinner.start('Connecting to myr');
96
- const client = new _myrClient.MyrClient(this.project);
97
- this.spinner.start('Requesting tasks');
98
- const tasks = await client.tasks();
99
- this.spinner.stop(); // Build data
125
+ var _a;
100
126
 
101
- let attrs = args.attrs || DEFAULT_ATTRIBUTES;
127
+ return __awaiter(this, void 0, void 0, function* () {
128
+ yield _super.run.call(this, args); // Spawn task
102
129
 
103
- if (!args.attrs && args.long) {
104
- attrs = LONG_ATTRIBUTES;
105
- }
130
+ this.spinner.start('Connecting to myr');
131
+ const client = new _myrClient.MyrClient(this.project);
132
+ this.spinner.start('Requesting tasks');
133
+ const tasks = yield client.tasks();
134
+ this.spinner.stop(); // Build data
106
135
 
107
- const data = tasks.filter(tsk => args.all || tsk.status === 'running').map(tsk => this.buildExtractor(attrs)(tsk)); // Print data
136
+ let attrs = args.attrs;
108
137
 
109
- const list = new _cliList.CliList();
138
+ if (args.attrs.length === 0) {
139
+ if (args.long) {
140
+ attrs = LONG_ATTRIBUTES;
141
+ } else {
142
+ attrs = DEFAULT_ATTRIBUTES;
143
+ }
144
+ }
110
145
 
111
- if (args.headers ?? attrs.length > 1) {
112
- list.setHeaders(attrs);
113
- }
146
+ const data = tasks.filter(tsk => args.all || tsk.status === 'running').map(tsk => this.buildExtractor(attrs)(tsk)); // Print data
114
147
 
115
- for (const d of data) {
116
- list.add(attrs.map(attr => d[attr] || ''));
117
- }
148
+ const list = new _jillCommon.CliList();
118
149
 
119
- for (const d of list.lines()) {
120
- this.log(d);
121
- }
150
+ if ((_a = args.headers) !== null && _a !== void 0 ? _a : attrs.length > 1) {
151
+ list.setHeaders(attrs);
152
+ }
153
+
154
+ for (const d of data) {
155
+ list.add(attrs.map(attr => d[attr] || ''));
156
+ }
157
+
158
+ for (const d of list.lines()) {
159
+ this.log(d);
160
+ }
161
+ });
122
162
  }
123
163
 
124
164
  }
125
165
 
126
166
  exports.ListCommand = ListCommand;
127
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15ci9jb21tYW5kcy9saXN0LmNvbW1hbmQudHMiXSwibmFtZXMiOlsiQ09MT1JFRF9TVEFUVVMiLCJibG9ja2VkIiwiY2hhbGsiLCJ5ZWxsb3ciLCJyZWFkeSIsImJsdWUiLCJydW5uaW5nIiwiZmFpbGVkIiwicmVkIiwiZG9uZSIsImdyZWVuIiwiTE9OR19BVFRSSUJVVEVTIiwiREVGQVVMVF9BVFRSSUJVVEVTIiwiRVhUUkFDVE9SUyIsImlkZW50aWZpZXIiLCJ0c2siLCJncmV5IiwiaWQiLCJzdGF0dXMiLCJjd2QiLCJwYXRoIiwicmVsYXRpdmUiLCJwcm9jZXNzIiwiY29tbWFuZCIsImNtZCIsImFyZ3MiLCJqb2luIiwiTGlzdENvbW1hbmQiLCJQcm9qZWN0Q29tbWFuZCIsImJ1aWxkRXh0cmFjdG9yIiwiYXR0cnMiLCJkYXRhIiwiYXR0ciIsImRlZmluZSIsImJ1aWxkZXIiLCJ5Iiwib3B0aW9uIiwiYWxpYXMiLCJ0eXBlIiwiZ3JvdXAiLCJkZXNjIiwiY2hvaWNlcyIsImRlZmF1bHQiLCJ1bmRlZmluZWQiLCJjb25mbGljdHMiLCJydW4iLCJzcGlubmVyIiwic3RhcnQiLCJjbGllbnQiLCJNeXJDbGllbnQiLCJwcm9qZWN0IiwidGFza3MiLCJzdG9wIiwibG9uZyIsImZpbHRlciIsImFsbCIsIm1hcCIsImxpc3QiLCJDbGlMaXN0IiwiaGVhZGVycyIsImxlbmd0aCIsInNldEhlYWRlcnMiLCJkIiwiYWRkIiwibGluZXMiLCJsb2ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7Ozs7O0FBa0JBO0FBQ0EsTUFBTUEsY0FBMEMsR0FBRztBQUNqREMsRUFBQUEsT0FBTyxFQUFFQyxlQUFNQyxNQUFOLENBQWEsU0FBYixDQUR3QztBQUVqREMsRUFBQUEsS0FBSyxFQUFFRixlQUFNRyxJQUFOLENBQVcsT0FBWCxDQUYwQztBQUdqREMsRUFBQUEsT0FBTyxFQUFFLFNBSHdDO0FBSWpEQyxFQUFBQSxNQUFNLEVB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LEVBQWI7O0FBRUEsUUFBSWpDLElBQUksQ0FBQ2tDLE9BQUwsSUFBaUI3QixLQUFLLENBQUM4QixNQUFOLEdBQWUsQ0FBcEMsRUFBd0M7QUFDdENILE1BQUFBLElBQUksQ0FBQ0ksVUFBTCxDQUFnQi9CLEtBQWhCO0FBQ0Q7O0FBRUQsU0FBSyxNQUFNZ0MsQ0FBWCxJQUFnQi9CLElBQWhCLEVBQXNCO0FBQ3BCMEIsTUFBQUEsSUFBSSxDQUFDTSxHQUFMLENBQVNqQyxLQUFLLENBQUMwQixHQUFOLENBQVV4QixJQUFJLElBQUk4QixDQUFDLENBQUM5QixJQUFELENBQUQsSUFBVyxFQUE3QixDQUFUO0FBQ0Q7O0FBRUQsU0FBSyxNQUFNOEIsQ0FBWCxJQUFnQkwsSUFBSSxDQUFDTyxLQUFMLEVBQWhCLEVBQThCO0FBQzVCLFdBQUtDLEdBQUwsQ0FBU0gsQ0FBVDtBQUNEO0FBQ0Y7O0FBMUZ1RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhc2tTdGF0dXMgfSBmcm9tICdAanVqdWxlZ28vamlsbC1jb3JlJztcbmltcG9ydCB7IFRhc2sgfSBmcm9tICdAanVqdWxlZ28vamlsbC1teXInO1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgeyBQcm9qZWN0QXJncywgUHJvamVjdENvbW1hbmQgfSBmcm9tICcuLi8uLi9wcm9qZWN0LmNvbW1hbmQnO1xuaW1wb3J0IHsgTXlyQ2xpZW50IH0gZnJvbSAnLi4vbXlyLWNsaWVudCc7XG5pbXBvcnQgeyBDbGlMaXN0IH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xpLWxpc3QnO1xuaW1wb3J0IHsgQXJndW1lbnRzLCBCdWlsZGVyIH0gZnJvbSAnLi4vLi4vY29tbWFuZCc7XG5cbi8vIFR5cGVzXG5leHBvcnQgdHlwZSBBdHRyaWJ1dGUgPSAnaWRlbnRpZmllcicgfCAnc3RhdHVzJyB8ICdjd2QnIHwgJ2NvbW1hbmQnIHwgJ2NtZCcgfCAnYXJncyc7XG5leHBvcnQgdHlwZSBEYXRhID0gUGFydGlhbDxSZWNvcmQ8QXR0cmlidXRlLCBzdHJpbmc+PjtcblxudHlwZSBFeHRyYWN0b3I8VD4gPSAodHNrOiBUYXNrKSA9PiBUO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RBcmdzIGV4dGVuZHMgUHJvamVjdEFyZ3Mge1xuICBhbGw6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgYXR0cnM6IEF0dHJpYnV0ZVtdIHwgdW5kZWZpbmVkO1xuICBoZWFkZXJzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBsb25nOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBqc29uOiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vLyBDb25zdGFudHNcbmNvbnN0IENPTE9SRURfU1RBVFVTOiBSZWNvcmQ8VGFza1N0YXR1cywgc3RyaW5nPiA9IHtcbiAgYmxvY2tlZDogY2hhbGsueWVsbG93KCdibG9ja2VkJyksXG4gIHJlYWR5OiBjaGFsay5ibHVlKCdyZWFkeScpLFxuICBydW5uaW5nOiAncnVubmluZycsXG4gIGZhaWxlZDogY2hhbGsucmVkKCdmYWlsZWQnKSxcbiAgZG9uZTogY2hhbGsuZ3JlZW4oJ2RvbmUnKVxufTtcblxuY29uc3QgTE9OR19BVFRSSUJVVEVTOiBBdHRyaWJ1dGVbXSA9IFsnaWRlbnRpZmllcicsICdzdGF0dXMnLCAnY3dkJywgJ2NvbW1hbmQnXTtcbmNvbnN0IERFRkFVTFRfQVRUUklCVVRFUzogQXR0cmlidXRlW10gPSBbJ2lkZW50aWZpZXInLCAnY29tbWFuZCddO1xuXG5jb25zdCBFWFRSQUNUT1JTOiBSZWNvcmQ8QXR0cmlidXRlLCBFeHRyYWN0b3I8c3RyaW5nIHwgdW5kZWZpbmVkPj4gPSB7XG4gIGlkZW50aWZpZXI6IHRzayA9PiBjaGFsay5ncmV5KHRzay5pZCksXG4gIHN0YXR1czogdHNrID0+IENPTE9SRURfU1RBVFVTW3Rzay5zdGF0dXNdLFxuICBjd2Q6IHRzayA9PiBwYXRoLnJlbGF0aXZlKHByb2Nlc3MuY3dkKCksIHRzay5jd2QpIHx8ICcuJyxcbiAgY29tbWFuZDogdHNrID0+IGAke3Rzay5jbWR9ICR7dHNrLmFyZ3Muam9pbignICcpfWAsXG4gIGNtZDogdHNrID0+IHRzay5jbWQsXG4gIGFyZ3M6IHRzayA9PiB0c2suYXJncy5qb2luKCcgJylcbn07XG5cbi8vIENvbW1hbmRcbmV4cG9ydCBjbGFzcyBMaXN0Q29tbWFuZCBleHRlbmRzIFByb2plY3RDb21tYW5kPExpc3RBcmdzPiB7XG4gIC8vIEF0dHJpYnV0ZXNcbiAgcmVhZG9ubHkgbmFtZSA9IFsnbGlzdCcsICdscyddO1xuICByZWFkb25seSBkZXNjcmlwdGlvbiA9ICdMaXN0IG15ciB0YXNrcyc7XG5cbiAgLy8gTWV0aG9kc1xuICBwcml2YXRlIGJ1aWxkRXh0cmFjdG9yKGF0dHJzOiBBdHRyaWJ1dGVbXSk6IEV4dHJhY3RvcjxEYXRhPiB7XG4gICAgcmV0dXJuICh0c2spID0+IHtcbiAgICAgIGNvbnN0IGRhdGE6IERhdGEgPSB7fTtcblxuICAgICAgZm9yIChjb25zdCBhdHRyIG9mIGF0dHJzKSB7XG4gICAgICAgIGRhdGFbYXR0cl0gPSBFWFRSQUNUT1JTW2F0dHJdKHRzayk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVmaW5lPFQsIFU+KGJ1aWxkZXI6IEJ1aWxkZXI8VCwgVT4pOiBCdWlsZGVyPFQsIFUgJiBMaXN0QXJncz4ge1xuICAgIHJldHVybiBzdXBlci5kZWZpbmUoeSA9PiBidWlsZGVyKHkpXG4gICAgICAub3B0aW9uKCdhbGwnLCB7XG4gICAgICAgIGFsaWFzOiAnYScsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZ3JvdXA6ICdGaWx0ZXJzOicsXG4gICAgICAgIGRlc2M6ICdTaG93IGFsbCB0YXNrcyAoYnkgZGVmYXVsdCBsaXN0IHNob3dzIG9ubHkgcnVubmluZyB0YXNrcyknLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb24oJ2F0dHJzJywge1xuICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICBjaG9pY2VzOiBbJ2lkZW50aWZpZXInLCAnc3RhdHVzJywgJ2N3ZCcgLCdjb21tYW5kJywgJ2NtZCcsICdhcmdzJ10sXG4gICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCBhcyBBdHRyaWJ1dGVbXSB8IHVuZGVmaW5lZCxcbiAgICAgICAgZ3JvdXA6ICdGb3JtYXQ6JyxcbiAgICAgICAgZGVzYzogJ1NlbGVjdCBwcmludGVkIGF0dHJpYnV0ZXMnXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignaGVhZGVycycsIHtcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBncm91cDogJ0Zvcm1hdDonLFxuICAgICAgICBkZXNjOiAnUHJpbnRzIGNvbHVtbnMgaGVhZGVycydcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdsb25nJywge1xuICAgICAgICBhbGlhczogJ2wnLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGNvbmZsaWN0czogJ2F0dHJzJyxcbiAgICAgICAgZ3JvdXA6ICdGb3JtYXQ6JyxcbiAgICAgICAgZGVzYzogJ1ByaW50cyBuYW1lLCB2ZXJzaW9uIGFuZCByb290IG9mIGFsbCB3b3Jrc3BhY2VzJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdqc29uJywge1xuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGdyb3VwOiAnRm9ybWF0OicsXG4gICAgICAgIGRlc2M6ICdQcmludHMgZGF0YSBhcyBhIEpTT04gYXJyYXknLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJ1bihhcmdzOiBBcmd1bWVudHM8TGlzdEFyZ3M+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIucnVuKGFyZ3MpO1xuXG4gICAgLy8gU3Bhd24gdGFza1xuICAgIHRoaXMuc3Bpbm5lci5zdGFydCgnQ29ubmVjdGluZyB0byBteXInKTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgTXlyQ2xpZW50KHRoaXMucHJvamVjdCk7XG5cbiAgICB0aGlzLnNwaW5uZXIuc3RhcnQoJ1JlcXVlc3RpbmcgdGFza3MnKTtcbiAgICBjb25zdCB0YXNrcyA9IGF3YWl0IGNsaWVudC50YXNrcygpO1xuXG4gICAgdGhpcy5zcGlubmVyLnN0b3AoKTtcblxuICAgIC8vIEJ1aWxkIGRhdGFcbiAgICBsZXQgYXR0cnMgPSBhcmdzLmF0dHJzIGFzIEF0dHJpYnV0ZVtdIHx8IERFRkFVTFRfQVRUUklCVVRFUztcblxuICAgIGlmICghYXJncy5hdHRycyAmJiBhcmdzLmxvbmcpIHtcbiAgICAgIGF0dHJzID0gTE9OR19BVFRSSUJVVEVTO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSB0YXNrc1xuICAgICAgLmZpbHRlcih0c2sgPT4gYXJncy5hbGwgfHwgdHNrLnN0YXR1cyA9PT0gJ3J1bm5pbmcnKVxuICAgICAgLm1hcCh0c2sgPT4gdGhpcy5idWlsZEV4dHJhY3RvcihhdHRycykodHNrKSk7XG5cbiAgICAvLyBQcmludCBkYXRhXG4gICAgY29uc3QgbGlzdCA9IG5ldyBDbGlMaXN0KCk7XG5cbiAgICBpZiAoYXJncy5oZWFkZXJzID8/IChhdHRycy5sZW5ndGggPiAxKSkge1xuICAgICAgbGlzdC5zZXRIZWFkZXJzKGF0dHJzKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGQgb2YgZGF0YSkge1xuICAgICAgbGlzdC5hZGQoYXR0cnMubWFwKGF0dHIgPT4gZFthdHRyXSB8fCAnJykpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZCBvZiBsaXN0LmxpbmVzKCkpIHtcbiAgICAgIHRoaXMubG9nKGQpO1xuICAgIH1cbiAgfVxufSJdLCJmaWxlIjoibXlyL2NvbW1hbmRzL2xpc3QuY29tbWFuZC5qcyJ9
167
+ //# sourceMappingURL=list.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/commands/list.command.ts","myr/commands/list.command.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","COLORED_STATUS","blocked","chalk","yellow","ready","blue","running","failed","red","green","LONG_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","identifier","tsk","grey","id","status","cwd","path","relative","process","command","cmd","args","join","ListCommand","ProjectCommand","constructor","arguments","name","description","buildExtractor","attrs","data","attr","define","builder","y","option","alias","type","group","desc","choices","default","run","_super","Object","create","get","_a","call","spinner","start","client","MyrClient","project","tasks","stop","length","long","filter","all","map","list","CliList","headers","setHeaders","d","add","lines","log"],"mappings":"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","file":"list.command.js","sourcesContent":["import { Arguments, Builder, CliList, ProjectArgs, ProjectCommand } from '@jujulego/jill-common';\nimport { TaskStatus } from '@jujulego/jill-core';\nimport { Task } from '@jujulego/jill-myr';\nimport chalk from 'chalk';\nimport path from 'path';\n\nimport { MyrClient } from '../myr-client';\n\n// Types\nexport type Attribute = 'identifier' | 'status' | 'cwd' | 'command' | 'cmd' | 'args';\nexport type Data = Partial<Record<Attribute, string>>;\n\ntype Extractor<T> = (tsk: Task) => T;\n\nexport interface ListArgs extends ProjectArgs {\n all: boolean | undefined;\n\n attrs: Attribute[];\n headers: boolean | undefined;\n long: boolean | undefined;\n json: boolean | undefined;\n}\n\n// Constants\nconst COLORED_STATUS: Record<TaskStatus, string> = {\n blocked: chalk.yellow('blocked'),\n ready: chalk.blue('ready'),\n running: 'running',\n failed: chalk.red('failed'),\n done: chalk.green('done')\n};\n\nconst LONG_ATTRIBUTES: Attribute[] = ['identifier', 'status', 'cwd', 'command'];\nconst DEFAULT_ATTRIBUTES: Attribute[] = ['identifier', 'command'];\n\nconst EXTRACTORS: Record<Attribute, Extractor<string | undefined>> = {\n identifier: tsk => chalk.grey(tsk.id),\n status: tsk => COLORED_STATUS[tsk.status],\n cwd: tsk => path.relative(process.cwd(), tsk.cwd) || '.',\n command: tsk => `${tsk.cmd} ${tsk.args.join(' ')}`,\n cmd: tsk => tsk.cmd,\n args: tsk => tsk.args.join(' ')\n};\n\n// Command\nexport class ListCommand extends ProjectCommand<ListArgs> {\n // Attributes\n readonly name = ['list', 'ls'];\n readonly description = 'List myr tasks';\n\n // Methods\n private buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (tsk) => {\n const data: Data = {};\n\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](tsk);\n }\n\n return data;\n };\n }\n\n protected define<T, U>(builder: Builder<T, U>): Builder<T, U & ListArgs> {\n return super.define(y => builder(y)\n .option('all', {\n alias: 'a',\n type: 'boolean',\n group: 'Filters:',\n desc: 'Show all tasks (by default list shows only running tasks)',\n })\n .option('attrs', {\n type: 'array',\n choices: ['identifier', 'status', 'cwd' ,'command', 'cmd', 'args'],\n default: [] as Attribute[],\n group: 'Format:',\n desc: 'Select printed attributes'\n })\n .option('headers', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints columns headers'\n })\n .option('long', {\n alias: 'l',\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints name, version and root of all workspaces',\n })\n .option('json', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints data as a JSON array',\n })\n );\n }\n\n protected async run(args: Arguments<ListArgs>): Promise<void> {\n await super.run(args);\n\n // Spawn task\n this.spinner.start('Connecting to myr');\n const client = new MyrClient(this.project);\n\n this.spinner.start('Requesting tasks');\n const tasks = await client.tasks();\n\n this.spinner.stop();\n\n // Build data\n let attrs = args.attrs;\n\n if (args.attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n } else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n\n const data = tasks\n .filter(tsk => args.all || tsk.status === 'running')\n .map(tsk => this.buildExtractor(attrs)(tsk));\n\n // Print data\n const list = new CliList();\n\n if (args.headers ?? (attrs.length > 1)) {\n list.setHeaders(attrs);\n }\n\n for (const d of data) {\n list.add(attrs.map(attr => d[attr] || ''));\n }\n\n for (const d of list.lines()) {\n this.log(d);\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};\nimport { CliList, ProjectCommand } from '@jujulego/jill-common';\nimport chalk from 'chalk';\nimport path from 'path';\nimport { MyrClient } from '../myr-client';\n// Constants\nconst COLORED_STATUS = {\n blocked: chalk.yellow('blocked'),\n ready: chalk.blue('ready'),\n running: 'running',\n failed: chalk.red('failed'),\n done: chalk.green('done')\n};\nconst LONG_ATTRIBUTES = ['identifier', 'status', 'cwd', 'command'];\nconst DEFAULT_ATTRIBUTES = ['identifier', 'command'];\nconst EXTRACTORS = {\n identifier: tsk => chalk.grey(tsk.id),\n status: tsk => COLORED_STATUS[tsk.status],\n cwd: tsk => path.relative(process.cwd(), tsk.cwd) || '.',\n command: tsk => `${tsk.cmd} ${tsk.args.join(' ')}`,\n cmd: tsk => tsk.cmd,\n args: tsk => tsk.args.join(' ')\n};\n// Command\nexport class ListCommand extends ProjectCommand {\n constructor() {\n super(...arguments);\n // Attributes\n this.name = ['list', 'ls'];\n this.description = 'List myr tasks';\n }\n // Methods\n buildExtractor(attrs) {\n return (tsk) => {\n const data = {};\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](tsk);\n }\n return data;\n };\n }\n define(builder) {\n return super.define(y => builder(y)\n .option('all', {\n alias: 'a',\n type: 'boolean',\n group: 'Filters:',\n desc: 'Show all tasks (by default list shows only running tasks)',\n })\n .option('attrs', {\n type: 'array',\n choices: ['identifier', 'status', 'cwd', 'command', 'cmd', 'args'],\n default: [],\n group: 'Format:',\n desc: 'Select printed attributes'\n })\n .option('headers', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints columns headers'\n })\n .option('long', {\n alias: 'l',\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints name, version and root of all workspaces',\n })\n .option('json', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints data as a JSON array',\n }));\n }\n run(args) {\n const _super = Object.create(null, {\n run: { get: () => super.run }\n });\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.run.call(this, args);\n // Spawn task\n this.spinner.start('Connecting to myr');\n const client = new MyrClient(this.project);\n this.spinner.start('Requesting tasks');\n const tasks = yield client.tasks();\n this.spinner.stop();\n // Build data\n let attrs = args.attrs;\n if (args.attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n }\n else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n const data = tasks\n .filter(tsk => args.all || tsk.status === 'running')\n .map(tsk => this.buildExtractor(attrs)(tsk));\n // Print data\n const list = new CliList();\n if ((_a = args.headers) !== null && _a !== void 0 ? _a : (attrs.length > 1)) {\n list.setHeaders(attrs);\n }\n for (const d of data) {\n list.add(attrs.map(attr => d[attr] || ''));\n }\n for (const d of list.lines()) {\n this.log(d);\n }\n });\n }\n}"]}
@@ -1,5 +1,4 @@
1
- import { ProjectArgs, ProjectCommand } from '../../project.command';
2
- import { Arguments, Builder } from '../../command';
1
+ import { Arguments, Builder, ProjectArgs, ProjectCommand } from '@jujulego/jill-common';
3
2
  export interface LogsArgs extends ProjectArgs {
4
3
  follow: boolean;
5
4
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["myr/commands/logs.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOxF,MAAM,WAAW,QAAS,SAAQ,WAAW;IAC3C,MAAM,EAAE,OAAO,CAAC;CACjB;AAcD,qBAAa,WAAY,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAEvD,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,sBAAsB;IAG1C,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;cAWxD,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAwB9D","file":"logs.command.d.ts","sourcesContent":["import { Arguments, Builder, ProjectArgs, ProjectCommand } from '@jujulego/jill-common';\nimport { format } from 'winston';\nimport chalk from 'chalk';\n\nimport { MyrClient } from '../myr-client';\n\n// Types\nexport interface LogsArgs extends ProjectArgs {\n follow: boolean;\n}\n\n// Utils\nconst printLog = format.combine(\n { transform: (info) => Object.assign(info, { [Symbol.for('level')]: info.level }) },\n { transform: (info) => Object.assign(info, { context: info.task?.substr(0, 8) || info.context }) },\n format.printf(({ context, message, timestamp }) => context\n ? chalk`[jill-myr] {white ${new Date(timestamp).toLocaleString()}} {grey [${context}]} ${message}`\n : chalk`[jill-myr] {white ${new Date(timestamp).toLocaleString()}} ${message}`\n ),\n format.colorize({ all: true }),\n);\n\n// Command\nexport class LogsCommand extends ProjectCommand<LogsArgs> {\n // Attributes\n readonly name = 'logs';\n readonly description = 'Request myr logs';\n\n // Methods\n protected define<T, U>(builder: Builder<T, U>): Builder<T, U & LogsArgs> {\n return super.define(y => builder(y)\n .option('follow', {\n alias: 'f',\n type: 'boolean',\n default: false,\n description: 'Subscribe to logs stream'\n })\n );\n }\n\n protected async run(args: Arguments<LogsArgs>): Promise<void> {\n await super.run(args);\n\n // Spawn task\n this.spinner.start('Connecting to myr');\n const client = new MyrClient(this.project);\n\n this.spinner.start('Requesting logs');\n const logs = await client.logs();\n this.spinner.stop();\n\n for (const log of logs) {\n printLog.transform(log);\n this.log(log[Symbol.for('message')]);\n }\n\n // Follow\n if (args.follow) {\n for await (const log of client.logs$()) {\n printLog.transform(log);\n this.log(log[Symbol.for('message')]);\n }\n }\n }\n}\n"]}