@jujulego/jill 2.1.0-alpha.2 → 2.1.0-alpha.4

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 (166) hide show
  1. package/dist/239.js +3 -0
  2. package/dist/239.js.LICENSE.txt +73 -0
  3. package/dist/239.js.map +1 -0
  4. package/dist/main.js +2 -29
  5. package/dist/main.js.map +1 -1
  6. package/dist/runtime.js +2 -0
  7. package/dist/runtime.js.map +1 -0
  8. package/package.json +52 -51
  9. package/dist/commands/each.d.ts +0 -16
  10. package/dist/commands/each.d.ts.map +0 -1
  11. package/dist/commands/each.js +0 -118
  12. package/dist/commands/each.js.map +0 -1
  13. package/dist/commands/group.d.ts +0 -12
  14. package/dist/commands/group.d.ts.map +0 -1
  15. package/dist/commands/group.js +0 -93
  16. package/dist/commands/group.js.map +0 -1
  17. package/dist/commands/list.d.ts +0 -23
  18. package/dist/commands/list.d.ts.map +0 -1
  19. package/dist/commands/list.js +0 -170
  20. package/dist/commands/list.js.map +0 -1
  21. package/dist/commands/run.d.ts +0 -8
  22. package/dist/commands/run.d.ts.map +0 -1
  23. package/dist/commands/run.js +0 -71
  24. package/dist/commands/run.js.map +0 -1
  25. package/dist/commands/tree.d.ts +0 -3
  26. package/dist/commands/tree.d.ts.map +0 -1
  27. package/dist/commands/tree.js +0 -35
  28. package/dist/commands/tree.js.map +0 -1
  29. package/dist/filters/affected.filter.d.ts +0 -11
  30. package/dist/filters/affected.filter.d.ts.map +0 -1
  31. package/dist/filters/affected.filter.js +0 -82
  32. package/dist/filters/affected.filter.js.map +0 -1
  33. package/dist/filters/index.d.ts +0 -4
  34. package/dist/filters/index.d.ts.map +0 -1
  35. package/dist/filters/index.js +0 -21
  36. package/dist/filters/index.js.map +0 -1
  37. package/dist/filters/pipeline.d.ts +0 -11
  38. package/dist/filters/pipeline.d.ts.map +0 -1
  39. package/dist/filters/pipeline.js +0 -34
  40. package/dist/filters/pipeline.js.map +0 -1
  41. package/dist/filters/private.filter.d.ts +0 -7
  42. package/dist/filters/private.filter.d.ts.map +0 -1
  43. package/dist/filters/private.filter.js +0 -20
  44. package/dist/filters/private.filter.js.map +0 -1
  45. package/dist/filters/scripts.filter.d.ts +0 -7
  46. package/dist/filters/scripts.filter.d.ts.map +0 -1
  47. package/dist/filters/scripts.filter.js +0 -21
  48. package/dist/filters/scripts.filter.js.map +0 -1
  49. package/dist/git.d.ts +0 -16
  50. package/dist/git.d.ts.map +0 -1
  51. package/dist/git.js +0 -94
  52. package/dist/git.js.map +0 -1
  53. package/dist/main.d.ts +0 -1
  54. package/dist/main.d.ts.map +0 -1
  55. package/dist/middlewares/global-config.d.ts +0 -5
  56. package/dist/middlewares/global-config.d.ts.map +0 -1
  57. package/dist/middlewares/global-config.js +0 -36
  58. package/dist/middlewares/global-config.js.map +0 -1
  59. package/dist/middlewares/index.d.ts +0 -4
  60. package/dist/middlewares/index.d.ts.map +0 -1
  61. package/dist/middlewares/index.js +0 -21
  62. package/dist/middlewares/index.js.map +0 -1
  63. package/dist/middlewares/load-project.d.ts +0 -6
  64. package/dist/middlewares/load-project.d.ts.map +0 -1
  65. package/dist/middlewares/load-project.js +0 -41
  66. package/dist/middlewares/load-project.js.map +0 -1
  67. package/dist/middlewares/load-workspace.d.ts +0 -3
  68. package/dist/middlewares/load-workspace.d.ts.map +0 -1
  69. package/dist/middlewares/load-workspace.js +0 -42
  70. package/dist/middlewares/load-workspace.js.map +0 -1
  71. package/dist/middlewares/setup-ink.d.ts +0 -1
  72. package/dist/middlewares/setup-ink.d.ts.map +0 -1
  73. package/dist/middlewares/setup-ink.js +0 -22
  74. package/dist/middlewares/setup-ink.js.map +0 -1
  75. package/dist/project/index.d.ts +0 -2
  76. package/dist/project/index.d.ts.map +0 -1
  77. package/dist/project/index.js +0 -19
  78. package/dist/project/index.js.map +0 -1
  79. package/dist/project/project.d.ts +0 -25
  80. package/dist/project/project.d.ts.map +0 -1
  81. package/dist/project/project.js +0 -190
  82. package/dist/project/project.js.map +0 -1
  83. package/dist/project/workspace.d.ts +0 -34
  84. package/dist/project/workspace.d.ts.map +0 -1
  85. package/dist/project/workspace.js +0 -179
  86. package/dist/project/workspace.js.map +0 -1
  87. package/dist/services/index.d.ts +0 -4
  88. package/dist/services/index.d.ts.map +0 -1
  89. package/dist/services/index.js +0 -21
  90. package/dist/services/index.js.map +0 -1
  91. package/dist/services/inversify.config.d.ts +0 -11
  92. package/dist/services/inversify.config.d.ts.map +0 -1
  93. package/dist/services/inversify.config.js +0 -34
  94. package/dist/services/inversify.config.js.map +0 -1
  95. package/dist/services/logger.service.d.ts +0 -6
  96. package/dist/services/logger.service.d.ts.map +0 -1
  97. package/dist/services/logger.service.js +0 -75
  98. package/dist/services/logger.service.js.map +0 -1
  99. package/dist/services/spinner.service.d.ts +0 -16
  100. package/dist/services/spinner.service.d.ts.map +0 -1
  101. package/dist/services/spinner.service.js +0 -57
  102. package/dist/services/spinner.service.js.map +0 -1
  103. package/dist/services/task-manager.service.d.ts +0 -1
  104. package/dist/services/task-manager.service.d.ts.map +0 -1
  105. package/dist/services/task-manager.service.js +0 -18
  106. package/dist/services/task-manager.service.js.map +0 -1
  107. package/dist/types.d.ts +0 -1
  108. package/dist/types.d.ts.map +0 -1
  109. package/dist/types.js +0 -7
  110. package/dist/types.js.map +0 -1
  111. package/dist/ui/global-spinner.d.ts +0 -2
  112. package/dist/ui/global-spinner.d.ts.map +0 -1
  113. package/dist/ui/global-spinner.js +0 -65
  114. package/dist/ui/global-spinner.js.map +0 -1
  115. package/dist/ui/group-task-spinner.d.ts +0 -6
  116. package/dist/ui/group-task-spinner.d.ts.map +0 -1
  117. package/dist/ui/group-task-spinner.js +0 -54
  118. package/dist/ui/group-task-spinner.js.map +0 -1
  119. package/dist/ui/index.d.ts +0 -8
  120. package/dist/ui/index.d.ts.map +0 -1
  121. package/dist/ui/index.js +0 -25
  122. package/dist/ui/index.js.map +0 -1
  123. package/dist/ui/layout.d.ts +0 -2
  124. package/dist/ui/layout.d.ts.map +0 -1
  125. package/dist/ui/layout.js +0 -20
  126. package/dist/ui/layout.js.map +0 -1
  127. package/dist/ui/list.d.ts +0 -6
  128. package/dist/ui/list.d.ts.map +0 -1
  129. package/dist/ui/list.js +0 -30
  130. package/dist/ui/list.js.map +0 -1
  131. package/dist/ui/static-logs.d.ts +0 -2
  132. package/dist/ui/static-logs.d.ts.map +0 -1
  133. package/dist/ui/static-logs.js +0 -63
  134. package/dist/ui/static-logs.js.map +0 -1
  135. package/dist/ui/task-manager-spinner.d.ts +0 -6
  136. package/dist/ui/task-manager-spinner.d.ts.map +0 -1
  137. package/dist/ui/task-manager-spinner.js +0 -39
  138. package/dist/ui/task-manager-spinner.js.map +0 -1
  139. package/dist/ui/task-name.d.ts +0 -6
  140. package/dist/ui/task-name.d.ts.map +0 -1
  141. package/dist/ui/task-name.js +0 -35
  142. package/dist/ui/task-name.js.map +0 -1
  143. package/dist/ui/task-spinner.d.ts +0 -6
  144. package/dist/ui/task-spinner.d.ts.map +0 -1
  145. package/dist/ui/task-spinner.js +0 -117
  146. package/dist/ui/task-spinner.js.map +0 -1
  147. package/dist/ui/workspace-tree.d.ts +0 -8
  148. package/dist/ui/workspace-tree.d.ts.map +0 -1
  149. package/dist/ui/workspace-tree.js +0 -88
  150. package/dist/ui/workspace-tree.js.map +0 -1
  151. package/dist/utils/index.d.ts +0 -3
  152. package/dist/utils/index.d.ts.map +0 -1
  153. package/dist/utils/index.js +0 -20
  154. package/dist/utils/index.js.map +0 -1
  155. package/dist/utils/streams.d.ts +0 -3
  156. package/dist/utils/streams.d.ts.map +0 -1
  157. package/dist/utils/streams.js +0 -49
  158. package/dist/utils/streams.js.map +0 -1
  159. package/dist/utils/string.d.ts +0 -1
  160. package/dist/utils/string.d.ts.map +0 -1
  161. package/dist/utils/string.js +0 -14
  162. package/dist/utils/string.js.map +0 -1
  163. package/dist/utils/yargs.d.ts +0 -9
  164. package/dist/utils/yargs.d.ts.map +0 -1
  165. package/dist/utils/yargs.js +0 -33
  166. package/dist/utils/yargs.js.map +0 -1
@@ -1,118 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, // Command
6
- "default", {
7
- enumerable: true,
8
- get: ()=>_default
9
- });
10
- const _jsxRuntime = require("react/jsx-runtime");
11
- const _eventTree = require("@jujulego/event-tree");
12
- const _tasks = require("@jujulego/tasks");
13
- const _yargs = /*#__PURE__*/ _interopRequireDefault(require("yargs"));
14
- const _filters = require("../filters");
15
- const _middlewares = require("../middlewares");
16
- const _project = require("../project");
17
- const _services = require("../services");
18
- const _ui = require("../ui");
19
- const _utils = require("../utils");
20
- function _interopRequireDefault(obj) {
21
- return obj && obj.__esModule ? obj : {
22
- default: obj
23
- };
24
- }
25
- const _default = (0, _utils.defineCommand)({
26
- command: 'each <script>',
27
- describe: 'Run script on many workspaces',
28
- builder: (yargs)=>(0, _utils.applyMiddlewares)(yargs, [
29
- _middlewares.setupInk,
30
- _middlewares.loadProject
31
- ])// Run options
32
- .positional('script', {
33
- type: 'string',
34
- demandOption: true
35
- }).option('deps-mode', {
36
- choice: [
37
- 'all',
38
- 'prod',
39
- 'none'
40
- ],
41
- default: 'all',
42
- desc: 'Dependency selection mode:\n' + ' - all = dependencies AND devDependencies\n' + ' - prod = dependencies\n' + ' - none = nothing'
43
- })// Filters
44
- .option('private', {
45
- type: 'boolean',
46
- group: 'Filters:',
47
- desc: 'Print only private workspaces'
48
- })// Affected filter
49
- .option('affected', {
50
- alias: 'a',
51
- type: 'string',
52
- coerce: (rev)=>rev === '' ? 'master' : rev,
53
- group: 'Affected:',
54
- desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\n' + 'Replaces %name by workspace name.'
55
- }).option('affected-rev-sort', {
56
- type: 'string',
57
- group: 'Affected:',
58
- desc: 'Sort applied to git tag / git branch command'
59
- }).option('affected-rev-fallback', {
60
- type: 'string',
61
- default: 'master',
62
- group: 'Affected:',
63
- desc: 'Fallback revision, used if no revision matching the given format is found'
64
- }),
65
- async handler (args) {
66
- const app = _services.container.get(_services.INK_APP);
67
- const project = _services.container.getNamed(_project.Project, _services.CURRENT);
68
- const manager = _services.container.get(_tasks.TaskManager);
69
- const spinner = _services.container.get(_services.SpinnerService);
70
- try {
71
- spinner.spin('Loading workspaces ...');
72
- // Setup pipeline
73
- const pipeline = new _filters.Pipeline();
74
- pipeline.add(new _filters.ScriptsFilter([
75
- args.script
76
- ]));
77
- if (args.private !== undefined) {
78
- pipeline.add(new _filters.PrivateFilter(args.private));
79
- }
80
- if (args.affected !== undefined) {
81
- pipeline.add(new _filters.AffectedFilter(args.affected, args.affectedRevFallback, args.affectedRevSort));
82
- }
83
- // Extract arguments
84
- const rest = args._.map((arg)=>arg.toString());
85
- if (rest[0] === 'each') {
86
- rest.splice(0, 1);
87
- }
88
- // Create script tasks
89
- const tasks = new _tasks.TaskSet(manager);
90
- for await (const wks of pipeline.filter(project.workspaces())){
91
- tasks.add(await wks.run(args.script, rest, {
92
- buildDeps: args.depsMode
93
- }));
94
- }
95
- if (tasks.tasks.length === 0) {
96
- spinner.failed('No workspace found !');
97
- return _yargs.default.exit(1, new Error('No workspace found !'));
98
- }
99
- spinner.stop();
100
- // Render
101
- app.rerender(/*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.Layout, {
102
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.TaskManagerSpinner, {
103
- manager: manager
104
- })
105
- }));
106
- // Start and wait for result
107
- tasks.start();
108
- const result = await (0, _eventTree.waitForEvent)(tasks, 'finished');
109
- if (result.failed > 0) {
110
- return _yargs.default.exit(1, new Error(`${result.failed} tasks failed !`));
111
- }
112
- } finally{
113
- spinner.stop();
114
- }
115
- }
116
- });
117
-
118
- //# sourceMappingURL=each.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["commands/each.js"],"sourcesContent":["import { waitForEvent } from '@jujulego/event-tree';\nimport { TaskManager, TaskSet } from '@jujulego/tasks';\nimport ink from 'ink';\nimport yargs from 'yargs';\n\nimport { AffectedFilter, Pipeline, PrivateFilter, ScriptsFilter } from '../filters';\nimport { loadProject, setupInk } from '../middlewares';\nimport { Project, WorkspaceDepsMode } from '../project';\nimport { container, CURRENT, INK_APP, SpinnerService } from '../services';\nimport { Layout, TaskManagerSpinner } from '../ui';\nimport { applyMiddlewares, defineCommand } from '../utils';\n\n// Command\nexport default defineCommand({\n command: 'each <script>',\n describe: 'Run script on many workspaces',\n builder: (yargs) =>\n applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n ])\n // Run options\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all' as WorkspaceDepsMode,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n\n // Filters\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n\n // Affected filter\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev: string) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n }),\n async handler(args) {\n const app = container.get<ink.Instance>(INK_APP);\n const project = container.getNamed(Project, CURRENT);\n const manager = container.get(TaskManager);\n const spinner = container.get(SpinnerService);\n\n try {\n spinner.spin('Loading workspaces ...');\n\n // Setup pipeline\n const pipeline = new Pipeline();\n pipeline.add(new ScriptsFilter([args.script]));\n\n if (args.private !== undefined) {\n pipeline.add(new PrivateFilter(args.private));\n }\n\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n args.affected,\n args.affectedRevFallback,\n args.affectedRevSort\n ));\n }\n\n // Extract arguments\n const rest = args._.map(arg => arg.toString());\n\n if (rest[0] === 'each') {\n rest.splice(0, 1);\n }\n\n // Create script tasks\n const tasks = new TaskSet(manager);\n\n for await (const wks of pipeline.filter(project.workspaces())) {\n tasks.add(await wks.run(args.script, rest, {\n buildDeps: args.depsMode,\n }));\n }\n\n if (tasks.tasks.length === 0) {\n spinner.failed('No workspace found !');\n return yargs.exit(1, new Error('No workspace found !'));\n }\n\n spinner.stop();\n\n // Render\n app.rerender(\n <Layout>\n <TaskManagerSpinner manager={manager} />\n </Layout>\n );\n\n // Start and wait for result\n tasks.start();\n\n const result = await waitForEvent(tasks, 'finished');\n\n if (result.failed > 0) {\n return yargs.exit(1, new Error(`${result.failed} tasks failed !`));\n }\n } finally {\n spinner.stop();\n }\n }\n});\n"],"names":["defineCommand","command","describe","builder","yargs","applyMiddlewares","setupInk","loadProject","positional","type","demandOption","option","choice","default","desc","group","alias","coerce","rev","handler","args","app","container","get","INK_APP","project","getNamed","Project","CURRENT","manager","TaskManager","spinner","SpinnerService","spin","pipeline","Pipeline","add","ScriptsFilter","script","private","undefined","PrivateFilter","affected","AffectedFilter","affectedRevFallback","affectedRevSort","rest","_","map","arg","toString","splice","tasks","TaskSet","wks","filter","workspaces","run","buildDeps","depsMode","length","failed","exit","Error","stop","rerender","Layout","TaskManagerSpinner","start","result","waitForEvent"],"mappings":"AAAA;;;;+BAYA,UAAU;AACV;;aAAA;;;2BAb6B;uBACQ;4DAEnB;yBAEqD;6BACjC;yBACK;0BACiB;oBACjB;uBACK;;;;;;MAGhD,WAAeA,IAAAA,oBAAa,EAAC;IAC3BC,SAAS;IACTC,UAAU;IACVC,SAAS,CAACC,QACRC,IAAAA,uBAAgB,EAACD,OAAO;YACtBE,qBAAQ;YACRC,wBAAW;SACZ,CACD,cAAc;SACbC,UAAU,CAAC,UAAU;YAAEC,MAAM;YAAUC,cAAc,IAAI;QAAC,GAC1DC,MAAM,CAAC,aAAa;YACnBC,QAAQ;gBAAC;gBAAO;gBAAQ;aAAO;YAC/BC,SAAS;YACTC,MAAM,iCACJ,gDACA,6BACA;QACJ,EAEA,UAAU;SACTH,MAAM,CAAC,WAAW;YACjBF,MAAM;YACNM,OAAO;YACPD,MAAM;QACR,EAEA,kBAAkB;SACjBH,MAAM,CAAC,YAAY;YAClBK,OAAO;YACPP,MAAM;YACNQ,QAAQ,CAACC,MAAgBA,QAAQ,KAAK,WAAWA,GAAG;YACpDH,OAAO;YACPD,MAAM,wHACJ;QACJ,GACCH,MAAM,CAAC,qBAAqB;YAC3BF,MAAM;YACNM,OAAO;YACPD,MAAM;QACR,GACCH,MAAM,CAAC,yBAAyB;YAC/BF,MAAM;YACNI,SAAS;YACTE,OAAO;YACPD,MAAM;QACR;IACF,MAAMK,SAAQC,IAAI,EAAE;QAClB,MAAMC,MAAMC,mBAAS,CAACC,GAAG,CAAeC,iBAAO;QAC/C,MAAMC,UAAUH,mBAAS,CAACI,QAAQ,CAACC,gBAAO,EAAEC,iBAAO;QACnD,MAAMC,UAAUP,mBAAS,CAACC,GAAG,CAACO,kBAAW;QACzC,MAAMC,UAAUT,mBAAS,CAACC,GAAG,CAACS,wBAAc;QAE5C,IAAI;YACFD,QAAQE,IAAI,CAAC;YAEb,iBAAiB;YACjB,MAAMC,WAAW,IAAIC,iBAAQ;YAC7BD,SAASE,GAAG,CAAC,IAAIC,sBAAa,CAAC;gBAACjB,KAAKkB,MAAM;aAAC;YAE5C,IAAIlB,KAAKmB,OAAO,KAAKC,WAAW;gBAC9BN,SAASE,GAAG,CAAC,IAAIK,sBAAa,CAACrB,KAAKmB,OAAO;YAC7C,CAAC;YAED,IAAInB,KAAKsB,QAAQ,KAAKF,WAAW;gBAC/BN,SAASE,GAAG,CAAC,IAAIO,uBAAc,CAC7BvB,KAAKsB,QAAQ,EACbtB,KAAKwB,mBAAmB,EACxBxB,KAAKyB,eAAe;YAExB,CAAC;YAED,oBAAoB;YACpB,MAAMC,OAAO1B,KAAK2B,CAAC,CAACC,GAAG,CAACC,CAAAA,MAAOA,IAAIC,QAAQ;YAE3C,IAAIJ,IAAI,CAAC,EAAE,KAAK,QAAQ;gBACtBA,KAAKK,MAAM,CAAC,GAAG;YACjB,CAAC;YAED,sBAAsB;YACtB,MAAMC,QAAQ,IAAIC,cAAO,CAACxB;YAE1B,WAAW,MAAMyB,OAAOpB,SAASqB,MAAM,CAAC9B,QAAQ+B,UAAU,IAAK;gBAC7DJ,MAAMhB,GAAG,CAAC,MAAMkB,IAAIG,GAAG,CAACrC,KAAKkB,MAAM,EAAEQ,MAAM;oBACzCY,WAAWtC,KAAKuC,QAAQ;gBAC1B;YACF;YAEA,IAAIP,MAAMA,KAAK,CAACQ,MAAM,KAAK,GAAG;gBAC5B7B,QAAQ8B,MAAM,CAAC;gBACf,OAAOzD,cAAK,CAAC0D,IAAI,CAAC,GAAG,IAAIC,MAAM;YACjC,CAAC;YAEDhC,QAAQiC,IAAI;YAEZ,SAAS;YACT3C,IAAI4C,QAAQ,eACV,qBAACC,UAAM;0BACL,cAAA,qBAACC,sBAAkB;oBAACtC,SAASA;;;YAIjC,4BAA4B;YAC5BuB,MAAMgB,KAAK;YAEX,MAAMC,SAAS,MAAMC,IAAAA,uBAAY,EAAClB,OAAO;YAEzC,IAAIiB,OAAOR,MAAM,GAAG,GAAG;gBACrB,OAAOzD,cAAK,CAAC0D,IAAI,CAAC,GAAG,IAAIC,MAAM,CAAC,EAAEM,OAAOR,MAAM,CAAC,eAAe,CAAC;YAClE,CAAC;QACH,SAAU;YACR9B,QAAQiC,IAAI;QACd;IACF;AACF","file":"each.js"}
@@ -1,12 +0,0 @@
1
- import yargs from 'yargs';
2
- import { WorkspaceDepsMode } from '../project';
3
- declare const _default: yargs.CommandModule<unknown, {
4
- scripts: string[];
5
- } & {
6
- "deps-mode": WorkspaceDepsMode;
7
- } & {
8
- parallel: boolean | undefined;
9
- } & {
10
- sequence: boolean | undefined;
11
- }>;
12
- export default _default;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/commands/group.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAa,iBAAiB,EAAE,MAAM,YAAY,CAAC;;;;;;;;;;AAM1D,wBA8EG","file":"group.d.ts","sourcesContent":["import { waitForEvent } from '@jujulego/event-tree';\nimport { GroupTask, ParallelGroup, SequenceGroup, TaskManager } from '@jujulego/tasks';\nimport ink from 'ink';\nimport yargs from 'yargs';\n\nimport { loadProject, loadWorkspace, setupInk } from '../middlewares';\nimport { Workspace, WorkspaceDepsMode } from '../project';\nimport { container, CURRENT, INK_APP, Logger } from '../services';\nimport { Layout, TaskManagerSpinner } from '../ui';\nimport { applyMiddlewares, defineCommand } from '../utils';\n\n// Command\nexport default defineCommand({\n command: 'group <scripts..>',\n describe: 'Run many scripts inside a workspace',\n builder: (yargs) =>\n applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n loadWorkspace\n ])\n .positional('scripts', { type: 'string', demandOption: true, array: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all' as WorkspaceDepsMode,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n .option('parallel', {\n type: 'boolean',\n desc: 'Runs given scripts in parallel'\n })\n .option('sequence', {\n type: 'boolean',\n desc: 'Runs given scripts in sequence'\n })\n .conflicts('parallel', 'sequence')\n .check((args) => {\n if (!args.parallel && !args.sequence) {\n throw new Error('You must at least set either --parallel or --sequence to select group management method');\n }\n\n return true;\n }),\n async handler(args) {\n const app = container.get<ink.Instance>(INK_APP);\n const workspace = container.getNamed(Workspace, CURRENT);\n const manager = container.get(TaskManager);\n\n // Run script in workspace\n let group: GroupTask;\n\n if (args.sequence) {\n group = new SequenceGroup('In sequence', {}, {\n logger: container.get(Logger),\n });\n } else if (args.parallel) {\n group = new ParallelGroup('In parallel', {}, {\n logger: container.get(Logger),\n });\n } else {\n throw new Error('You must at least set either --parallel or --sequence to select group management method');\n }\n\n for (const script of args.scripts) {\n const task = await workspace.run(script, [], {\n buildDeps: args.depsMode,\n });\n\n group.add(task);\n }\n\n manager.add(group);\n\n // Render\n app.rerender(\n <Layout>\n <TaskManagerSpinner manager={manager} />\n </Layout>\n );\n\n // Wait for result\n const result = await waitForEvent(group, 'completed');\n\n if (result.status === 'failed') {\n return yargs.exit(1, new Error('Task failed !'));\n }\n }\n});\n"]}
@@ -1,93 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, // Command
6
- "default", {
7
- enumerable: true,
8
- get: ()=>_default
9
- });
10
- const _jsxRuntime = require("react/jsx-runtime");
11
- const _eventTree = require("@jujulego/event-tree");
12
- const _tasks = require("@jujulego/tasks");
13
- const _yargs = /*#__PURE__*/ _interopRequireDefault(require("yargs"));
14
- const _middlewares = require("../middlewares");
15
- const _project = require("../project");
16
- const _services = require("../services");
17
- const _ui = require("../ui");
18
- const _utils = require("../utils");
19
- function _interopRequireDefault(obj) {
20
- return obj && obj.__esModule ? obj : {
21
- default: obj
22
- };
23
- }
24
- const _default = (0, _utils.defineCommand)({
25
- command: 'group <scripts..>',
26
- describe: 'Run many scripts inside a workspace',
27
- builder: (yargs)=>(0, _utils.applyMiddlewares)(yargs, [
28
- _middlewares.setupInk,
29
- _middlewares.loadProject,
30
- _middlewares.loadWorkspace
31
- ]).positional('scripts', {
32
- type: 'string',
33
- demandOption: true,
34
- array: true
35
- }).option('deps-mode', {
36
- choice: [
37
- 'all',
38
- 'prod',
39
- 'none'
40
- ],
41
- default: 'all',
42
- desc: 'Dependency selection mode:\n' + ' - all = dependencies AND devDependencies\n' + ' - prod = dependencies\n' + ' - none = nothing'
43
- }).option('parallel', {
44
- type: 'boolean',
45
- desc: 'Runs given scripts in parallel'
46
- }).option('sequence', {
47
- type: 'boolean',
48
- desc: 'Runs given scripts in sequence'
49
- }).conflicts('parallel', 'sequence').check((args)=>{
50
- if (!args.parallel && !args.sequence) {
51
- throw new Error('You must at least set either --parallel or --sequence to select group management method');
52
- }
53
- return true;
54
- }),
55
- async handler (args) {
56
- const app = _services.container.get(_services.INK_APP);
57
- const workspace = _services.container.getNamed(_project.Workspace, _services.CURRENT);
58
- const manager = _services.container.get(_tasks.TaskManager);
59
- // Run script in workspace
60
- let group;
61
- if (args.sequence) {
62
- group = new _tasks.SequenceGroup('In sequence', {}, {
63
- logger: _services.container.get(_services.Logger)
64
- });
65
- } else if (args.parallel) {
66
- group = new _tasks.ParallelGroup('In parallel', {}, {
67
- logger: _services.container.get(_services.Logger)
68
- });
69
- } else {
70
- throw new Error('You must at least set either --parallel or --sequence to select group management method');
71
- }
72
- for (const script of args.scripts){
73
- const task = await workspace.run(script, [], {
74
- buildDeps: args.depsMode
75
- });
76
- group.add(task);
77
- }
78
- manager.add(group);
79
- // Render
80
- app.rerender(/*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.Layout, {
81
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.TaskManagerSpinner, {
82
- manager: manager
83
- })
84
- }));
85
- // Wait for result
86
- const result = await (0, _eventTree.waitForEvent)(group, 'completed');
87
- if (result.status === 'failed') {
88
- return _yargs.default.exit(1, new Error('Task failed !'));
89
- }
90
- }
91
- });
92
-
93
- //# sourceMappingURL=group.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["commands/group.js"],"sourcesContent":["import { waitForEvent } from '@jujulego/event-tree';\nimport { GroupTask, ParallelGroup, SequenceGroup, TaskManager } from '@jujulego/tasks';\nimport ink from 'ink';\nimport yargs from 'yargs';\n\nimport { loadProject, loadWorkspace, setupInk } from '../middlewares';\nimport { Workspace, WorkspaceDepsMode } from '../project';\nimport { container, CURRENT, INK_APP, Logger } from '../services';\nimport { Layout, TaskManagerSpinner } from '../ui';\nimport { applyMiddlewares, defineCommand } from '../utils';\n\n// Command\nexport default defineCommand({\n command: 'group <scripts..>',\n describe: 'Run many scripts inside a workspace',\n builder: (yargs) =>\n applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n loadWorkspace\n ])\n .positional('scripts', { type: 'string', demandOption: true, array: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all' as WorkspaceDepsMode,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n .option('parallel', {\n type: 'boolean',\n desc: 'Runs given scripts in parallel'\n })\n .option('sequence', {\n type: 'boolean',\n desc: 'Runs given scripts in sequence'\n })\n .conflicts('parallel', 'sequence')\n .check((args) => {\n if (!args.parallel && !args.sequence) {\n throw new Error('You must at least set either --parallel or --sequence to select group management method');\n }\n\n return true;\n }),\n async handler(args) {\n const app = container.get<ink.Instance>(INK_APP);\n const workspace = container.getNamed(Workspace, CURRENT);\n const manager = container.get(TaskManager);\n\n // Run script in workspace\n let group: GroupTask;\n\n if (args.sequence) {\n group = new SequenceGroup('In sequence', {}, {\n logger: container.get(Logger),\n });\n } else if (args.parallel) {\n group = new ParallelGroup('In parallel', {}, {\n logger: container.get(Logger),\n });\n } else {\n throw new Error('You must at least set either --parallel or --sequence to select group management method');\n }\n\n for (const script of args.scripts) {\n const task = await workspace.run(script, [], {\n buildDeps: args.depsMode,\n });\n\n group.add(task);\n }\n\n manager.add(group);\n\n // Render\n app.rerender(\n <Layout>\n <TaskManagerSpinner manager={manager} />\n </Layout>\n );\n\n // Wait for result\n const result = await waitForEvent(group, 'completed');\n\n if (result.status === 'failed') {\n return yargs.exit(1, new Error('Task failed !'));\n }\n }\n});\n"],"names":["defineCommand","command","describe","builder","yargs","applyMiddlewares","setupInk","loadProject","loadWorkspace","positional","type","demandOption","array","option","choice","default","desc","conflicts","check","args","parallel","sequence","Error","handler","app","container","get","INK_APP","workspace","getNamed","Workspace","CURRENT","manager","TaskManager","group","SequenceGroup","logger","Logger","ParallelGroup","script","scripts","task","run","buildDeps","depsMode","add","rerender","Layout","TaskManagerSpinner","result","waitForEvent","status","exit"],"mappings":"AAAA;;;;+BAWA,UAAU;AACV;;aAAA;;;2BAZ6B;uBACwC;4DAEnD;6BAEmC;yBACR;0BACO;oBACT;uBACK;;;;;;MAGhD,WAAeA,IAAAA,oBAAa,EAAC;IAC3BC,SAAS;IACTC,UAAU;IACVC,SAAS,CAACC,QACRC,IAAAA,uBAAgB,EAACD,OAAO;YACtBE,qBAAQ;YACRC,wBAAW;YACXC,0BAAa;SACd,EACEC,UAAU,CAAC,WAAW;YAAEC,MAAM;YAAUC,cAAc,IAAI;YAAEC,OAAO,IAAI;QAAC,GACxEC,MAAM,CAAC,aAAa;YACnBC,QAAQ;gBAAC;gBAAO;gBAAQ;aAAO;YAC/BC,SAAS;YACTC,MAAM,iCACJ,gDACA,6BACA;QACJ,GACCH,MAAM,CAAC,YAAY;YAClBH,MAAM;YACNM,MAAM;QACR,GACCH,MAAM,CAAC,YAAY;YAClBH,MAAM;YACNM,MAAM;QACR,GACCC,SAAS,CAAC,YAAY,YACtBC,KAAK,CAAC,CAACC,OAAS;YACf,IAAI,CAACA,KAAKC,QAAQ,IAAI,CAACD,KAAKE,QAAQ,EAAE;gBACpC,MAAM,IAAIC,MAAM,2FAA2F;YAC7G,CAAC;YAED,OAAO,IAAI;QACb;IACJ,MAAMC,SAAQJ,IAAI,EAAE;QAClB,MAAMK,MAAMC,mBAAS,CAACC,GAAG,CAAeC,iBAAO;QAC/C,MAAMC,YAAYH,mBAAS,CAACI,QAAQ,CAACC,kBAAS,EAAEC,iBAAO;QACvD,MAAMC,UAAUP,mBAAS,CAACC,GAAG,CAACO,kBAAW;QAEzC,0BAA0B;QAC1B,IAAIC;QAEJ,IAAIf,KAAKE,QAAQ,EAAE;YACjBa,QAAQ,IAAIC,oBAAa,CAAC,eAAe,CAAC,GAAG;gBAC3CC,QAAQX,mBAAS,CAACC,GAAG,CAACW,gBAAM;YAC9B;QACF,OAAO,IAAIlB,KAAKC,QAAQ,EAAE;YACxBc,QAAQ,IAAII,oBAAa,CAAC,eAAe,CAAC,GAAG;gBAC3CF,QAAQX,mBAAS,CAACC,GAAG,CAACW,gBAAM;YAC9B;QACF,OAAO;YACL,MAAM,IAAIf,MAAM,2FAA2F;QAC7G,CAAC;QAED,KAAK,MAAMiB,UAAUpB,KAAKqB,OAAO,CAAE;YACjC,MAAMC,OAAO,MAAMb,UAAUc,GAAG,CAACH,QAAQ,EAAE,EAAE;gBAC3CI,WAAWxB,KAAKyB,QAAQ;YAC1B;YAEAV,MAAMW,GAAG,CAACJ;QACZ;QAEAT,QAAQa,GAAG,CAACX;QAEZ,SAAS;QACTV,IAAIsB,QAAQ,eACV,qBAACC,UAAM;sBACL,cAAA,qBAACC,sBAAkB;gBAAChB,SAASA;;;QAIjC,kBAAkB;QAClB,MAAMiB,SAAS,MAAMC,IAAAA,uBAAY,EAAChB,OAAO;QAEzC,IAAIe,OAAOE,MAAM,KAAK,UAAU;YAC9B,OAAO/C,cAAK,CAACgD,IAAI,CAAC,GAAG,IAAI9B,MAAM;QACjC,CAAC;IACH;AACF","file":"group.js"}
@@ -1,23 +0,0 @@
1
- /// <reference types="yargs" />
2
- export declare type Attribute = 'name' | 'version' | 'root' | 'slug';
3
- export declare type Data = Partial<Record<Attribute, string>>;
4
- declare const _default: import("yargs").CommandModule<unknown, {
5
- private: boolean | undefined;
6
- } & {
7
- "with-script": string[] | undefined;
8
- } & {
9
- affected: string | undefined;
10
- } & {
11
- "affected-rev-sort": string | undefined;
12
- } & {
13
- "affected-rev-fallback": string;
14
- } & {
15
- attrs: Attribute[];
16
- } & {
17
- headers: boolean | undefined;
18
- } & {
19
- long: boolean | undefined;
20
- } & {
21
- json: boolean | undefined;
22
- }>;
23
- export default _default;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/commands/list.tsx"],"names":[],"mappings":";AAaA,oBAAY,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAC7D,oBAAY,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;AA8BtD,wBAkIG","file":"list.d.ts","sourcesContent":["import chalk from 'chalk';\nimport path from 'node:path';\nimport ink from 'ink';\nimport slugify from 'slugify';\n\nimport { AffectedFilter, Pipeline, PrivateFilter, ScriptsFilter } from '../filters';\nimport { loadProject, setupInk } from '../middlewares';\nimport { Project, Workspace } from '../project';\nimport { container, CURRENT, INK_APP } from '../services';\nimport { Layout, List } from '../ui';\nimport { applyMiddlewares, defineCommand } from '../utils';\n\n// Types\nexport type Attribute = 'name' | 'version' | 'root' | 'slug';\nexport type Data = Partial<Record<Attribute, string>>;\n\ntype Extractor<T> = (wks: Workspace, json: boolean) => T;\n\n// Constants\nconst LONG_ATTRIBUTES: Attribute[] = ['name', 'version', 'root'];\nconst JSON_ATTRIBUTES: Attribute[] = ['name', 'version', 'slug', 'root'];\nconst DEFAULT_ATTRIBUTES: Attribute[] = ['name'];\n\nconst EXTRACTORS: Record<Attribute, Extractor<string | undefined>> = {\n name: wks => wks.name,\n version: (wks, json) => wks.manifest.version || (json ? undefined : chalk.grey('unset')),\n root: wks => wks.cwd,\n slug: wks => slugify(wks.name)\n};\n\n// Utils\nfunction buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (wks, json: boolean) => {\n const data: Data = {};\n\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n\n return data;\n };\n}\n\n// Command\nexport default defineCommand({\n command: ['list', 'ls'],\n describe: 'List workspaces',\n builder: (yargs) =>\n applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n ])\n // Filters\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('with-script', {\n type: 'array',\n string: true,\n group: 'Filters:',\n desc: 'Print only workspaces having the given script',\n })\n\n // Affected filter\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev: string) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n .option('attrs', {\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'],\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 async handler(args) {\n // Setup pipeline\n const pipeline = new Pipeline();\n\n if (args.private !== undefined) {\n pipeline.add(new PrivateFilter(args.private));\n }\n\n if (args.withScript) {\n pipeline.add(new ScriptsFilter(args.withScript));\n }\n\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n args.affected,\n args.affectedRevFallback,\n args.affectedRevSort\n ));\n }\n\n // Load workspaces\n const project = container.getNamed(Project, CURRENT);\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(project.workspaces())) {\n workspaces.push(wks);\n }\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 if (args.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n\n const data = workspaces.map(wks => buildExtractor(attrs)(wks, args.json || false));\n\n // Print list\n if (args.json) {\n if (process.stdout.isTTY) { // Pretty print for ttys\n console.log(JSON.stringify(data, null, 2));\n } else {\n process.stdout.write(JSON.stringify(data));\n }\n } else {\n const app = container.get<ink.Instance>(INK_APP);\n\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) ?? '.';\n }\n }\n\n app.rerender(\n <Layout>\n <List items={data} headers={args.headers ?? (attrs.length > 1)} />\n </Layout>\n );\n }\n }\n});\n"]}
@@ -1,170 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, // Command
6
- "default", {
7
- enumerable: true,
8
- get: ()=>_default
9
- });
10
- const _jsxRuntime = require("react/jsx-runtime");
11
- const _chalk = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
12
- const _nodePath = /*#__PURE__*/ _interopRequireDefault(require("node:path"));
13
- const _slugify = /*#__PURE__*/ _interopRequireDefault(require("slugify"));
14
- const _filters = require("../filters");
15
- const _middlewares = require("../middlewares");
16
- const _project = require("../project");
17
- const _services = require("../services");
18
- const _ui = require("../ui");
19
- const _utils = require("../utils");
20
- function _interopRequireDefault(obj) {
21
- return obj && obj.__esModule ? obj : {
22
- default: obj
23
- };
24
- }
25
- // Constants
26
- const LONG_ATTRIBUTES = [
27
- 'name',
28
- 'version',
29
- 'root'
30
- ];
31
- const JSON_ATTRIBUTES = [
32
- 'name',
33
- 'version',
34
- 'slug',
35
- 'root'
36
- ];
37
- const DEFAULT_ATTRIBUTES = [
38
- 'name'
39
- ];
40
- const EXTRACTORS = {
41
- name: (wks)=>wks.name,
42
- version: (wks, json)=>wks.manifest.version || (json ? undefined : _chalk.default.grey('unset')),
43
- root: (wks)=>wks.cwd,
44
- slug: (wks)=>(0, _slugify.default)(wks.name)
45
- };
46
- // Utils
47
- function buildExtractor(attrs) {
48
- return (wks, json)=>{
49
- const data = {};
50
- for (const attr of attrs){
51
- data[attr] = EXTRACTORS[attr](wks, json);
52
- }
53
- return data;
54
- };
55
- }
56
- const _default = (0, _utils.defineCommand)({
57
- command: [
58
- 'list',
59
- 'ls'
60
- ],
61
- describe: 'List workspaces',
62
- builder: (yargs)=>(0, _utils.applyMiddlewares)(yargs, [
63
- _middlewares.setupInk,
64
- _middlewares.loadProject
65
- ])// Filters
66
- .option('private', {
67
- type: 'boolean',
68
- group: 'Filters:',
69
- desc: 'Print only private workspaces'
70
- }).option('with-script', {
71
- type: 'array',
72
- string: true,
73
- group: 'Filters:',
74
- desc: 'Print only workspaces having the given script'
75
- })// Affected filter
76
- .option('affected', {
77
- alias: 'a',
78
- type: 'string',
79
- coerce: (rev)=>rev === '' ? 'master' : rev,
80
- group: 'Affected:',
81
- desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\n' + 'Replaces %name by workspace name.'
82
- }).option('affected-rev-sort', {
83
- type: 'string',
84
- group: 'Affected:',
85
- desc: 'Sort applied to git tag / git branch command'
86
- }).option('affected-rev-fallback', {
87
- type: 'string',
88
- default: 'master',
89
- group: 'Affected:',
90
- desc: 'Fallback revision, used if no revision matching the given format is found'
91
- }).option('attrs', {
92
- type: 'array',
93
- choices: [
94
- 'name',
95
- 'version',
96
- 'root',
97
- 'slug'
98
- ],
99
- default: [],
100
- group: 'Format:',
101
- desc: 'Select printed attributes'
102
- }).option('headers', {
103
- type: 'boolean',
104
- group: 'Format:',
105
- desc: 'Prints columns headers'
106
- }).option('long', {
107
- alias: 'l',
108
- type: 'boolean',
109
- group: 'Format:',
110
- desc: 'Prints name, version and root of all workspaces'
111
- }).option('json', {
112
- type: 'boolean',
113
- group: 'Format:',
114
- desc: 'Prints data as a JSON array'
115
- }),
116
- async handler (args) {
117
- // Setup pipeline
118
- const pipeline = new _filters.Pipeline();
119
- if (args.private !== undefined) {
120
- pipeline.add(new _filters.PrivateFilter(args.private));
121
- }
122
- if (args.withScript) {
123
- pipeline.add(new _filters.ScriptsFilter(args.withScript));
124
- }
125
- if (args.affected !== undefined) {
126
- pipeline.add(new _filters.AffectedFilter(args.affected, args.affectedRevFallback, args.affectedRevSort));
127
- }
128
- // Load workspaces
129
- const project = _services.container.getNamed(_project.Project, _services.CURRENT);
130
- const workspaces = [];
131
- for await (const wks of pipeline.filter(project.workspaces())){
132
- workspaces.push(wks);
133
- }
134
- // Build data
135
- let attrs = args.attrs;
136
- if (args.attrs.length === 0) {
137
- if (args.long) {
138
- attrs = LONG_ATTRIBUTES;
139
- } else if (args.json) {
140
- attrs = JSON_ATTRIBUTES;
141
- } else {
142
- attrs = DEFAULT_ATTRIBUTES;
143
- }
144
- }
145
- const data = workspaces.map((wks)=>buildExtractor(attrs)(wks, args.json || false));
146
- // Print list
147
- if (args.json) {
148
- if (process.stdout.isTTY) {
149
- console.log(JSON.stringify(data, null, 2));
150
- } else {
151
- process.stdout.write(JSON.stringify(data));
152
- }
153
- } else {
154
- const app = _services.container.get(_services.INK_APP);
155
- for (const d of data){
156
- if (d.root) {
157
- d.root = _nodePath.default.relative(process.cwd(), d.root) ?? '.';
158
- }
159
- }
160
- app.rerender(/*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.Layout, {
161
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.List, {
162
- items: data,
163
- headers: args.headers ?? attrs.length > 1
164
- })
165
- }));
166
- }
167
- }
168
- });
169
-
170
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["commands/list.js"],"sourcesContent":["import chalk from 'chalk';\nimport path from 'node:path';\nimport ink from 'ink';\nimport slugify from 'slugify';\n\nimport { AffectedFilter, Pipeline, PrivateFilter, ScriptsFilter } from '../filters';\nimport { loadProject, setupInk } from '../middlewares';\nimport { Project, Workspace } from '../project';\nimport { container, CURRENT, INK_APP } from '../services';\nimport { Layout, List } from '../ui';\nimport { applyMiddlewares, defineCommand } from '../utils';\n\n// Types\nexport type Attribute = 'name' | 'version' | 'root' | 'slug';\nexport type Data = Partial<Record<Attribute, string>>;\n\ntype Extractor<T> = (wks: Workspace, json: boolean) => T;\n\n// Constants\nconst LONG_ATTRIBUTES: Attribute[] = ['name', 'version', 'root'];\nconst JSON_ATTRIBUTES: Attribute[] = ['name', 'version', 'slug', 'root'];\nconst DEFAULT_ATTRIBUTES: Attribute[] = ['name'];\n\nconst EXTRACTORS: Record<Attribute, Extractor<string | undefined>> = {\n name: wks => wks.name,\n version: (wks, json) => wks.manifest.version || (json ? undefined : chalk.grey('unset')),\n root: wks => wks.cwd,\n slug: wks => slugify(wks.name)\n};\n\n// Utils\nfunction buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (wks, json: boolean) => {\n const data: Data = {};\n\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n\n return data;\n };\n}\n\n// Command\nexport default defineCommand({\n command: ['list', 'ls'],\n describe: 'List workspaces',\n builder: (yargs) =>\n applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n ])\n // Filters\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('with-script', {\n type: 'array',\n string: true,\n group: 'Filters:',\n desc: 'Print only workspaces having the given script',\n })\n\n // Affected filter\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev: string) => rev === '' ? 'master' : rev,\n group: 'Affected:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master.\\n' +\n 'Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Affected:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Affected:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n .option('attrs', {\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'],\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 async handler(args) {\n // Setup pipeline\n const pipeline = new Pipeline();\n\n if (args.private !== undefined) {\n pipeline.add(new PrivateFilter(args.private));\n }\n\n if (args.withScript) {\n pipeline.add(new ScriptsFilter(args.withScript));\n }\n\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n args.affected,\n args.affectedRevFallback,\n args.affectedRevSort\n ));\n }\n\n // Load workspaces\n const project = container.getNamed(Project, CURRENT);\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(project.workspaces())) {\n workspaces.push(wks);\n }\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 if (args.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n\n const data = workspaces.map(wks => buildExtractor(attrs)(wks, args.json || false));\n\n // Print list\n if (args.json) {\n if (process.stdout.isTTY) { // Pretty print for ttys\n console.log(JSON.stringify(data, null, 2));\n } else {\n process.stdout.write(JSON.stringify(data));\n }\n } else {\n const app = container.get<ink.Instance>(INK_APP);\n\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) ?? '.';\n }\n }\n\n app.rerender(\n <Layout>\n <List items={data} headers={args.headers ?? (attrs.length > 1)} />\n </Layout>\n );\n }\n }\n});\n"],"names":["LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","wks","version","json","manifest","undefined","chalk","grey","root","cwd","slug","slugify","buildExtractor","attrs","data","attr","defineCommand","command","describe","builder","yargs","applyMiddlewares","setupInk","loadProject","option","type","group","desc","string","alias","coerce","rev","default","choices","handler","args","pipeline","Pipeline","private","add","PrivateFilter","withScript","ScriptsFilter","affected","AffectedFilter","affectedRevFallback","affectedRevSort","project","container","getNamed","Project","CURRENT","workspaces","filter","push","length","long","map","process","stdout","isTTY","console","log","JSON","stringify","write","app","get","INK_APP","d","path","relative","rerender","Layout","List","items","headers"],"mappings":"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","file":"list.js"}
@@ -1,8 +0,0 @@
1
- import yargs from 'yargs';
2
- import { WorkspaceDepsMode } from '../project';
3
- declare const _default: yargs.CommandModule<unknown, {
4
- script: string;
5
- } & {
6
- "deps-mode": WorkspaceDepsMode;
7
- }>;
8
- export default _default;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/commands/run.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAa,iBAAiB,EAAE,MAAM,YAAY,CAAC;;;;;;AAM1D,wBAkDG","file":"run.d.ts","sourcesContent":["import { waitForEvent } from '@jujulego/event-tree';\nimport { TaskManager } from '@jujulego/tasks';\nimport ink from 'ink';\nimport yargs from 'yargs';\n\nimport { loadProject, loadWorkspace, setupInk } from '../middlewares';\nimport { Workspace, WorkspaceDepsMode } from '../project';\nimport { container, CURRENT, INK_APP } from '../services';\nimport { Layout, TaskManagerSpinner } from '../ui';\nimport { applyMiddlewares, defineCommand } from '../utils';\n\n// Command\nexport default defineCommand({\n command: 'run <script>',\n describe: 'Run script inside workspace',\n builder: (yargs) =>\n applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n loadWorkspace\n ])\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all' as WorkspaceDepsMode,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n }),\n async handler(args) {\n const app = container.get<ink.Instance>(INK_APP);\n const workspace = container.getNamed(Workspace, CURRENT);\n const manager = container.get(TaskManager);\n\n // Extract arguments\n const rest = args._.map(arg => arg.toString());\n\n if (rest[0] === 'run') {\n rest.splice(0, 1);\n }\n\n // Run script in workspace\n const task = await workspace.run(args.script, rest, {\n buildDeps: args.depsMode,\n });\n manager.add(task);\n\n // Render\n app.rerender(\n <Layout>\n <TaskManagerSpinner manager={manager} />\n </Layout>\n );\n\n // Wait for result\n const result = await waitForEvent(task, 'completed');\n\n if (result.status === 'failed') {\n return yargs.exit(1, new Error('Task failed !'));\n }\n }\n});\n"]}
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, // Command
6
- "default", {
7
- enumerable: true,
8
- get: ()=>_default
9
- });
10
- const _jsxRuntime = require("react/jsx-runtime");
11
- const _eventTree = require("@jujulego/event-tree");
12
- const _tasks = require("@jujulego/tasks");
13
- const _yargs = /*#__PURE__*/ _interopRequireDefault(require("yargs"));
14
- const _middlewares = require("../middlewares");
15
- const _project = require("../project");
16
- const _services = require("../services");
17
- const _ui = require("../ui");
18
- const _utils = require("../utils");
19
- function _interopRequireDefault(obj) {
20
- return obj && obj.__esModule ? obj : {
21
- default: obj
22
- };
23
- }
24
- const _default = (0, _utils.defineCommand)({
25
- command: 'run <script>',
26
- describe: 'Run script inside workspace',
27
- builder: (yargs)=>(0, _utils.applyMiddlewares)(yargs, [
28
- _middlewares.setupInk,
29
- _middlewares.loadProject,
30
- _middlewares.loadWorkspace
31
- ]).positional('script', {
32
- type: 'string',
33
- demandOption: true
34
- }).option('deps-mode', {
35
- choice: [
36
- 'all',
37
- 'prod',
38
- 'none'
39
- ],
40
- default: 'all',
41
- desc: 'Dependency selection mode:\n' + ' - all = dependencies AND devDependencies\n' + ' - prod = dependencies\n' + ' - none = nothing'
42
- }),
43
- async handler (args) {
44
- const app = _services.container.get(_services.INK_APP);
45
- const workspace = _services.container.getNamed(_project.Workspace, _services.CURRENT);
46
- const manager = _services.container.get(_tasks.TaskManager);
47
- // Extract arguments
48
- const rest = args._.map((arg)=>arg.toString());
49
- if (rest[0] === 'run') {
50
- rest.splice(0, 1);
51
- }
52
- // Run script in workspace
53
- const task = await workspace.run(args.script, rest, {
54
- buildDeps: args.depsMode
55
- });
56
- manager.add(task);
57
- // Render
58
- app.rerender(/*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.Layout, {
59
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.TaskManagerSpinner, {
60
- manager: manager
61
- })
62
- }));
63
- // Wait for result
64
- const result = await (0, _eventTree.waitForEvent)(task, 'completed');
65
- if (result.status === 'failed') {
66
- return _yargs.default.exit(1, new Error('Task failed !'));
67
- }
68
- }
69
- });
70
-
71
- //# sourceMappingURL=run.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["commands/run.js"],"sourcesContent":["import { waitForEvent } from '@jujulego/event-tree';\nimport { TaskManager } from '@jujulego/tasks';\nimport ink from 'ink';\nimport yargs from 'yargs';\n\nimport { loadProject, loadWorkspace, setupInk } from '../middlewares';\nimport { Workspace, WorkspaceDepsMode } from '../project';\nimport { container, CURRENT, INK_APP } from '../services';\nimport { Layout, TaskManagerSpinner } from '../ui';\nimport { applyMiddlewares, defineCommand } from '../utils';\n\n// Command\nexport default defineCommand({\n command: 'run <script>',\n describe: 'Run script inside workspace',\n builder: (yargs) =>\n applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n loadWorkspace\n ])\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all' as WorkspaceDepsMode,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n }),\n async handler(args) {\n const app = container.get<ink.Instance>(INK_APP);\n const workspace = container.getNamed(Workspace, CURRENT);\n const manager = container.get(TaskManager);\n\n // Extract arguments\n const rest = args._.map(arg => arg.toString());\n\n if (rest[0] === 'run') {\n rest.splice(0, 1);\n }\n\n // Run script in workspace\n const task = await workspace.run(args.script, rest, {\n buildDeps: args.depsMode,\n });\n manager.add(task);\n\n // Render\n app.rerender(\n <Layout>\n <TaskManagerSpinner manager={manager} />\n </Layout>\n );\n\n // Wait for result\n const result = await waitForEvent(task, 'completed');\n\n if (result.status === 'failed') {\n return yargs.exit(1, new Error('Task failed !'));\n }\n }\n});\n"],"names":["defineCommand","command","describe","builder","yargs","applyMiddlewares","setupInk","loadProject","loadWorkspace","positional","type","demandOption","option","choice","default","desc","handler","args","app","container","get","INK_APP","workspace","getNamed","Workspace","CURRENT","manager","TaskManager","rest","_","map","arg","toString","splice","task","run","script","buildDeps","depsMode","add","rerender","Layout","TaskManagerSpinner","result","waitForEvent","status","exit","Error"],"mappings":"AAAA;;;;+BAWA,UAAU;AACV;;aAAA;;;2BAZ6B;uBACD;4DAEV;6BAEmC;yBACR;0BACD;oBACD;uBACK;;;;;;MAGhD,WAAeA,IAAAA,oBAAa,EAAC;IAC3BC,SAAS;IACTC,UAAU;IACVC,SAAS,CAACC,QACRC,IAAAA,uBAAgB,EAACD,OAAO;YACtBE,qBAAQ;YACRC,wBAAW;YACXC,0BAAa;SACd,EACEC,UAAU,CAAC,UAAU;YAAEC,MAAM;YAAUC,cAAc,IAAI;QAAC,GAC1DC,MAAM,CAAC,aAAa;YACnBC,QAAQ;gBAAC;gBAAO;gBAAQ;aAAO;YAC/BC,SAAS;YACTC,MAAM,iCACJ,gDACA,6BACA;QACJ;IACJ,MAAMC,SAAQC,IAAI,EAAE;QAClB,MAAMC,MAAMC,mBAAS,CAACC,GAAG,CAAeC,iBAAO;QAC/C,MAAMC,YAAYH,mBAAS,CAACI,QAAQ,CAACC,kBAAS,EAAEC,iBAAO;QACvD,MAAMC,UAAUP,mBAAS,CAACC,GAAG,CAACO,kBAAW;QAEzC,oBAAoB;QACpB,MAAMC,OAAOX,KAAKY,CAAC,CAACC,GAAG,CAACC,CAAAA,MAAOA,IAAIC,QAAQ;QAE3C,IAAIJ,IAAI,CAAC,EAAE,KAAK,OAAO;YACrBA,KAAKK,MAAM,CAAC,GAAG;QACjB,CAAC;QAED,0BAA0B;QAC1B,MAAMC,OAAO,MAAMZ,UAAUa,GAAG,CAAClB,KAAKmB,MAAM,EAAER,MAAM;YAClDS,WAAWpB,KAAKqB,QAAQ;QAC1B;QACAZ,QAAQa,GAAG,CAACL;QAEZ,SAAS;QACThB,IAAIsB,QAAQ,eACV,qBAACC,UAAM;sBACL,cAAA,qBAACC,sBAAkB;gBAAChB,SAASA;;;QAIjC,kBAAkB;QAClB,MAAMiB,SAAS,MAAMC,IAAAA,uBAAY,EAACV,MAAM;QAExC,IAAIS,OAAOE,MAAM,KAAK,UAAU;YAC9B,OAAOzC,cAAK,CAAC0C,IAAI,CAAC,GAAG,IAAIC,MAAM;QACjC,CAAC;IACH;AACF","file":"run.js"}
@@ -1,3 +0,0 @@
1
- /// <reference types="yargs" />
2
- declare const _default: import("yargs").CommandModule<unknown, unknown>;
3
- export default _default;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/commands/tree.tsx"],"names":[],"mappings":";;AASA,wBAmBG","file":"tree.d.ts","sourcesContent":["import ink from 'ink';\n\nimport { loadProject, loadWorkspace, setupInk } from '../middlewares';\nimport { Workspace } from '../project';\nimport { container, CURRENT, INK_APP } from '../services';\nimport { Layout, WorkspaceTree } from '../ui';\nimport { applyMiddlewares, defineCommand } from '../utils';\n\n// Command\nexport default defineCommand({\n command: 'tree',\n describe: 'Print workspace dependency tree',\n builder: (yargs) =>\n applyMiddlewares(yargs, [\n setupInk,\n loadProject,\n loadWorkspace\n ]),\n handler: () => {\n const app = container.get<ink.Instance>(INK_APP);\n const workspace = container.getNamed(Workspace, CURRENT);\n\n app.rerender(\n <Layout>\n <WorkspaceTree workspace={workspace} />\n </Layout>\n );\n }\n});\n"]}
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, // Command
6
- "default", {
7
- enumerable: true,
8
- get: ()=>_default
9
- });
10
- const _jsxRuntime = require("react/jsx-runtime");
11
- const _middlewares = require("../middlewares");
12
- const _project = require("../project");
13
- const _services = require("../services");
14
- const _ui = require("../ui");
15
- const _utils = require("../utils");
16
- const _default = (0, _utils.defineCommand)({
17
- command: 'tree',
18
- describe: 'Print workspace dependency tree',
19
- builder: (yargs)=>(0, _utils.applyMiddlewares)(yargs, [
20
- _middlewares.setupInk,
21
- _middlewares.loadProject,
22
- _middlewares.loadWorkspace
23
- ]),
24
- handler: ()=>{
25
- const app = _services.container.get(_services.INK_APP);
26
- const workspace = _services.container.getNamed(_project.Workspace, _services.CURRENT);
27
- app.rerender(/*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.Layout, {
28
- children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ui.WorkspaceTree, {
29
- workspace: workspace
30
- })
31
- }));
32
- }
33
- });
34
-
35
- //# sourceMappingURL=tree.js.map