@jujulego/jill 2.0.0-beta.1 → 2.0.0-rc.1

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 (202) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +28 -0
  3. package/dist/commands/each.d.ts +16 -0
  4. package/dist/commands/each.d.ts.map +1 -0
  5. package/dist/commands/each.js +117 -0
  6. package/dist/commands/each.js.map +1 -0
  7. package/dist/commands/{list.command.d.ts → list.d.ts} +3 -5
  8. package/dist/commands/list.d.ts.map +1 -0
  9. package/dist/commands/list.js +170 -0
  10. package/dist/commands/list.js.map +1 -0
  11. package/dist/commands/run.d.ts +8 -0
  12. package/dist/commands/run.d.ts.map +1 -0
  13. package/dist/commands/run.js +59 -0
  14. package/dist/commands/run.js.map +1 -0
  15. package/dist/commands/tree.d.ts +3 -0
  16. package/dist/commands/tree.d.ts.map +1 -0
  17. package/dist/commands/tree.js +35 -0
  18. package/dist/commands/tree.js.map +1 -0
  19. package/dist/filters/affected.filter.d.ts +11 -0
  20. package/dist/filters/affected.filter.d.ts.map +1 -0
  21. package/dist/filters/affected.filter.js +82 -0
  22. package/dist/filters/affected.filter.js.map +1 -0
  23. package/dist/filters/index.d.ts +4 -0
  24. package/dist/filters/index.d.ts.map +1 -0
  25. package/dist/filters/index.js +21 -0
  26. package/dist/filters/index.js.map +1 -0
  27. package/dist/filters/pipeline.d.ts +11 -0
  28. package/dist/filters/pipeline.d.ts.map +1 -0
  29. package/dist/filters/pipeline.js +34 -0
  30. package/dist/filters/pipeline.js.map +1 -0
  31. package/dist/filters/private.filter.d.ts +7 -0
  32. package/dist/filters/private.filter.d.ts.map +1 -0
  33. package/dist/filters/private.filter.js +20 -0
  34. package/dist/filters/private.filter.js.map +1 -0
  35. package/dist/filters/scripts.filter.d.ts +7 -0
  36. package/dist/filters/scripts.filter.d.ts.map +1 -0
  37. package/dist/filters/scripts.filter.js +21 -0
  38. package/dist/filters/scripts.filter.js.map +1 -0
  39. package/dist/git.d.ts +16 -0
  40. package/dist/git.d.ts.map +1 -0
  41. package/dist/git.js +94 -0
  42. package/dist/git.js.map +1 -0
  43. package/dist/index.d.ts +7 -4
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +19 -33
  46. package/dist/index.js.map +1 -1
  47. package/dist/main.d.ts.map +1 -1
  48. package/dist/main.js +26 -62
  49. package/dist/main.js.map +1 -1
  50. package/dist/middlewares/global-config.d.ts +5 -0
  51. package/dist/middlewares/global-config.d.ts.map +1 -0
  52. package/dist/middlewares/global-config.js +29 -0
  53. package/dist/middlewares/global-config.js.map +1 -0
  54. package/dist/middlewares/index.d.ts +4 -0
  55. package/dist/middlewares/index.d.ts.map +1 -0
  56. package/dist/middlewares/index.js +21 -0
  57. package/dist/middlewares/index.js.map +1 -0
  58. package/dist/middlewares/load-project.d.ts +6 -0
  59. package/dist/middlewares/load-project.d.ts.map +1 -0
  60. package/dist/middlewares/load-project.js +41 -0
  61. package/dist/middlewares/load-project.js.map +1 -0
  62. package/dist/middlewares/load-workspace.d.ts +3 -0
  63. package/dist/middlewares/load-workspace.d.ts.map +1 -0
  64. package/dist/middlewares/load-workspace.js +42 -0
  65. package/dist/middlewares/load-workspace.js.map +1 -0
  66. package/dist/middlewares/setup-ink.d.ts +1 -0
  67. package/dist/middlewares/setup-ink.d.ts.map +1 -0
  68. package/dist/middlewares/setup-ink.js +22 -0
  69. package/dist/middlewares/setup-ink.js.map +1 -0
  70. package/dist/project/index.d.ts +2 -0
  71. package/dist/project/index.d.ts.map +1 -0
  72. package/dist/project/index.js +19 -0
  73. package/dist/project/index.js.map +1 -0
  74. package/dist/project/project.d.ts +25 -0
  75. package/dist/project/project.d.ts.map +1 -0
  76. package/dist/project/project.js +190 -0
  77. package/dist/project/project.js.map +1 -0
  78. package/dist/project/workspace.d.ts +34 -0
  79. package/dist/project/workspace.d.ts.map +1 -0
  80. package/dist/project/workspace.js +173 -0
  81. package/dist/project/workspace.js.map +1 -0
  82. package/dist/services/index.d.ts +4 -0
  83. package/dist/services/index.d.ts.map +1 -0
  84. package/dist/services/index.js +21 -0
  85. package/dist/services/index.js.map +1 -0
  86. package/dist/services/inversify.config.d.ts +11 -0
  87. package/dist/services/inversify.config.d.ts.map +1 -0
  88. package/dist/services/inversify.config.js +34 -0
  89. package/dist/services/inversify.config.js.map +1 -0
  90. package/dist/services/logger.service.d.ts +6 -0
  91. package/dist/services/logger.service.d.ts.map +1 -0
  92. package/dist/services/logger.service.js +75 -0
  93. package/dist/services/logger.service.js.map +1 -0
  94. package/dist/services/spinner.service.d.ts +18 -0
  95. package/dist/services/spinner.service.d.ts.map +1 -0
  96. package/dist/services/spinner.service.js +68 -0
  97. package/dist/services/spinner.service.js.map +1 -0
  98. package/dist/services/task-manager.service.d.ts +1 -0
  99. package/dist/services/task-manager.service.d.ts.map +1 -0
  100. package/dist/services/task-manager.service.js +18 -0
  101. package/dist/services/task-manager.service.js.map +1 -0
  102. package/dist/types.d.ts +1 -0
  103. package/dist/types.d.ts.map +1 -0
  104. package/dist/types.js +7 -0
  105. package/dist/types.js.map +1 -0
  106. package/dist/ui/global-spinner.d.ts +2 -0
  107. package/dist/ui/global-spinner.d.ts.map +1 -0
  108. package/dist/ui/global-spinner.js +65 -0
  109. package/dist/ui/global-spinner.js.map +1 -0
  110. package/dist/ui/index.d.ts +7 -0
  111. package/dist/ui/index.d.ts.map +1 -0
  112. package/dist/ui/index.js +24 -0
  113. package/dist/ui/index.js.map +1 -0
  114. package/dist/ui/layout.d.ts +2 -0
  115. package/dist/ui/layout.d.ts.map +1 -0
  116. package/dist/ui/layout.js +20 -0
  117. package/dist/ui/layout.js.map +1 -0
  118. package/dist/ui/list.d.ts +6 -0
  119. package/dist/ui/list.d.ts.map +1 -0
  120. package/dist/ui/list.js +30 -0
  121. package/dist/ui/list.js.map +1 -0
  122. package/dist/{components/StaticLogs.d.ts → ui/static-logs.d.ts} +0 -0
  123. package/dist/ui/static-logs.d.ts.map +1 -0
  124. package/dist/ui/static-logs.js +63 -0
  125. package/dist/ui/static-logs.js.map +1 -0
  126. package/dist/ui/task-name.d.ts +6 -0
  127. package/dist/ui/task-name.d.ts.map +1 -0
  128. package/dist/ui/task-name.js +35 -0
  129. package/dist/ui/task-name.js.map +1 -0
  130. package/dist/{components/TaskSpinner.d.ts → ui/task-spinner.d.ts} +1 -1
  131. package/dist/ui/task-spinner.d.ts.map +1 -0
  132. package/dist/ui/task-spinner.js +143 -0
  133. package/dist/ui/task-spinner.js.map +1 -0
  134. package/dist/ui/tasks-spinner.d.ts +6 -0
  135. package/dist/ui/tasks-spinner.d.ts.map +1 -0
  136. package/dist/ui/tasks-spinner.js +17 -0
  137. package/dist/ui/tasks-spinner.js.map +1 -0
  138. package/dist/{components/WorkspaceTree.d.ts → ui/workspace-tree.d.ts} +1 -1
  139. package/dist/ui/workspace-tree.d.ts.map +1 -0
  140. package/dist/ui/workspace-tree.js +87 -0
  141. package/dist/ui/workspace-tree.js.map +1 -0
  142. package/dist/utils.d.ts +13 -0
  143. package/dist/utils.d.ts.map +1 -0
  144. package/dist/utils.js +72 -0
  145. package/dist/utils.js.map +1 -0
  146. package/package.json +55 -54
  147. package/dist/application.context.d.ts +0 -28
  148. package/dist/application.context.d.ts.map +0 -1
  149. package/dist/application.context.js +0 -30
  150. package/dist/application.context.js.map +0 -1
  151. package/dist/application.d.ts +0 -7
  152. package/dist/application.d.ts.map +0 -1
  153. package/dist/application.js +0 -125
  154. package/dist/application.js.map +0 -1
  155. package/dist/command.d.ts +0 -8
  156. package/dist/command.d.ts.map +0 -1
  157. package/dist/command.js +0 -24
  158. package/dist/command.js.map +0 -1
  159. package/dist/commands/each.command.d.ts +0 -18
  160. package/dist/commands/each.command.d.ts.map +0 -1
  161. package/dist/commands/each.command.js +0 -178
  162. package/dist/commands/each.command.js.map +0 -1
  163. package/dist/commands/list.command.d.ts.map +0 -1
  164. package/dist/commands/list.command.js +0 -254
  165. package/dist/commands/list.command.js.map +0 -1
  166. package/dist/commands/run.command.d.ts +0 -12
  167. package/dist/commands/run.command.d.ts.map +0 -1
  168. package/dist/commands/run.command.js +0 -94
  169. package/dist/commands/run.command.js.map +0 -1
  170. package/dist/commands/tree.command.d.ts +0 -7
  171. package/dist/commands/tree.command.d.ts.map +0 -1
  172. package/dist/commands/tree.command.js +0 -35
  173. package/dist/commands/tree.command.js.map +0 -1
  174. package/dist/components/List.d.ts +0 -9
  175. package/dist/components/List.d.ts.map +0 -1
  176. package/dist/components/List.js +0 -57
  177. package/dist/components/List.js.map +0 -1
  178. package/dist/components/StaticLogs.d.ts.map +0 -1
  179. package/dist/components/StaticLogs.js +0 -77
  180. package/dist/components/StaticLogs.js.map +0 -1
  181. package/dist/components/TaskSetSpinner.d.ts +0 -6
  182. package/dist/components/TaskSetSpinner.d.ts.map +0 -1
  183. package/dist/components/TaskSetSpinner.js +0 -41
  184. package/dist/components/TaskSetSpinner.js.map +0 -1
  185. package/dist/components/TaskSpinner.d.ts.map +0 -1
  186. package/dist/components/TaskSpinner.js +0 -72
  187. package/dist/components/TaskSpinner.js.map +0 -1
  188. package/dist/components/WorkspaceTree.d.ts.map +0 -1
  189. package/dist/components/WorkspaceTree.js +0 -153
  190. package/dist/components/WorkspaceTree.js.map +0 -1
  191. package/dist/wrapper.d.ts +0 -6
  192. package/dist/wrapper.d.ts.map +0 -1
  193. package/dist/wrapper.js +0 -30
  194. package/dist/wrapper.js.map +0 -1
  195. package/dist/wrappers/project.wrapper.d.ts +0 -7
  196. package/dist/wrappers/project.wrapper.d.ts.map +0 -1
  197. package/dist/wrappers/project.wrapper.js +0 -105
  198. package/dist/wrappers/project.wrapper.js.map +0 -1
  199. package/dist/wrappers/workspace.wrapper.d.ts +0 -5
  200. package/dist/wrappers/workspace.wrapper.d.ts.map +0 -1
  201. package/dist/wrappers/workspace.wrapper.js +0 -108
  202. package/dist/wrappers/workspace.wrapper.js.map +0 -1
@@ -1,178 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.EachCommand = void 0;
7
-
8
- var _jsxRuntime = require("react/jsx-runtime");
9
-
10
- var _jillCommon = require("@jujulego/jill-common");
11
-
12
- var _jillCore = require("@jujulego/jill-core");
13
-
14
- var _ink = require("ink");
15
-
16
- var _react = require("react");
17
-
18
- var _command = require("../command");
19
-
20
- var _TaskSetSpinner = require("../components/TaskSetSpinner");
21
-
22
- var _project = require("../wrappers/project.wrapper");
23
-
24
- var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
25
- function adopt(value) {
26
- return value instanceof P ? value : new P(function (resolve) {
27
- resolve(value);
28
- });
29
- }
30
-
31
- return new (P || (P = Promise))(function (resolve, reject) {
32
- function fulfilled(value) {
33
- try {
34
- step(generator.next(value));
35
- } catch (e) {
36
- reject(e);
37
- }
38
- }
39
-
40
- function rejected(value) {
41
- try {
42
- step(generator["throw"](value));
43
- } catch (e) {
44
- reject(e);
45
- }
46
- }
47
-
48
- function step(result) {
49
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
50
- }
51
-
52
- step((generator = generator.apply(thisArg, _arguments || [])).next());
53
- });
54
- };
55
-
56
- var __asyncValues = void 0 && (void 0).__asyncValues || function (o) {
57
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
58
- var m = o[Symbol.asyncIterator],
59
- i;
60
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
61
- return this;
62
- }, i);
63
-
64
- function verb(n) {
65
- i[n] = o[n] && function (v) {
66
- return new Promise(function (resolve, reject) {
67
- v = o[n](v), settle(resolve, reject, v.done, v.value);
68
- });
69
- };
70
- }
71
-
72
- function settle(resolve, reject, d, v) {
73
- Promise.resolve(v).then(function (v) {
74
- resolve({
75
- value: v,
76
- done: d
77
- });
78
- }, reject);
79
- }
80
- };
81
-
82
- // Command
83
- const {
84
- wrapper,
85
- useArgs
86
- } = (0, _project.withProject)((0, _command.command)({
87
- name: 'each <script>',
88
- description: 'Run script on selected workspaces',
89
- builder: yargs => yargs.positional('script', {
90
- type: 'string',
91
- demandOption: true
92
- }).option('deps-mode', {
93
- choice: ['all', 'prod', 'none'],
94
- default: 'all',
95
- desc: 'Dependency selection mode:\n' + ' - all = dependencies AND devDependencies\n' + ' - prod = dependencies\n' + ' - none = nothing'
96
- }).option('private', {
97
- type: 'boolean',
98
- group: 'Filters:',
99
- desc: 'Print only private workspaces'
100
- }).option('affected', {
101
- alias: 'a',
102
- type: 'string',
103
- coerce: rev => rev === '' ? 'master' : rev,
104
- group: 'Affected:',
105
- 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.'
106
- }).option('affected-rev-sort', {
107
- type: 'string',
108
- group: 'Affected:',
109
- desc: 'Sort applied to git tag / git branch command'
110
- }).option('affected-rev-fallback', {
111
- type: 'string',
112
- default: 'master',
113
- group: 'Affected:',
114
- desc: 'Fallback revision, used if no revision matching the given format is found'
115
- })
116
- })); // Component
117
-
118
- const EachCommand = wrapper(function EachCommand() {
119
- const args = useArgs();
120
- const project = (0, _project.useProject)();
121
- const {
122
- exit
123
- } = (0, _ink.useApp)(); // Refs
124
-
125
- const tasks = (0, _react.useRef)(new _jillCore.TaskSet()); // Effects
126
-
127
- (0, _react.useEffect)(() => void (() => __awaiter(this, void 0, void 0, function* () {
128
- var e_1, _a;
129
-
130
- var _b; // Setup pipeline
131
-
132
-
133
- const pipeline = new _jillCommon.Pipeline();
134
- pipeline.add(_jillCommon.Filter.scripts([args.script]));
135
-
136
- if (args.private !== undefined) {
137
- pipeline.add(_jillCommon.Filter.privateWorkspace(args.private));
138
- }
139
-
140
- if (args.affected !== undefined) {
141
- pipeline.add(new _jillCommon.AffectedFilter(args.affected, args.affectedRevFallback, args.affectedRevSort));
142
- }
143
-
144
- try {
145
- // Filter and create tasks
146
- for (var _c = __asyncValues(pipeline.filter(project.workspaces())), _d; _d = yield _c.next(), !_d.done;) {
147
- const wks = _d.value;
148
- tasks.current.add(yield wks.run(args.script, (_b = args['--']) === null || _b === void 0 ? void 0 : _b.map(arg => arg.toString()), {
149
- buildDeps: args.depsMode
150
- }));
151
- }
152
- } catch (e_1_1) {
153
- e_1 = {
154
- error: e_1_1
155
- };
156
- } finally {
157
- try {
158
- if (_d && !_d.done && (_a = _c.return)) yield _a.call(_c);
159
- } finally {
160
- if (e_1) throw e_1.error;
161
- }
162
- }
163
-
164
- tasks.current.start(); // Result end code
165
-
166
- const [result] = yield tasks.current.waitFor('finished');
167
-
168
- if (result.failed) {
169
- exit(new Error('Some tasks has failed'));
170
- }
171
- }))(), [args]); // Render
172
-
173
- return (0, _jsxRuntime.jsx)(_TaskSetSpinner.TaskSetSpinner, {
174
- taskSet: tasks.current
175
- });
176
- });
177
- exports.EachCommand = EachCommand;
178
- //# sourceMappingURL=each.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["commands/each.command.js","commands/each.command.tsx"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__asyncValues","o","Symbol","asyncIterator","TypeError","m","i","call","__values","iterator","verb","n","v","settle","d","wrapper","useArgs","name","description","builder","yargs","positional","type","demandOption","option","choice","default","desc","group","alias","coerce","rev","EachCommand","args","project","exit","tasks","TaskSet","e_1","_a","_b","pipeline","Pipeline","add","Filter","scripts","script","private","undefined","privateWorkspace","affected","AffectedFilter","affectedRevFallback","affectedRevSort","_c","filter","workspaces","_d","wks","current","run","map","arg","toString","buildDeps","depsMode","e_1_1","error","return","start","waitFor","failed","Error","TaskSetSpinner","taskSet"],"mappings":"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","file":"each.command.js","sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { AffectedFilter, Filter, Pipeline } from '@jujulego/jill-common';\nimport { TaskSet } from '@jujulego/jill-core';\nimport { useApp } from 'ink';\nimport { useEffect, useRef } from 'react';\nimport { command } from '../command';\nimport { TaskSetSpinner } from '../components/TaskSetSpinner';\nimport { useProject, withProject } from '../wrappers/project.wrapper';\n// Command\nconst { wrapper, useArgs } = withProject(command({\n name: 'each <script>',\n description: 'Run script on selected workspaces',\n builder: yargs => yargs\n .positional('script', { type: 'string', demandOption: true })\n .option('deps-mode', {\n choice: ['all', 'prod', 'none'],\n default: 'all',\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => 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}));\n// Component\nexport const EachCommand = wrapper(function EachCommand() {\n const args = useArgs();\n const project = useProject();\n const { exit } = useApp();\n // Refs\n const tasks = useRef(new TaskSet());\n // Effects\n useEffect(() => void (() => __awaiter(this, void 0, void 0, function* () {\n var e_1, _a;\n var _b;\n // Setup pipeline\n const pipeline = new Pipeline();\n pipeline.add(Filter.scripts([args.script]));\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(args.private));\n }\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(args.affected, args.affectedRevFallback, args.affectedRevSort));\n }\n try {\n // Filter and create tasks\n for (var _c = __asyncValues(pipeline.filter(project.workspaces())), _d; _d = yield _c.next(), !_d.done;) {\n const wks = _d.value;\n tasks.current.add(yield wks.run(args.script, (_b = args['--']) === null || _b === void 0 ? void 0 : _b.map(arg => arg.toString()), {\n buildDeps: args.depsMode\n }));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) yield _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n tasks.current.start();\n // Result end code\n const [result] = yield tasks.current.waitFor('finished');\n if (result.failed) {\n exit(new Error('Some tasks has failed'));\n }\n }))(), [args]);\n // Render\n return (_jsx(TaskSetSpinner, { taskSet: tasks.current }));\n});","import { AffectedFilter, Filter, Pipeline } from '@jujulego/jill-common';\nimport { TaskSet, WorkspaceDepsMode } from '@jujulego/jill-core';\nimport { useApp } from 'ink';\nimport { useEffect, useRef } from 'react';\n\nimport { command } from '../command';\nimport { TaskSetSpinner } from '../components/TaskSetSpinner';\nimport { useProject, withProject } from '../wrappers/project.wrapper';\n\n// Command\nconst { wrapper, useArgs } = withProject(command({\n name: 'each <script>',\n description: 'Run script on selected workspaces',\n builder: yargs => yargs\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 .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\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}));\n\n// Component\nexport const EachCommand = wrapper(function EachCommand() {\n const args = useArgs();\n const project = useProject();\n const { exit } = useApp();\n\n // Refs\n const tasks = useRef(new TaskSet());\n\n // Effects\n useEffect(() => void (async () => {\n // Setup pipeline\n const pipeline = new Pipeline();\n pipeline.add(Filter.scripts([args.script]));\n\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(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 // Filter and create tasks\n for await (const wks of pipeline.filter(project.workspaces())) {\n tasks.current.add(await wks.run(args.script, args['--']?.map(arg => arg.toString()), {\n buildDeps: args.depsMode\n }));\n }\n\n tasks.current.start();\n\n // Result end code\n const [result] = await tasks.current.waitFor('finished');\n\n if (result.failed) {\n exit(new Error('Some tasks has failed'));\n }\n })(), [args]);\n\n // Render\n return (\n <TaskSetSpinner taskSet={tasks.current} />\n );\n});\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["commands/list.command.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;AA0FtD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;EAwEtB,CAAC","file":"list.command.d.ts","sourcesContent":["import { AffectedFilter, Filter, Pipeline } from '@jujulego/jill-common';\nimport { Workspace } from '@jujulego/jill-core';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport * as path from 'path';\nimport { useEffect, useMemo, useState } from 'react';\nimport slugify from 'slugify';\n\nimport { command } from '../command';\nimport { useProject, withProject } from '../wrappers/project.wrapper';\nimport { List } from '../components/List';\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 => wks.manifest.version || undefined,\n root: (wks, json) => json ? wks.cwd : path.relative(process.cwd(), wks.cwd) || '.',\n slug: wks => slugify(wks.name)\n};\n\n// Utils\nfunction buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (wks, json) => {\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\nconst { wrapper, useArgs } = withProject(command({\n name: ['list', 'ls'],\n description: 'List workspaces',\n builder: (yargs) => yargs\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 .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}));\n\n// Component\nexport const ListCommand = wrapper(function ListComponent() {\n const args = useArgs();\n const project = useProject();\n\n // State\n const [workspaces, setWorkspaces] = useState<Workspace[]>();\n\n // Memo\n const attrs = useMemo(() => {\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 return attrs;\n }, [args]);\n\n const data = useMemo(() => {\n return workspaces?.map(wks => buildExtractor(attrs)(wks, args.json ?? false));\n }, [attrs, args, workspaces]);\n\n // Effects\n useEffect(() => void (async () => {\n // Setup pipeline\n const pipeline = new Pipeline();\n\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(args.private));\n }\n\n if (args.withScript !== undefined) {\n pipeline.add(Filter.scripts(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 // Filter\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(project.workspaces())) {\n workspaces.push(wks);\n }\n\n setWorkspaces(workspaces);\n })(), [args]);\n\n // Render\n if (!data) {\n return <Text><Spinner /> Loading workspaces</Text>;\n }\n\n return (\n <List\n attrs={attrs}\n data={data}\n json={args.json}\n withoutHeaders={!(args.headers ?? (attrs.length > 1))}\n />\n );\n});\n"]}
@@ -1,254 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ListCommand = void 0;
7
-
8
- var _jsxRuntime = require("react/jsx-runtime");
9
-
10
- var _jillCommon = require("@jujulego/jill-common");
11
-
12
- var _ink = require("ink");
13
-
14
- var _inkSpinner = _interopRequireDefault(require("ink-spinner"));
15
-
16
- var path = _interopRequireWildcard(require("path"));
17
-
18
- var _react = require("react");
19
-
20
- var _slugify = _interopRequireDefault(require("slugify"));
21
-
22
- var _command = require("../command");
23
-
24
- var _project = require("../wrappers/project.wrapper");
25
-
26
- var _List = require("../components/List");
27
-
28
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
-
30
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
-
32
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
-
34
- var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
35
- function adopt(value) {
36
- return value instanceof P ? value : new P(function (resolve) {
37
- resolve(value);
38
- });
39
- }
40
-
41
- return new (P || (P = Promise))(function (resolve, reject) {
42
- function fulfilled(value) {
43
- try {
44
- step(generator.next(value));
45
- } catch (e) {
46
- reject(e);
47
- }
48
- }
49
-
50
- function rejected(value) {
51
- try {
52
- step(generator["throw"](value));
53
- } catch (e) {
54
- reject(e);
55
- }
56
- }
57
-
58
- function step(result) {
59
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
60
- }
61
-
62
- step((generator = generator.apply(thisArg, _arguments || [])).next());
63
- });
64
- };
65
-
66
- var __asyncValues = void 0 && (void 0).__asyncValues || function (o) {
67
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
68
- var m = o[Symbol.asyncIterator],
69
- i;
70
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
71
- return this;
72
- }, i);
73
-
74
- function verb(n) {
75
- i[n] = o[n] && function (v) {
76
- return new Promise(function (resolve, reject) {
77
- v = o[n](v), settle(resolve, reject, v.done, v.value);
78
- });
79
- };
80
- }
81
-
82
- function settle(resolve, reject, d, v) {
83
- Promise.resolve(v).then(function (v) {
84
- resolve({
85
- value: v,
86
- done: d
87
- });
88
- }, reject);
89
- }
90
- };
91
-
92
- // Constants
93
- const LONG_ATTRIBUTES = ['name', 'version', 'root'];
94
- const JSON_ATTRIBUTES = ['name', 'version', 'slug', 'root'];
95
- const DEFAULT_ATTRIBUTES = ['name'];
96
- const EXTRACTORS = {
97
- name: wks => wks.name,
98
- version: wks => wks.manifest.version || undefined,
99
- root: (wks, json) => json ? wks.cwd : path.relative(process.cwd(), wks.cwd) || '.',
100
- slug: wks => (0, _slugify.default)(wks.name)
101
- }; // Utils
102
-
103
- function buildExtractor(attrs) {
104
- return (wks, json) => {
105
- const data = {};
106
-
107
- for (const attr of attrs) {
108
- data[attr] = EXTRACTORS[attr](wks, json);
109
- }
110
-
111
- return data;
112
- };
113
- } // Command
114
-
115
-
116
- const {
117
- wrapper,
118
- useArgs
119
- } = (0, _project.withProject)((0, _command.command)({
120
- name: ['list', 'ls'],
121
- description: 'List workspaces',
122
- builder: yargs => yargs.option('private', {
123
- type: 'boolean',
124
- group: 'Filters:',
125
- desc: 'Print only private workspaces'
126
- }).option('with-script', {
127
- type: 'array',
128
- string: true,
129
- group: 'Filters:',
130
- desc: 'Print only workspaces having the given script'
131
- }).option('affected', {
132
- alias: 'a',
133
- type: 'string',
134
- coerce: rev => rev === '' ? 'master' : rev,
135
- group: 'Affected:',
136
- 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.'
137
- }).option('affected-rev-sort', {
138
- type: 'string',
139
- group: 'Affected:',
140
- desc: 'Sort applied to git tag / git branch command'
141
- }).option('affected-rev-fallback', {
142
- type: 'string',
143
- default: 'master',
144
- group: 'Affected:',
145
- desc: 'Fallback revision, used if no revision matching the given format is found'
146
- }).option('attrs', {
147
- type: 'array',
148
- choices: ['name', 'version', 'root', 'slug'],
149
- default: [],
150
- group: 'Format:',
151
- desc: 'Select printed attributes'
152
- }).option('headers', {
153
- type: 'boolean',
154
- group: 'Format:',
155
- desc: 'Prints columns headers'
156
- }).option('long', {
157
- alias: 'l',
158
- type: 'boolean',
159
- group: 'Format:',
160
- desc: 'Prints name, version and root of all workspaces'
161
- }).option('json', {
162
- type: 'boolean',
163
- group: 'Format:',
164
- desc: 'Prints data as a JSON array'
165
- })
166
- })); // Component
167
-
168
- const ListCommand = wrapper(function ListComponent() {
169
- var _a;
170
-
171
- const args = useArgs();
172
- const project = (0, _project.useProject)(); // State
173
-
174
- const [workspaces, setWorkspaces] = (0, _react.useState)(); // Memo
175
-
176
- const attrs = (0, _react.useMemo)(() => {
177
- let attrs = args.attrs;
178
-
179
- if (args.attrs.length === 0) {
180
- if (args.long) {
181
- attrs = LONG_ATTRIBUTES;
182
- } else if (args.json) {
183
- attrs = JSON_ATTRIBUTES;
184
- } else {
185
- attrs = DEFAULT_ATTRIBUTES;
186
- }
187
- }
188
-
189
- return attrs;
190
- }, [args]);
191
- const data = (0, _react.useMemo)(() => {
192
- return workspaces === null || workspaces === void 0 ? void 0 : workspaces.map(wks => {
193
- var _a;
194
-
195
- return buildExtractor(attrs)(wks, (_a = args.json) !== null && _a !== void 0 ? _a : false);
196
- });
197
- }, [attrs, args, workspaces]); // Effects
198
-
199
- (0, _react.useEffect)(() => void (() => __awaiter(this, void 0, void 0, function* () {
200
- var e_1, _b; // Setup pipeline
201
-
202
-
203
- const pipeline = new _jillCommon.Pipeline();
204
-
205
- if (args.private !== undefined) {
206
- pipeline.add(_jillCommon.Filter.privateWorkspace(args.private));
207
- }
208
-
209
- if (args.withScript !== undefined) {
210
- pipeline.add(_jillCommon.Filter.scripts(args.withScript));
211
- }
212
-
213
- if (args.affected !== undefined) {
214
- pipeline.add(new _jillCommon.AffectedFilter(args.affected, args.affectedRevFallback, args.affectedRevSort));
215
- } // Filter
216
-
217
-
218
- const workspaces = [];
219
-
220
- try {
221
- for (var _c = __asyncValues(pipeline.filter(project.workspaces())), _d; _d = yield _c.next(), !_d.done;) {
222
- const wks = _d.value;
223
- workspaces.push(wks);
224
- }
225
- } catch (e_1_1) {
226
- e_1 = {
227
- error: e_1_1
228
- };
229
- } finally {
230
- try {
231
- if (_d && !_d.done && (_b = _c.return)) yield _b.call(_c);
232
- } finally {
233
- if (e_1) throw e_1.error;
234
- }
235
- }
236
-
237
- setWorkspaces(workspaces);
238
- }))(), [args]); // Render
239
-
240
- if (!data) {
241
- return (0, _jsxRuntime.jsxs)(_ink.Text, {
242
- children: [(0, _jsxRuntime.jsx)(_inkSpinner.default, {}), " Loading workspaces"]
243
- });
244
- }
245
-
246
- return (0, _jsxRuntime.jsx)(_List.List, {
247
- attrs: attrs,
248
- data: data,
249
- json: args.json,
250
- withoutHeaders: !((_a = args.headers) !== null && _a !== void 0 ? _a : attrs.length > 1)
251
- });
252
- });
253
- exports.ListCommand = ListCommand;
254
- //# sourceMappingURL=list.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["commands/list.command.js","commands/list.command.tsx"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__asyncValues","o","Symbol","asyncIterator","TypeError","m","i","call","__values","iterator","verb","n","v","settle","d","LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","wks","version","manifest","undefined","root","json","cwd","path","relative","process","slug","buildExtractor","attrs","data","attr","wrapper","useArgs","description","builder","yargs","option","type","group","desc","string","alias","coerce","rev","default","choices","ListCommand","ListComponent","_a","args","project","workspaces","setWorkspaces","length","long","map","e_1","_b","pipeline","Pipeline","private","add","Filter","privateWorkspace","withScript","scripts","affected","AffectedFilter","affectedRevFallback","affectedRevSort","_c","filter","_d","push","e_1_1","error","return","Text","children","Spinner","List","withoutHeaders","headers"],"mappings":"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","file":"list.command.js","sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { AffectedFilter, Filter, Pipeline } from '@jujulego/jill-common';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport * as path from 'path';\nimport { useEffect, useMemo, useState } from 'react';\nimport slugify from 'slugify';\nimport { command } from '../command';\nimport { useProject, withProject } from '../wrappers/project.wrapper';\nimport { List } from '../components/List';\n// Constants\nconst LONG_ATTRIBUTES = ['name', 'version', 'root'];\nconst JSON_ATTRIBUTES = ['name', 'version', 'slug', 'root'];\nconst DEFAULT_ATTRIBUTES = ['name'];\nconst EXTRACTORS = {\n name: wks => wks.name,\n version: wks => wks.manifest.version || undefined,\n root: (wks, json) => json ? wks.cwd : path.relative(process.cwd(), wks.cwd) || '.',\n slug: wks => slugify(wks.name)\n};\n// Utils\nfunction buildExtractor(attrs) {\n return (wks, json) => {\n const data = {};\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n return data;\n };\n}\n// Command\nconst { wrapper, useArgs } = withProject(command({\n name: ['list', 'ls'],\n description: 'List workspaces',\n builder: (yargs) => yargs\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 .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => 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: [],\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// Component\nexport const ListCommand = wrapper(function ListComponent() {\n var _a;\n const args = useArgs();\n const project = useProject();\n // State\n const [workspaces, setWorkspaces] = useState();\n // Memo\n const attrs = useMemo(() => {\n let attrs = args.attrs;\n if (args.attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n }\n else if (args.json) {\n attrs = JSON_ATTRIBUTES;\n }\n else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n return attrs;\n }, [args]);\n const data = useMemo(() => {\n return workspaces === null || workspaces === void 0 ? void 0 : workspaces.map(wks => { var _a; return buildExtractor(attrs)(wks, (_a = args.json) !== null && _a !== void 0 ? _a : false); });\n }, [attrs, args, workspaces]);\n // Effects\n useEffect(() => void (() => __awaiter(this, void 0, void 0, function* () {\n var e_1, _b;\n // Setup pipeline\n const pipeline = new Pipeline();\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(args.private));\n }\n if (args.withScript !== undefined) {\n pipeline.add(Filter.scripts(args.withScript));\n }\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(args.affected, args.affectedRevFallback, args.affectedRevSort));\n }\n // Filter\n const workspaces = [];\n try {\n for (var _c = __asyncValues(pipeline.filter(project.workspaces())), _d; _d = yield _c.next(), !_d.done;) {\n const wks = _d.value;\n workspaces.push(wks);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) yield _b.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n setWorkspaces(workspaces);\n }))(), [args]);\n // Render\n if (!data) {\n return _jsxs(Text, { children: [_jsx(Spinner, {}), \" Loading workspaces\"] });\n }\n return (_jsx(List, { attrs: attrs, data: data, json: args.json, withoutHeaders: !((_a = args.headers) !== null && _a !== void 0 ? _a : (attrs.length > 1)) }));\n});","import { AffectedFilter, Filter, Pipeline } from '@jujulego/jill-common';\nimport { Workspace } from '@jujulego/jill-core';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport * as path from 'path';\nimport { useEffect, useMemo, useState } from 'react';\nimport slugify from 'slugify';\n\nimport { command } from '../command';\nimport { useProject, withProject } from '../wrappers/project.wrapper';\nimport { List } from '../components/List';\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 => wks.manifest.version || undefined,\n root: (wks, json) => json ? wks.cwd : path.relative(process.cwd(), wks.cwd) || '.',\n slug: wks => slugify(wks.name)\n};\n\n// Utils\nfunction buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (wks, json) => {\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\nconst { wrapper, useArgs } = withProject(command({\n name: ['list', 'ls'],\n description: 'List workspaces',\n builder: (yargs) => yargs\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 .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}));\n\n// Component\nexport const ListCommand = wrapper(function ListComponent() {\n const args = useArgs();\n const project = useProject();\n\n // State\n const [workspaces, setWorkspaces] = useState<Workspace[]>();\n\n // Memo\n const attrs = useMemo(() => {\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 return attrs;\n }, [args]);\n\n const data = useMemo(() => {\n return workspaces?.map(wks => buildExtractor(attrs)(wks, args.json ?? false));\n }, [attrs, args, workspaces]);\n\n // Effects\n useEffect(() => void (async () => {\n // Setup pipeline\n const pipeline = new Pipeline();\n\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(args.private));\n }\n\n if (args.withScript !== undefined) {\n pipeline.add(Filter.scripts(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 // Filter\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(project.workspaces())) {\n workspaces.push(wks);\n }\n\n setWorkspaces(workspaces);\n })(), [args]);\n\n // Render\n if (!data) {\n return <Text><Spinner /> Loading workspaces</Text>;\n }\n\n return (\n <List\n attrs={attrs}\n data={data}\n json={args.json}\n withoutHeaders={!(args.headers ?? (attrs.length > 1))}\n />\n );\n});\n"]}
@@ -1,12 +0,0 @@
1
- import { WorkspaceDepsMode } from '@jujulego/jill-core';
2
- export declare const RunCommand: import("../application.context").CommandComponent<Omit<Omit<{
3
- script: string;
4
- } & {
5
- "deps-mode": WorkspaceDepsMode;
6
- }, "workspace"> & {
7
- workspace: string | undefined;
8
- }, "project" | "package-manager"> & {
9
- project: string | undefined;
10
- } & {
11
- "package-manager": import("@jujulego/jill-core").PackageManager | undefined;
12
- }>;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["commands/run.command.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAyBjE,eAAO,MAAM,UAAU;;;;;;;;;;EAqBrB,CAAC","file":"run.command.d.ts","sourcesContent":["import { TaskSet, WorkspaceDepsMode } from '@jujulego/jill-core';\nimport { useEffect, useRef } from 'react';\n\nimport { command } from '../command';\nimport { withProject } from '../wrappers/project.wrapper';\nimport { useWorkspace, withWorkspace } from '../wrappers/workspace.wrapper';\nimport { TaskSetSpinner } from '../components/TaskSetSpinner';\n\n// Command\nconst { wrapper, useArgs } = withProject(withWorkspace(command({\n name: 'run <script>',\n description: 'Run script inside workspace',\n builder: (yargs) => yargs\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\n// Component\nexport const RunCommand = wrapper(function InfoCommand() {\n const { script, depsMode, '--': rest = [] } = useArgs();\n const wks = useWorkspace();\n\n // Refs\n const tasks = useRef(new TaskSet());\n\n // Effects\n useEffect(() => void (async () => {\n const task = await wks.run(script, rest.map(arg => arg.toString()), {\n buildDeps: depsMode\n });\n\n tasks.current.add(task);\n tasks.current.start();\n })(), [script, depsMode, rest, wks]);\n\n // Render\n return (\n <TaskSetSpinner taskSet={tasks.current} />\n );\n});\n"]}
@@ -1,94 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RunCommand = void 0;
7
-
8
- var _jsxRuntime = require("react/jsx-runtime");
9
-
10
- var _jillCore = require("@jujulego/jill-core");
11
-
12
- var _react = require("react");
13
-
14
- var _command = require("../command");
15
-
16
- var _project = require("../wrappers/project.wrapper");
17
-
18
- var _workspace = require("../wrappers/workspace.wrapper");
19
-
20
- var _TaskSetSpinner = require("../components/TaskSetSpinner");
21
-
22
- var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
23
- function adopt(value) {
24
- return value instanceof P ? value : new P(function (resolve) {
25
- resolve(value);
26
- });
27
- }
28
-
29
- return new (P || (P = Promise))(function (resolve, reject) {
30
- function fulfilled(value) {
31
- try {
32
- step(generator.next(value));
33
- } catch (e) {
34
- reject(e);
35
- }
36
- }
37
-
38
- function rejected(value) {
39
- try {
40
- step(generator["throw"](value));
41
- } catch (e) {
42
- reject(e);
43
- }
44
- }
45
-
46
- function step(result) {
47
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
48
- }
49
-
50
- step((generator = generator.apply(thisArg, _arguments || [])).next());
51
- });
52
- };
53
-
54
- // Command
55
- const {
56
- wrapper,
57
- useArgs
58
- } = (0, _project.withProject)((0, _workspace.withWorkspace)((0, _command.command)({
59
- name: 'run <script>',
60
- description: 'Run script inside workspace',
61
- builder: yargs => yargs.positional('script', {
62
- type: 'string',
63
- demandOption: true
64
- }).option('deps-mode', {
65
- choice: ['all', 'prod', 'none'],
66
- default: 'all',
67
- desc: 'Dependency selection mode:\n' + ' - all = dependencies AND devDependencies\n' + ' - prod = dependencies\n' + ' - none = nothing'
68
- })
69
- }))); // Component
70
-
71
- const RunCommand = wrapper(function InfoCommand() {
72
- const {
73
- script,
74
- depsMode,
75
- '--': rest = []
76
- } = useArgs();
77
- const wks = (0, _workspace.useWorkspace)(); // Refs
78
-
79
- const tasks = (0, _react.useRef)(new _jillCore.TaskSet()); // Effects
80
-
81
- (0, _react.useEffect)(() => void (() => __awaiter(this, void 0, void 0, function* () {
82
- const task = yield wks.run(script, rest.map(arg => arg.toString()), {
83
- buildDeps: depsMode
84
- });
85
- tasks.current.add(task);
86
- tasks.current.start();
87
- }))(), [script, depsMode, rest, wks]); // Render
88
-
89
- return (0, _jsxRuntime.jsx)(_TaskSetSpinner.TaskSetSpinner, {
90
- taskSet: tasks.current
91
- });
92
- });
93
- exports.RunCommand = RunCommand;
94
- //# sourceMappingURL=run.command.js.map