@jujulego/jill 1.1.18 → 2.0.0-beta.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 (110) hide show
  1. package/dist/application.context.d.ts +28 -0
  2. package/dist/application.context.d.ts.map +1 -0
  3. package/dist/application.context.js +30 -0
  4. package/dist/application.context.js.map +1 -0
  5. package/dist/application.d.ts +7 -0
  6. package/dist/application.d.ts.map +1 -0
  7. package/dist/application.js +125 -0
  8. package/dist/application.js.map +1 -0
  9. package/dist/command.d.ts +7 -20
  10. package/dist/command.d.ts.map +1 -0
  11. package/dist/command.js +17 -62
  12. package/dist/command.js.map +1 -0
  13. package/dist/commands/each.command.d.ts +14 -13
  14. package/dist/commands/each.command.d.ts.map +1 -0
  15. package/dist/commands/each.command.js +144 -81
  16. package/dist/commands/each.command.js.map +1 -0
  17. package/dist/commands/list.command.d.ts +17 -14
  18. package/dist/commands/list.command.d.ts.map +1 -0
  19. package/dist/commands/list.command.js +199 -122
  20. package/dist/commands/list.command.js.map +1 -0
  21. package/dist/commands/run.command.d.ts +10 -11
  22. package/dist/commands/run.command.d.ts.map +1 -0
  23. package/dist/commands/run.command.js +73 -39
  24. package/dist/commands/run.command.js.map +1 -0
  25. package/dist/commands/tree.command.d.ts +7 -0
  26. package/dist/commands/tree.command.d.ts.map +1 -0
  27. package/dist/commands/tree.command.js +35 -0
  28. package/dist/commands/tree.command.js.map +1 -0
  29. package/dist/components/List.d.ts +9 -0
  30. package/dist/components/List.d.ts.map +1 -0
  31. package/dist/components/List.js +57 -0
  32. package/dist/components/List.js.map +1 -0
  33. package/dist/components/StaticLogs.d.ts +2 -0
  34. package/dist/components/StaticLogs.d.ts.map +1 -0
  35. package/dist/components/StaticLogs.js +77 -0
  36. package/dist/components/StaticLogs.js.map +1 -0
  37. package/dist/components/TaskSetSpinner.d.ts +6 -0
  38. package/dist/components/TaskSetSpinner.d.ts.map +1 -0
  39. package/dist/components/TaskSetSpinner.js +41 -0
  40. package/dist/components/TaskSetSpinner.js.map +1 -0
  41. package/dist/components/TaskSpinner.d.ts +6 -0
  42. package/dist/components/TaskSpinner.d.ts.map +1 -0
  43. package/dist/components/TaskSpinner.js +72 -0
  44. package/dist/components/TaskSpinner.js.map +1 -0
  45. package/dist/components/WorkspaceTree.d.ts +8 -0
  46. package/dist/components/WorkspaceTree.d.ts.map +1 -0
  47. package/dist/components/WorkspaceTree.js +153 -0
  48. package/dist/components/WorkspaceTree.js.map +1 -0
  49. package/dist/index.d.ts +1 -1
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +8 -8
  52. package/dist/index.js.map +1 -0
  53. package/dist/main.d.ts.map +1 -0
  54. package/dist/main.js +48 -21
  55. package/dist/main.js.map +1 -0
  56. package/dist/wrapper.d.ts +6 -0
  57. package/dist/wrapper.d.ts.map +1 -0
  58. package/dist/wrapper.js +30 -0
  59. package/dist/wrapper.js.map +1 -0
  60. package/dist/wrappers/project.wrapper.d.ts +7 -0
  61. package/dist/wrappers/project.wrapper.d.ts.map +1 -0
  62. package/dist/wrappers/project.wrapper.js +105 -0
  63. package/dist/wrappers/project.wrapper.js.map +1 -0
  64. package/dist/wrappers/workspace.wrapper.d.ts +5 -0
  65. package/dist/wrappers/workspace.wrapper.d.ts.map +1 -0
  66. package/dist/wrappers/workspace.wrapper.js +108 -0
  67. package/dist/wrappers/workspace.wrapper.js.map +1 -0
  68. package/package.json +43 -30
  69. package/dist/base.command.d.ts +0 -8
  70. package/dist/base.command.js +0 -33
  71. package/dist/commands/info.command.d.ts +0 -9
  72. package/dist/commands/info.command.js +0 -83
  73. package/dist/filters/affected.d.ts +0 -10
  74. package/dist/filters/affected.js +0 -80
  75. package/dist/filters/filter.d.ts +0 -8
  76. package/dist/filters/filter.js +0 -36
  77. package/dist/filters/index.d.ts +0 -2
  78. package/dist/filters/index.js +0 -22
  79. package/dist/logger.d.ts +0 -15
  80. package/dist/logger.js +0 -99
  81. package/dist/myr/commands/kill.command.d.ts +0 -11
  82. package/dist/myr/commands/kill.command.js +0 -52
  83. package/dist/myr/commands/list.command.d.ts +0 -18
  84. package/dist/myr/commands/list.command.js +0 -127
  85. package/dist/myr/commands/logs.command.d.ts +0 -11
  86. package/dist/myr/commands/logs.command.js +0 -83
  87. package/dist/myr/commands/spawn.command.d.ts +0 -11
  88. package/dist/myr/commands/spawn.command.js +0 -45
  89. package/dist/myr/commands/stop.command.d.ts +0 -7
  90. package/dist/myr/commands/stop.command.js +0 -43
  91. package/dist/myr/myr-client.d.ts +0 -22
  92. package/dist/myr/myr-client.js +0 -234
  93. package/dist/myr/myr.command.d.ts +0 -8
  94. package/dist/myr/myr.command.js +0 -46
  95. package/dist/myr/myr.process.d.ts +0 -1
  96. package/dist/myr/myr.process.js +0 -43
  97. package/dist/myr/watch.command.d.ts +0 -13
  98. package/dist/myr/watch.command.js +0 -87
  99. package/dist/pipeline.d.ts +0 -9
  100. package/dist/pipeline.js +0 -53
  101. package/dist/plugin.d.ts +0 -11
  102. package/dist/plugin.js +0 -40
  103. package/dist/project.command.d.ts +0 -13
  104. package/dist/project.command.js +0 -58
  105. package/dist/task-logger.d.ts +0 -14
  106. package/dist/task-logger.js +0 -66
  107. package/dist/utils/cli-list.d.ts +0 -15
  108. package/dist/utils/cli-list.js +0 -87
  109. package/dist/workspace.command.d.ts +0 -12
  110. package/dist/workspace.command.js +0 -55
@@ -5,111 +5,174 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.EachCommand = void 0;
7
7
 
8
- var _jillCore = require("@jujulego/jill-core");
8
+ var _jsxRuntime = require("react/jsx-runtime");
9
9
 
10
- var _filters = require("../filters");
10
+ var _jillCommon = require("@jujulego/jill-common");
11
11
 
12
- var _pipeline = require("../pipeline");
12
+ var _jillCore = require("@jujulego/jill-core");
13
13
 
14
- var _taskLogger = require("../task-logger");
14
+ var _ink = require("ink");
15
15
 
16
- var _project = require("../project.command");
16
+ var _react = require("react");
17
17
 
18
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
18
+ var _command = require("../command");
19
19
 
20
- // Command
21
- class EachCommand extends _project.ProjectCommand {
22
- constructor(...args) {
23
- super(...args);
20
+ var _TaskSetSpinner = require("../components/TaskSetSpinner");
24
21
 
25
- _defineProperty(this, "name", 'each <script>');
22
+ var _project = require("../wrappers/project.wrapper");
26
23
 
27
- _defineProperty(this, "description", 'Run script on selected workspaces');
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
+ });
28
29
  }
29
30
 
30
- // Methods
31
- define(builder) {
32
- return super.define(y => builder(y).positional('script', {
33
- type: 'string',
34
- demandOption: true
35
- }).option('deps-mode', {
36
- choice: ['all', 'prod', 'none'],
37
- default: 'all',
38
- desc: 'Dependency selection mode:\n' + ' - all = dependencies AND devDependencies\n' + ' - prod = dependencies\n' + ' - none = nothing'
39
- }).option('private', {
40
- type: 'boolean',
41
- group: 'Filters:',
42
- desc: 'Print only private workspaces'
43
- }).option('affected', {
44
- alias: 'a',
45
- type: 'string',
46
- coerce: rev => rev === '' ? 'master' : rev,
47
- group: 'Affected:',
48
- 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.'
49
- }).option('affected-rev-sort', {
50
- type: 'string',
51
- group: 'Affected:',
52
- desc: 'Sort applied to git tag / git branch command'
53
- }).option('affected-rev-fallback', {
54
- type: 'string',
55
- default: 'master',
56
- group: 'Affected:',
57
- desc: 'Fallback revision, used if no revision matching the given format is found'
58
- }));
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
+ };
59
70
  }
60
71
 
61
- async run(args) {
62
- await super.run(args); // Setup pipeline
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
+ };
63
81
 
64
- const pipeline = new _pipeline.Pipeline();
65
- pipeline.add(_filters.Filter.scripts([args.script]));
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]));
66
135
 
67
136
  if (args.private !== undefined) {
68
- pipeline.add(_filters.Filter.privateWorkspace(args.private));
137
+ pipeline.add(_jillCommon.Filter.privateWorkspace(args.private));
69
138
  }
70
139
 
71
140
  if (args.affected !== undefined) {
72
- pipeline.add(new _filters.AffectedFilter(args.affected, args['affected-rev-fallback'], args['affected-rev-sort']));
73
- } // Filter
74
-
75
-
76
- const workspaces = [];
77
-
78
- for await (const wks of pipeline.filter(this.project.workspaces())) {
79
- workspaces.push(wks);
141
+ pipeline.add(new _jillCommon.AffectedFilter(args.affected, args.affectedRevFallback, args.affectedRevSort));
80
142
  }
81
143
 
82
- if (workspaces.length === 0) {
83
- this.spinner.fail('No workspace found !');
84
- return 1;
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
+ }
85
162
  }
86
163
 
87
- this.spinner.stop();
88
- this.logger.verbose(`Will run ${args.script} in ${workspaces.map(wks => wks.name).join(', ')}`); // Run tasks
164
+ tasks.current.start(); // Result end code
89
165
 
90
- const set = new _jillCore.TaskSet();
91
- const tasks = [];
166
+ const [result] = yield tasks.current.waitFor('finished');
92
167
 
93
- for (const wks of workspaces) {
94
- const task = await wks.run(args.script, args['--']?.map(arg => arg.toString()), {
95
- buildDeps: args['deps-mode']
96
- });
97
- tasks.push(task);
98
- set.add(task);
168
+ if (result.failed) {
169
+ exit(new Error('Some tasks has failed'));
99
170
  }
171
+ }))(), [args]); // Render
100
172
 
101
- const tlogger = new _taskLogger.TaskLogger();
102
- tlogger.on('spin-multiple', count => `Working in ${count} packages ...`);
103
- tlogger.on('spin-simple', tsk => tasks.includes(tsk) ? `Running ${args.script} in ${tsk.context.workspace?.name} ...` : `Building ${tsk.context.workspace?.name} ...`);
104
- tlogger.on('fail', tsk => tasks.includes(tsk) ? `${tsk.context.workspace?.name} ${args.script} failed` : `Failed to build ${tsk.context.workspace?.name}`);
105
- tlogger.on('succeed', tsk => tasks.includes(tsk) ? `${tsk.context.workspace?.name} ${args.script} done` : `${tsk.context.workspace?.name} built`);
106
- tlogger.connect(set);
107
- set.start();
108
- const [result] = await set.waitFor('finished');
109
- return result.failed === 0 ? 0 : 1;
110
- }
111
-
112
- }
113
-
173
+ return (0, _jsxRuntime.jsx)(_TaskSetSpinner.TaskSetSpinner, {
174
+ taskSet: tasks.current
175
+ });
176
+ });
114
177
  exports.EachCommand = EachCommand;
115
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1hbmRzL2VhY2guY29tbWFuZC50cyJdLCJuYW1lcyI6WyJFYWNoQ29tbWFuZCIsIlByb2plY3RDb21tYW5kIiwiZGVmaW5lIiwiYnVpbGRlciIsInkiLCJwb3NpdGlvbmFsIiwidHlwZSIsImRlbWFuZE9wdGlvbiIsIm9wdGlvbiIsImNob2ljZSIsImRlZmF1bHQiLCJkZXNjIiwiZ3JvdXAiLCJhbGlhcyIsImNvZXJjZSIsInJldiIsInJ1biIsImFyZ3MiLCJwaXBlbGluZSIsIlBpcGVsaW5lIiwiYWRkIiwiRmlsdGVyIiwic2NyaXB0cyIsInNjcmlwdCIsInByaXZhdGUiLCJ1bmRlZmluZWQiLCJwcml2YXRlV29ya3NwYWNlIiwiYWZmZWN0ZWQiLCJBZmZlY3RlZEZpbHRlciIsIndvcmtzcGFjZXMiLCJ3a3MiLCJmaWx0ZXIiLCJwcm9qZWN0IiwicHVzaCIsImxlbmd0aCIsInNwaW5uZXIiLCJmYWlsIiwic3RvcCIsImxvZ2dlciIsInZlcmJvc2UiLCJtYXAiLCJuYW1lIiwiam9pbiIsInNldCIsIlRhc2tTZXQiLCJ0YXNrcyIsInRhc2siLCJhcmciLCJ0b1N0cmluZyIsImJ1aWxkRGVwcyIsInRsb2dnZXIiLCJUYXNrTG9nZ2VyIiwib24iLCJjb3VudCIsInRzayIsImluY2x1ZGVzIiwiY29udGV4dCIsIndvcmtzcGFjZSIsImNvbm5lY3QiLCJzdGFydCIsInJlc3VsdCIsIndhaXRGb3IiLCJmYWlsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQWFBO0FBQ08sTUFBTUEsV0FBTixTQUEwQkMsdUJBQTFCLENBQW1EO0FBQUE7QUFBQTs7QUFBQSxrQ0FFeEMsZUFGd0M7O0FBQUEseUNBR2pDLG1DQUhpQztBQUFBOztBQUt4RDtBQUNVQyxFQUFBQSxNQUFNLENBQU9DLE9BQVAsRUFBeUQ7QUFDdkUsV0FBTyxNQUFNRCxNQUFOLENBQWFFLENBQUMsSUFBSUQsT0FBTyxDQUFDQyxDQUFELENBQVAs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RCxJQUFTVCxLQUFLLENBQUNVLFFBQU4sQ0FBZUQsR0FBZixJQUF1QixHQUFFQSxHQUFHLENBQUNFLE9BQUosQ0FBWUMsU0FBWixFQUF1QmhCLElBQUssSUFBR3hCLElBQUksQ0FBQ00sTUFBTyxTQUFwRSxHQUFnRixtQkFBa0IrQixHQUFHLENBQUNFLE9BQUosQ0FBWUMsU0FBWixFQUF1QmhCLElBQUssRUFBMUo7QUFDQVMsSUFBQUEsT0FBTyxDQUFDRSxFQUFSLENBQVcsU0FBWCxFQUF1QkUsR0FBRCxJQUFTVCxLQUFLLENBQUNVLFFBQU4sQ0FBZUQsR0FBZixJQUF1QixHQUFFQSxHQUFHLENBQUNFLE9BQUosQ0FBWUMsU0FBWixFQUF1QmhCLElBQUssSUFBR3hCLElBQUksQ0FBQ00sTUFBTyxPQUFwRSxHQUE4RSxHQUFFK0IsR0FBRyxDQUFDRSxPQUFKLENBQVlDLFNBQVosRUFBdUJoQixJQUFLLFFBQTNJO0FBQ0FTLElBQUFBLE9BQU8sQ0FBQ1EsT0FBUixDQUFnQmYsR0FBaEI7QUFFQUEsSUFBQUEsR0FBRyxDQUFDZ0IsS0FBSjtBQUNBLFVBQU0sQ0FBQ0MsTUFBRCxJQUFXLE1BQU1qQixHQUFHLENBQUNrQixPQUFKLENBQVksVUFBWixDQUF2QjtBQUNBLFdBQU9ELE1BQU0sQ0FBQ0UsTUFBUCxLQUFrQixDQUFsQixHQUFzQixDQUF0QixHQUEwQixDQUFqQztBQUNEOztBQXJHdUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXNrLCBUYXNrU2V0LCBXb3Jrc3BhY2UsIFdvcmtzcGFjZURlcHNNb2RlIH0gZnJvbSAnQGp1anVsZWdvL2ppbGwtY29yZSc7XG5cbmltcG9ydCB7IEFyZ3VtZW50cywgQnVpbGRlciB9IGZyb20gJy4uL2NvbW1hbmQnO1xuaW1wb3J0IHsgQWZmZWN0ZWRGaWx0ZXIsIEZpbHRlciB9IGZyb20gJy4uL2ZpbHRlcnMnO1xuaW1wb3J0IHsgUGlwZWxpbmUgfSBmcm9tICcuLi9waXBlbGluZSc7XG5pbXBvcnQgeyBUYXNrTG9nZ2VyIH0gZnJvbSAnLi4vdGFzay1sb2dnZXInO1xuaW1wb3J0IHsgUHJvamVjdEFyZ3MsIFByb2plY3RDb21tYW5kIH0gZnJvbSAnLi4vcHJvamVjdC5jb21tYW5kJztcblxuLy8gVHlwZXNcbmV4cG9ydCBpbnRlcmZhY2UgRWFjaEFyZ3MgZXh0ZW5kcyBQcm9qZWN0QXJncyB7XG4gIHNjcmlwdDogc3RyaW5nO1xuICAnZGVwcy1tb2RlJzogV29ya3NwYWNlRGVwc01vZGU7XG5cbiAgcHJpdmF0ZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgYWZmZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgJ2FmZmVjdGVkLXJldi1zb3J0Jzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAnYWZmZWN0ZWQtcmV2LWZhbGxiYWNrJzogc3RyaW5nO1xufVxuXG4vLyBDb21tYW5kXG5leHBvcnQgY2xhc3MgRWFjaENvbW1hbmQgZXh0ZW5kcyBQcm9qZWN0Q29tbWFuZDxFYWNoQXJncz4ge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHJlYWRvbmx5IG5hbWUgPSAnZWFjaCA8c2NyaXB0Pic7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gJ1J1biBzY3JpcHQgb24gc2VsZWN0ZWQgd29ya3NwYWNlcyc7XG5cbiAgLy8gTWV0aG9kc1xuICBwcm90ZWN0ZWQgZGVmaW5lPFQsIFU+KGJ1aWxkZXI6IEJ1aWxkZXI8VCwgVT4pOiBCdWlsZGVyPFQsIFUgJiBFYWNoQXJncz4ge1xuICAgIHJldHVybiBzdXBlci5kZWZpbmUoeSA9PiBidWlsZGVyKHkpXG4gICAgICAucG9zaXRpb25hbCgnc2NyaXB0JywgeyB0eXBlOiAnc3RyaW5nJywgZGVtYW5kT3B0aW9uOiB0cnVlIH0pXG4gICAgICAub3B0aW9uKCdkZXBzLW1vZGUnLCB7XG4gICAgICAgIGNob2ljZTogWydhbGwnLCAncHJvZCcsICdub25lJ10sXG4gICAgICAgIGRlZmF1bHQ6ICdhbGwnIGFzIFdvcmtzcGFjZURlcHNNb2RlLFxuICAgICAgICBkZXNjOiAnRGVwZW5kZW5jeSBzZWxlY3Rpb24gbW9kZTpcXG4nICtcbiAgICAgICAgICAnIC0gYWxsID0gZGVwZW5kZW5jaWVzIEFORCBkZXZEZXBlbmRlbmNpZXNcXG4nICtcbiAgICAgICAgICAnIC0gcHJvZCA9IGRlcGVuZGVuY2llc1xcbicgK1xuICAgICAgICAgICcgLSBub25lID0gbm90aGluZydcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdwcml2YXRlJywge1xuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGdyb3VwOiAnRmlsdGVyczonLFxuICAgICAgICBkZXNjOiAnUHJpbnQgb25seSBwcml2YXRlIHdvcmtzcGFjZXMnLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb24oJ2FmZmVjdGVkJywge1xuICAgICAgICBhbGlhczogJ2EnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgY29lcmNlOiAocmV2OiBzdHJpbmcpID0+IHJldiA9PT0gJycgPyAnbWFzdGVyJyA6IHJldixcbiAgICAgICAgZ3JvdXA6ICdBZmZlY3RlZDonLFxuICAgICAgICBkZXNjOiAnUHJpbnQgb25seSBhZmZlY3RlZCB3b3Jrc3BhY2VzIHRvd2FyZHMgZ2l2ZW4gZ2l0IHJldmlzaW9uLiBJZiBubyByZXZpc2lvbiBpcyBnaXZlbiwgaXQgd2lsbCBjaGVjayB0b3dhcmRzIG1hc3Rlci5cXG4nICtcbiAgICAgICAgICAnUmVwbGFjZXMgJW5hbWUgYnkgd29ya3NwYWNlIG5hbWUuJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdhZmZlY3RlZC1yZXYtc29ydCcsIHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGdyb3VwOiAnQWZmZWN0ZWQ6JyxcbiAgICAgICAgZGVzYzogJ1NvcnQgYXBwbGllZCB0byBnaXQgdGFnIC8gZ2l0IGJyYW5jaCBjb21tYW5kJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdhZmZlY3RlZC1yZXYtZmFsbGJhY2snLCB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZWZhdWx0OiAnbWFzdGVyJyxcbiAgICAgICAgZ3JvdXA6ICdBZmZlY3RlZDonLFxuICAgICAgICBkZXNjOiAnRmFsbGJhY2sgcmV2aXNpb24sIHVzZWQgaWYgbm8gcmV2aXNpb24gbWF0Y2hpbmcgdGhlIGdpdmVuIGZvcm1hdCBpcyBmb3VuZCcsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcnVuKGFyZ3M6IEFyZ3VtZW50czxFYWNoQXJncz4pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGF3YWl0IHN1cGVyLnJ1bihhcmdzKTtcblxuICAgIC8vIFNldHVwIHBpcGVsaW5lXG4gICAgY29uc3QgcGlwZWxpbmUgPSBuZXcgUGlwZWxpbmUoKTtcbiAgICBwaXBlbGluZS5hZGQoRmlsdGVyLnNjcmlwdHMoW2FyZ3Muc2NyaXB0XSkpO1xuXG4gICAgaWYgKGFyZ3MucHJpdmF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwaXBlbGluZS5hZGQoRmlsdGVyLnByaXZhdGVXb3Jrc3BhY2UoYXJncy5wcml2YXRlKSk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3MuYWZmZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGlwZWxpbmUuYWRkKG5ldyBBZmZlY3RlZEZpbHRlcihcbiAgICAgICAgYXJncy5hZmZlY3RlZCxcbiAgICAgICAgYXJnc1snYWZmZWN0ZWQtcmV2LWZhbGxiYWNrJ10sXG4gICAgICAgIGFyZ3NbJ2FmZmVjdGVkLXJldi1zb3J0J11cbiAgICAgICkpO1xuICAgIH1cblxuICAgIC8vIEZpbHRlclxuICAgIGNvbnN0IHdvcmtzcGFjZXM6IFdvcmtzcGFjZVtdID0gW107XG5cbiAgICBmb3IgYXdhaXQgKGNvbnN0IHdrcyBvZiBwaXBlbGluZS5maWx0ZXIodGhpcy5wcm9qZWN0LndvcmtzcGFjZXMoKSkpIHtcbiAgICAgIHdvcmtzcGFjZXMucHVzaCh3a3MpO1xuICAgIH1cblxuICAgIGlmICh3b3Jrc3BhY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zcGlubmVyLmZhaWwoJ05vIHdvcmtzcGFjZSBmb3VuZCAhJyk7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICB0aGlzLnNwaW5uZXIuc3RvcCgpO1xuICAgIHRoaXMubG9nZ2VyLnZlcmJvc2UoYFdpbGwgcnVuICR7YXJncy5zY3JpcHR9IGluICR7d29ya3NwYWNlcy5tYXAod2tzID0+IHdrcy5uYW1lKS5qb2luKCcsICcpfWApO1xuXG4gICAgLy8gUnVuIHRhc2tzXG4gICAgY29uc3Qgc2V0ID0gbmV3IFRhc2tTZXQoKTtcbiAgICBjb25zdCB0YXNrczogVGFza1tdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IHdrcyBvZiB3b3Jrc3BhY2VzKSB7XG4gICAgICBjb25zdCB0YXNrID0gYXdhaXQgd2tzLnJ1bihhcmdzLnNjcmlwdCwgYXJnc1snLS0nXT8ubWFwKGFyZyA9PiBhcmcudG9TdHJpbmcoKSksIHtcbiAgICAgICAgYnVpbGREZXBzOiBhcmdzWydkZXBzLW1vZGUnXVxuICAgICAgfSk7XG5cbiAgICAgIHRhc2tzLnB1c2godGFzayk7XG4gICAgICBzZXQuYWRkKHRhc2spO1xuICAgIH1cblxuICAgIGNvbnN0IHRsb2dnZXIgPSBuZXcgVGFza0xvZ2dlcigpO1xuICAgIHRsb2dnZXIub24oJ3NwaW4tbXVsdGlwbGUnLCAoY291bnQpID0+IGBXb3JraW5nIGluICR7Y291bnR9IHBhY2thZ2VzIC4uLmApO1xuICAgIHRsb2dnZXIub24oJ3NwaW4tc2ltcGxlJywgKHRzaykgPT4gdGFza3MuaW5jbHVkZXModHNrKSA/IGBSdW5uaW5nICR7YXJncy5zY3JpcHR9IGluICR7dHNrLmNvbnRleHQud29ya3NwYWNlPy5uYW1lfSAuLi5gIDogYEJ1aWxkaW5nICR7dHNrLmNvbnRleHQud29ya3NwYWNlPy5uYW1lfSAuLi5gKTtcbiAgICB0bG9nZ2VyLm9uKCdmYWlsJywgKHRzaykgPT4gdGFza3MuaW5jbHVkZXModHNrKSA/IGAke3Rzay5jb250ZXh0LndvcmtzcGFjZT8ubmFtZX0gJHthcmdzLnNjcmlwdH0gZmFpbGVkYCA6IGBGYWlsZWQgdG8gYnVpbGQgJHt0c2suY29udGV4dC53b3Jrc3BhY2U/Lm5hbWV9YCk7XG4gICAgdGxvZ2dlci5vbignc3VjY2VlZCcsICh0c2spID0+IHRhc2tzLmluY2x1ZGVzKHRzaykgPyBgJHt0c2suY29udGV4dC53b3Jrc3BhY2U/Lm5hbWV9ICR7YXJncy5zY3JpcHR9IGRvbmVgIDogYCR7dHNrLmNvbnRleHQud29ya3NwYWNlPy5uYW1lfSBidWlsdGApO1xuICAgIHRsb2dnZXIuY29ubmVjdChzZXQpO1xuXG4gICAgc2V0LnN0YXJ0KCk7XG4gICAgY29uc3QgW3Jlc3VsdF0gPSBhd2FpdCBzZXQud2FpdEZvcignZmluaXNoZWQnKTtcbiAgICByZXR1cm4gcmVzdWx0LmZhaWxlZCA9PT0gMCA/IDAgOiAxO1xuICB9XG59Il0sImZpbGUiOiJjb21tYW5kcy9lYWNoLmNvbW1hbmQuanMifQ==
178
+ //# sourceMappingURL=each.command.js.map
@@ -0,0 +1 @@
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,22 +1,25 @@
1
- import { ProjectArgs, ProjectCommand } from '../project.command';
2
- import { Arguments, Builder } from '../command';
3
1
  export declare type Attribute = 'name' | 'version' | 'root' | 'slug';
4
2
  export declare type Data = Partial<Record<Attribute, string>>;
5
- export interface ListArgs extends ProjectArgs {
3
+ export declare const ListCommand: import("../application.context").CommandComponent<Omit<{
6
4
  private: boolean | undefined;
7
- 'with-script': string[] | undefined;
5
+ } & {
6
+ "with-script": string[] | undefined;
7
+ } & {
8
8
  affected: string | undefined;
9
- 'affected-rev-sort': string | undefined;
10
- 'affected-rev-fallback': string;
9
+ } & {
10
+ "affected-rev-sort": string | undefined;
11
+ } & {
12
+ "affected-rev-fallback": string;
13
+ } & {
11
14
  attrs: Attribute[];
15
+ } & {
12
16
  headers: boolean | undefined;
17
+ } & {
13
18
  long: boolean | undefined;
19
+ } & {
14
20
  json: boolean | undefined;
15
- }
16
- export declare class ListCommand extends ProjectCommand<ListArgs> {
17
- readonly name: string[];
18
- readonly description = "List workspaces";
19
- private buildExtractor;
20
- protected define<T, U>(builder: Builder<T, U>): Builder<T, U & ListArgs>;
21
- protected run(args: Arguments<ListArgs>): Promise<number | void>;
22
- }
21
+ }, "project" | "package-manager"> & {
22
+ project: string | undefined;
23
+ } & {
24
+ "package-manager": import("@jujulego/jill-core").PackageManager | undefined;
25
+ }>;
@@ -0,0 +1 @@
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"]}