@jujulego/jill 1.1.18 → 1.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/each.command.d.ts +1 -2
- package/dist/commands/each.command.d.ts.map +1 -0
- package/dist/commands/each.command.js +147 -59
- package/dist/commands/each.command.js.map +1 -0
- package/dist/commands/info.command.d.ts +1 -2
- package/dist/commands/info.command.d.ts.map +1 -0
- package/dist/commands/info.command.js +146 -51
- package/dist/commands/info.command.js.map +1 -0
- package/dist/commands/list.command.d.ts +1 -2
- package/dist/commands/list.command.d.ts.map +1 -0
- package/dist/commands/list.command.js +134 -60
- package/dist/commands/list.command.js.map +1 -0
- package/dist/commands/run.command.d.ts +1 -2
- package/dist/commands/run.command.d.ts.map +1 -0
- package/dist/commands/run.command.js +77 -26
- package/dist/commands/run.command.js.map +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +41 -9
- package/dist/main.js.map +1 -0
- package/dist/myr/commands/kill.command.d.ts +1 -2
- package/dist/myr/commands/kill.command.d.ts.map +1 -0
- package/dist/myr/commands/kill.command.js +60 -23
- package/dist/myr/commands/kill.command.js.map +1 -0
- package/dist/myr/commands/list.command.d.ts +2 -3
- package/dist/myr/commands/list.command.d.ts.map +1 -0
- package/dist/myr/commands/list.command.js +77 -37
- package/dist/myr/commands/list.command.js.map +1 -0
- package/dist/myr/commands/logs.command.d.ts +1 -2
- package/dist/myr/commands/logs.command.d.ts.map +1 -0
- package/dist/myr/commands/logs.command.js +110 -28
- package/dist/myr/commands/logs.command.js.map +1 -0
- package/dist/myr/commands/spawn.command.d.ts +1 -2
- package/dist/myr/commands/spawn.command.d.ts.map +1 -0
- package/dist/myr/commands/spawn.command.js +56 -17
- package/dist/myr/commands/spawn.command.js.map +1 -0
- package/dist/myr/commands/stop.command.d.ts +1 -2
- package/dist/myr/commands/stop.command.d.ts.map +1 -0
- package/dist/myr/commands/stop.command.js +58 -21
- package/dist/myr/commands/stop.command.js.map +1 -0
- package/dist/myr/myr-client.d.ts.map +1 -0
- package/dist/myr/myr-client.js +224 -80
- package/dist/myr/myr-client.js.map +1 -0
- package/dist/myr/myr.command.d.ts +1 -1
- package/dist/myr/myr.command.d.ts.map +1 -0
- package/dist/myr/myr.command.js +9 -13
- package/dist/myr/myr.command.js.map +1 -0
- package/dist/myr/myr.process.d.ts.map +1 -0
- package/dist/myr/myr.process.js +41 -7
- package/dist/myr/myr.process.js.map +1 -0
- package/dist/myr/watch.command.d.ts +1 -2
- package/dist/myr/watch.command.d.ts.map +1 -0
- package/dist/myr/watch.command.js +132 -50
- package/dist/myr/watch.command.js.map +1 -0
- package/dist/task-logger.d.ts.map +1 -0
- package/dist/task-logger.js +27 -17
- package/dist/task-logger.js.map +1 -0
- package/package.json +8 -12
- package/dist/base.command.d.ts +0 -8
- package/dist/base.command.js +0 -33
- package/dist/command.d.ts +0 -21
- package/dist/command.js +0 -69
- package/dist/filters/affected.d.ts +0 -10
- package/dist/filters/affected.js +0 -80
- package/dist/filters/filter.d.ts +0 -8
- package/dist/filters/filter.js +0 -36
- package/dist/filters/index.d.ts +0 -2
- package/dist/filters/index.js +0 -22
- package/dist/logger.d.ts +0 -15
- package/dist/logger.js +0 -99
- package/dist/pipeline.d.ts +0 -9
- package/dist/pipeline.js +0 -53
- package/dist/plugin.d.ts +0 -11
- package/dist/plugin.js +0 -40
- package/dist/project.command.d.ts +0 -13
- package/dist/project.command.js +0 -58
- package/dist/utils/cli-list.d.ts +0 -15
- package/dist/utils/cli-list.js +0 -87
- package/dist/workspace.command.d.ts +0 -12
- package/dist/workspace.command.js +0 -55
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["commands/list.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,SAAS,EAAE,OAAO,EAA6B,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOnI,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;AAItD,MAAM,WAAW,QAAS,SAAQ,WAAW;IAC3C,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,aAAa,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAEpC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,uBAAuB,EAAE,MAAM,CAAC;IAEhC,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B;AAeD,qBAAa,WAAY,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAEvD,QAAQ,CAAC,IAAI,WAAkB;IAC/B,QAAQ,CAAC,WAAW,qBAAqB;IAGzC,OAAO,CAAC,cAAc;IAYtB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;cA0DxD,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAyEvE","file":"list.command.d.ts","sourcesContent":["import { AffectedFilter, Arguments, Builder, CliList, Filter, Pipeline, ProjectArgs, ProjectCommand } from '@jujulego/jill-common';\nimport { Workspace } from '@jujulego/jill-core';\nimport chalk from 'chalk';\nimport slugify from 'slugify';\nimport path from 'path';\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\nexport interface ListArgs extends ProjectArgs {\n private: boolean | undefined;\n 'with-script': string[] | undefined;\n\n affected: string | undefined;\n 'affected-rev-sort': string | undefined;\n 'affected-rev-fallback': string;\n\n attrs: Attribute[];\n headers: boolean | undefined;\n long: boolean | undefined;\n json: boolean | undefined;\n}\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// Command\nexport class ListCommand extends ProjectCommand<ListArgs> {\n // Attributes\n readonly name = ['list', 'ls'];\n readonly description = 'List workspaces';\n\n // Methods\n private 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 protected define<T, U>(builder: Builder<T, U>): Builder<T, U & ListArgs> {\n return super.define(y => builder(y)\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\n protected async run(args: Arguments<ListArgs>): Promise<number | void> {\n await super.run(args);\n\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['with-script'] !== undefined) {\n pipeline.add(Filter.scripts(args['with-script']));\n }\n\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n args.affected,\n args['affected-rev-fallback'],\n args['affected-rev-sort']\n ));\n }\n\n // Filter\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(this.project.workspaces())) {\n workspaces.push(wks);\n }\n\n this.spinner.stop();\n\n // Build data\n let attrs = args.attrs;\n\n if (args.attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n } else if (args.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n\n const data = workspaces.map(wks => this.buildExtractor(attrs)(wks, args.json || false));\n\n // Print data\n if (args.json) {\n if (process.stdout.isTTY) { // Pretty print for ttys\n this.log(JSON.stringify(data, null, 2));\n } else {\n this.log(JSON.stringify(data));\n }\n } else {\n const list = new CliList();\n\n if (args.headers ?? (attrs.length > 1)) {\n list.setHeaders(attrs);\n }\n\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) || '.';\n }\n\n list.add(attrs.map(attr => d[attr] || ''));\n }\n\n for (const d of list.lines()) {\n this.log(d);\n }\n }\n }\n}\n"]}
|
|
@@ -5,23 +5,73 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.ListCommand = void 0;
|
|
7
7
|
|
|
8
|
+
var _jillCommon = require("@jujulego/jill-common");
|
|
9
|
+
|
|
8
10
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
9
11
|
|
|
10
12
|
var _slugify = _interopRequireDefault(require("slugify"));
|
|
11
13
|
|
|
12
14
|
var _path = _interopRequireDefault(require("path"));
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
17
|
|
|
16
|
-
var
|
|
18
|
+
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
19
|
+
function adopt(value) {
|
|
20
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
21
|
+
resolve(value);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
17
24
|
|
|
18
|
-
|
|
25
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
26
|
+
function fulfilled(value) {
|
|
27
|
+
try {
|
|
28
|
+
step(generator.next(value));
|
|
29
|
+
} catch (e) {
|
|
30
|
+
reject(e);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
19
33
|
|
|
20
|
-
|
|
34
|
+
function rejected(value) {
|
|
35
|
+
try {
|
|
36
|
+
step(generator["throw"](value));
|
|
37
|
+
} catch (e) {
|
|
38
|
+
reject(e);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
21
41
|
|
|
22
|
-
function
|
|
42
|
+
function step(result) {
|
|
43
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
44
|
+
}
|
|
23
45
|
|
|
24
|
-
|
|
46
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
var __asyncValues = void 0 && (void 0).__asyncValues || function (o) {
|
|
51
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
52
|
+
var m = o[Symbol.asyncIterator],
|
|
53
|
+
i;
|
|
54
|
+
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 () {
|
|
55
|
+
return this;
|
|
56
|
+
}, i);
|
|
57
|
+
|
|
58
|
+
function verb(n) {
|
|
59
|
+
i[n] = o[n] && function (v) {
|
|
60
|
+
return new Promise(function (resolve, reject) {
|
|
61
|
+
v = o[n](v), settle(resolve, reject, v.done, v.value);
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function settle(resolve, reject, d, v) {
|
|
67
|
+
Promise.resolve(v).then(function (v) {
|
|
68
|
+
resolve({
|
|
69
|
+
value: v,
|
|
70
|
+
done: d
|
|
71
|
+
});
|
|
72
|
+
}, reject);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
25
75
|
|
|
26
76
|
// Constants
|
|
27
77
|
const LONG_ATTRIBUTES = ['name', 'version', 'root'];
|
|
@@ -34,16 +84,15 @@ const EXTRACTORS = {
|
|
|
34
84
|
slug: wks => (0, _slugify.default)(wks.name)
|
|
35
85
|
}; // Command
|
|
36
86
|
|
|
37
|
-
class ListCommand extends
|
|
38
|
-
constructor(
|
|
39
|
-
super(...
|
|
87
|
+
class ListCommand extends _jillCommon.ProjectCommand {
|
|
88
|
+
constructor() {
|
|
89
|
+
super(...arguments); // Attributes
|
|
40
90
|
|
|
41
|
-
|
|
91
|
+
this.name = ['list', 'ls'];
|
|
92
|
+
this.description = 'List workspaces';
|
|
93
|
+
} // Methods
|
|
42
94
|
|
|
43
|
-
_defineProperty(this, "description", 'List workspaces');
|
|
44
|
-
}
|
|
45
95
|
|
|
46
|
-
// Methods
|
|
47
96
|
buildExtractor(attrs) {
|
|
48
97
|
return (wks, json) => {
|
|
49
98
|
const data = {};
|
|
@@ -103,75 +152,100 @@ class ListCommand extends _project.ProjectCommand {
|
|
|
103
152
|
}));
|
|
104
153
|
}
|
|
105
154
|
|
|
106
|
-
|
|
107
|
-
|
|
155
|
+
run(args) {
|
|
156
|
+
const _super = Object.create(null, {
|
|
157
|
+
run: {
|
|
158
|
+
get: () => super.run
|
|
159
|
+
}
|
|
160
|
+
});
|
|
108
161
|
|
|
109
|
-
|
|
162
|
+
var e_1, _a;
|
|
110
163
|
|
|
111
|
-
|
|
112
|
-
pipeline.add(_filters.Filter.privateWorkspace(args.private));
|
|
113
|
-
}
|
|
164
|
+
var _b;
|
|
114
165
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
166
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
167
|
+
yield _super.run.call(this, args); // Setup pipeline
|
|
118
168
|
|
|
119
|
-
|
|
120
|
-
pipeline.add(new _filters.AffectedFilter(args.affected, args['affected-rev-fallback'], args['affected-rev-sort']));
|
|
121
|
-
} // Filter
|
|
169
|
+
const pipeline = new _jillCommon.Pipeline();
|
|
122
170
|
|
|
171
|
+
if (args.private !== undefined) {
|
|
172
|
+
pipeline.add(_jillCommon.Filter.privateWorkspace(args.private));
|
|
173
|
+
}
|
|
123
174
|
|
|
124
|
-
|
|
175
|
+
if (args['with-script'] !== undefined) {
|
|
176
|
+
pipeline.add(_jillCommon.Filter.scripts(args['with-script']));
|
|
177
|
+
}
|
|
125
178
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
179
|
+
if (args.affected !== undefined) {
|
|
180
|
+
pipeline.add(new _jillCommon.AffectedFilter(args.affected, args['affected-rev-fallback'], args['affected-rev-sort']));
|
|
181
|
+
} // Filter
|
|
129
182
|
|
|
130
|
-
this.spinner.stop(); // Build data
|
|
131
183
|
|
|
132
|
-
|
|
184
|
+
const workspaces = [];
|
|
133
185
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
}
|
|
140
|
-
|
|
186
|
+
try {
|
|
187
|
+
for (var _c = __asyncValues(pipeline.filter(this.project.workspaces())), _d; _d = yield _c.next(), !_d.done;) {
|
|
188
|
+
const wks = _d.value;
|
|
189
|
+
workspaces.push(wks);
|
|
190
|
+
}
|
|
191
|
+
} catch (e_1_1) {
|
|
192
|
+
e_1 = {
|
|
193
|
+
error: e_1_1
|
|
194
|
+
};
|
|
195
|
+
} finally {
|
|
196
|
+
try {
|
|
197
|
+
if (_d && !_d.done && (_a = _c.return)) yield _a.call(_c);
|
|
198
|
+
} finally {
|
|
199
|
+
if (e_1) throw e_1.error;
|
|
200
|
+
}
|
|
141
201
|
}
|
|
142
|
-
}
|
|
143
202
|
|
|
144
|
-
|
|
203
|
+
this.spinner.stop(); // Build data
|
|
145
204
|
|
|
146
|
-
|
|
147
|
-
if (process.stdout.isTTY) {
|
|
148
|
-
// Pretty print for ttys
|
|
149
|
-
this.log(JSON.stringify(data, null, 2));
|
|
150
|
-
} else {
|
|
151
|
-
this.log(JSON.stringify(data));
|
|
152
|
-
}
|
|
153
|
-
} else {
|
|
154
|
-
const list = new _cliList.CliList();
|
|
205
|
+
let attrs = args.attrs;
|
|
155
206
|
|
|
156
|
-
if (args.
|
|
157
|
-
|
|
207
|
+
if (args.attrs.length === 0) {
|
|
208
|
+
if (args.long) {
|
|
209
|
+
attrs = LONG_ATTRIBUTES;
|
|
210
|
+
} else if (args.json) {
|
|
211
|
+
attrs = JSON_ATTRIBUTES;
|
|
212
|
+
} else {
|
|
213
|
+
attrs = DEFAULT_ATTRIBUTES;
|
|
214
|
+
}
|
|
158
215
|
}
|
|
159
216
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
217
|
+
const data = workspaces.map(wks => this.buildExtractor(attrs)(wks, args.json || false)); // Print data
|
|
218
|
+
|
|
219
|
+
if (args.json) {
|
|
220
|
+
if (process.stdout.isTTY) {
|
|
221
|
+
// Pretty print for ttys
|
|
222
|
+
this.log(JSON.stringify(data, null, 2));
|
|
223
|
+
} else {
|
|
224
|
+
this.log(JSON.stringify(data));
|
|
163
225
|
}
|
|
226
|
+
} else {
|
|
227
|
+
const list = new _jillCommon.CliList();
|
|
164
228
|
|
|
165
|
-
|
|
166
|
-
|
|
229
|
+
if ((_b = args.headers) !== null && _b !== void 0 ? _b : attrs.length > 1) {
|
|
230
|
+
list.setHeaders(attrs);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
for (const d of data) {
|
|
234
|
+
if (d.root) {
|
|
235
|
+
d.root = _path.default.relative(process.cwd(), d.root) || '.';
|
|
236
|
+
}
|
|
167
237
|
|
|
168
|
-
|
|
169
|
-
|
|
238
|
+
list.add(attrs.map(attr => d[attr] || ''));
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
for (const d of list.lines()) {
|
|
242
|
+
this.log(d);
|
|
243
|
+
}
|
|
170
244
|
}
|
|
171
|
-
}
|
|
245
|
+
});
|
|
172
246
|
}
|
|
173
247
|
|
|
174
248
|
}
|
|
175
249
|
|
|
176
250
|
exports.ListCommand = ListCommand;
|
|
177
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1hbmRzL2xpc3QuY29tbWFuZC50cyJdLCJuYW1lcyI6WyJMT05HX0FUVFJJQlVURVMiLCJKU09OX0FUVFJJQlVURVMiLCJERUZBVUxUX0FUVFJJQlVURVMiLCJFWFRSQUNUT1JTIiwibmFtZSIsIndrcyIsInZlcnNpb24iLCJqc29uIiwibWFuaWZlc3QiLCJ1bmRlZmluZWQiLCJjaGFsayIsImdyZXkiLCJyb290IiwiY3dkIiwic2x1ZyIsIkxpc3RDb21tYW5kIiwiUHJvamVjdENvbW1hbmQiLCJidWlsZEV4dHJhY3RvciIsImF0dHJzIiwiZGF0YSIsImF0dHIiLCJkZWZpbmUiLCJidWlsZGVyIiwieSIsIm9wdGlvbiIsInR5cGUiLCJncm91cCIsImRlc2MiLCJzdHJpbmciLCJhbGlhcyIsImNvZXJjZSIsInJldiIsImRlZmF1bHQiLCJjaG9pY2VzIiwicnVuIiwiYXJncyIsInBpcGVsaW5lIiwiUGlwZWxpbmUiLCJwcml2YXRlIiwiYWRkIiwiRmlsdGVyIiwicHJpdmF0ZVdvcmtzcGFjZSIsInNjcmlwdHMiLCJhZmZlY3RlZCIsIkFmZmVjdGVkRmlsdGVyIiwid29ya3NwYWNlcyIsImZpbHRlciIsInByb2plY3QiLCJwdXNoIiwic3Bpbm5lciIsInN0b3AiLCJsZW5ndGgiLCJsb25nIiwibWFwIiwicHJvY2VzcyIsInN0ZG91dCIsImlzVFRZIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsImxpc3QiLCJDbGlMaXN0IiwiaGVhZGVycyIsInNldEhlYWRlcnMiLCJkIiwicGF0aCIsInJlbGF0aXZlIiwibGluZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBdUJBO0FBQ0EsTUFBTUEsZUFBNEIsR0FBRyxDQUFDLE1BQUQsRUFBUyxTQUFULEVBQW9CLE1BQXBCLENBQXJDO0FBQ0EsTUFBTUMsZUFBNEIsR0FBRyxDQUFDLE1BQUQsRUFBUyxTQUFULEVBQW9CLE1BQXBCLEVB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QUFlQyxLQUFuQixFQUEwQjtBQUFFO0FBQzFCLGFBQUtDLEdBQUwsQ0FBU0MsSUFBSSxDQUFDQyxTQUFMLENBQWV4QyxJQUFmLEVBQXFCLElBQXJCLEVBQTJCLENBQTNCLENBQVQ7QUFDRCxPQUZELE1BRU87QUFDTCxhQUFLc0MsR0FBTCxDQUFTQyxJQUFJLENBQUNDLFNBQUwsQ0FBZXhDLElBQWYsQ0FBVDtBQUNEO0FBQ0YsS0FORCxNQU1PO0FBQ0wsWUFBTXlDLElBQUksR0FBRyxJQUFJQyxnQkFBSixFQUFiOztBQUVBLFVBQUkxQixJQUFJLENBQUMyQixPQUFMLElBQWlCNUMsS0FBSyxDQUFDaUMsTUFBTixHQUFlLENBQXBDLEVBQXdDO0FBQ3RDUyxRQUFBQSxJQUFJLENBQUNHLFVBQUwsQ0FBZ0I3QyxLQUFoQjtBQUNEOztBQUVELFdBQUssTUFBTThDLENBQVgsSUFBZ0I3QyxJQUFoQixFQUFzQjtBQUNwQixZQUFJNkMsQ0FBQyxDQUFDcEQsSUFBTixFQUFZO0FBQ1ZvRCxVQUFBQSxDQUFDLENBQUNwRCxJQUFGLEdBQVNxRCxjQUFLQyxRQUFMLENBQWNaLE9BQU8sQ0FBQ3pDLEdBQVIsRUFBZCxFQUE2Qm1ELENBQUMsQ0FBQ3BELElBQS9CLEtBQXdDLEdBQWpEO0FBQ0Q7O0FBRURnRCxRQUFBQSxJQUFJLENBQUNyQixHQUFMLENBQVNyQixLQUFLLENBQUNtQyxHQUFOLENBQVVqQyxJQUFJLElBQUk0QyxDQUFDLENBQUM1QyxJQUFELENBQUQsSUFBVyxFQUE3QixDQUFUO0FBQ0Q7O0FBRUQsV0FBSyxNQUFNNEMsQ0FBWCxJQUFnQkosSUFBSSxDQUFDTyxLQUFMLEVBQWhCLEVBQThCO0FBQzVCLGFBQUtWLEdBQUwsQ0FBU08sQ0FBVDtBQUNEO0FBQ0Y7QUFDRjs7QUFwSnVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSAnQGp1anVsZWdvL2ppbGwtY29yZSc7XG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHNsdWdpZnkgZnJvbSAnc2x1Z2lmeSc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgUHJvamVjdEFyZ3MsIFByb2plY3RDb21tYW5kIH0gZnJvbSAnLi4vcHJvamVjdC5jb21tYW5kJztcbmltcG9ydCB7IFBpcGVsaW5lIH0gZnJvbSAnLi4vcGlwZWxpbmUnO1xuaW1wb3J0IHsgQWZmZWN0ZWRGaWx0ZXIsIEZpbHRlciB9IGZyb20gJy4uL2ZpbHRlcnMnO1xuaW1wb3J0IHsgQ2xpTGlzdCB9IGZyb20gJy4uL3V0aWxzL2NsaS1saXN0JztcbmltcG9ydCB7IEFyZ3VtZW50cywgQnVpbGRlciB9IGZyb20gJy4uL2NvbW1hbmQnO1xuXG4vLyBUeXBlc1xuZXhwb3J0IHR5cGUgQXR0cmlidXRlID0gJ25hbWUnIHwgJ3ZlcnNpb24nIHwgJ3Jvb3QnIHwgJ3NsdWcnO1xuZXhwb3J0IHR5cGUgRGF0YSA9IFBhcnRpYWw8UmVjb3JkPEF0dHJpYnV0ZSwgc3RyaW5nPj47XG5cbnR5cGUgRXh0cmFjdG9yPFQ+ID0gKHdrczogV29ya3NwYWNlLCBqc29uOiBib29sZWFuKSA9PiBUO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RBcmdzIGV4dGVuZHMgUHJvamVjdEFyZ3Mge1xuICBwcml2YXRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAnd2l0aC1zY3JpcHQnOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICBhZmZlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAnYWZmZWN0ZWQtcmV2LXNvcnQnOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICdhZmZlY3RlZC1yZXYtZmFsbGJhY2snOiBzdHJpbmc7XG5cbiAgYXR0cnM6IEF0dHJpYnV0ZVtdO1xuICBoZWFkZXJzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBsb25nOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBqc29uOiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vLyBDb25zdGFudHNcbmNvbnN0IExPTkdfQVRUUklCVVRFUzogQXR0cmlidXRlW10gPSBbJ25hbWUnLCAndmVyc2lvbicsICdyb290J107XG5jb25zdCBKU09OX0FUVFJJQlVURVM6IEF0dHJpYnV0ZVtdID0gWyduYW1lJywgJ3ZlcnNpb24nLCAnc2x1ZycsICdyb290J107XG5jb25zdCBERUZBVUxUX0FUVFJJQlVURVM6IEF0dHJpYnV0ZVtdID0gWyduYW1lJ107XG5cbmNvbnN0IEVYVFJBQ1RPUlM6IFJlY29yZDxBdHRyaWJ1dGUsIEV4dHJhY3RvcjxzdHJpbmcgfCB1bmRlZmluZWQ+PiA9IHtcbiAgbmFtZTogd2tzID0+IHdrcy5uYW1lLFxuICB2ZXJzaW9uOiAod2tzLCBqc29uKSA9PiB3a3MubWFuaWZlc3QudmVyc2lvbiB8fCAoanNvbiA/IHVuZGVmaW5lZCA6IGNoYWxrLmdyZXkoJ3Vuc2V0JykpLFxuICByb290OiB3a3MgPT4gd2tzLmN3ZCxcbiAgc2x1Zzogd2tzID0+IHNsdWdpZnkod2tzLm5hbWUpXG59O1xuXG4vLyBDb21tYW5kXG5leHBvcnQgY2xhc3MgTGlzdENvbW1hbmQgZXh0ZW5kcyBQcm9qZWN0Q29tbWFuZDxMaXN0QXJncz4ge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHJlYWRvbmx5IG5hbWUgPSBbJ2xpc3QnLCAnbHMnXTtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24gPSAnTGlzdCB3b3Jrc3BhY2VzJztcblxuICAvLyBNZXRob2RzXG4gIHByaXZhdGUgYnVpbGRFeHRyYWN0b3IoYXR0cnM6IEF0dHJpYnV0ZVtdKTogRXh0cmFjdG9yPERhdGE+IHtcbiAgICByZXR1cm4gKHdrcywganNvbjogYm9vbGVhbikgPT4ge1xuICAgICAgY29uc3QgZGF0YTogRGF0YSA9IHt9O1xuXG4gICAgICBmb3IgKGNvbnN0IGF0dHIgb2YgYXR0cnMpIHtcbiAgICAgICAgZGF0YVthdHRyXSA9IEVYVFJBQ1RPUlNbYXR0cl0od2tzLCBqc29uKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZWZpbmU8VCwgVT4oYnVpbGRlcjogQnVpbGRlcjxULCBVPik6IEJ1aWxkZXI8VCwgVSAmIExpc3RBcmdzPiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlZmluZSh5ID0+IGJ1aWxkZXIoeSlcbiAgICAgIC5vcHRpb24oJ3ByaXZhdGUnLCB7XG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZ3JvdXA6ICdGaWx0ZXJzOicsXG4gICAgICAgIGRlc2M6ICdQcmludCBvbmx5IHByaXZhdGUgd29ya3NwYWNlcycsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignd2l0aC1zY3JpcHQnLCB7XG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgIHN0cmluZzogdHJ1ZSxcbiAgICAgICAgZ3JvdXA6ICdGaWx0ZXJzOicsXG4gICAgICAgIGRlc2M6ICdQcmludCBvbmx5IHdvcmtzcGFjZXMgaGF2aW5nIHRoZSBnaXZlbiBzY3JpcHQnLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb24oJ2FmZmVjdGVkJywge1xuICAgICAgICBhbGlhczogJ2EnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgY29lcmNlOiAocmV2OiBzdHJpbmcpID0+IHJldiA9PT0gJycgPyAnbWFzdGVyJyA6IHJldixcbiAgICAgICAgZ3JvdXA6ICdBZmZlY3RlZDonLFxuICAgICAgICBkZXNjOiAnUHJpbnQgb25seSBhZmZlY3RlZCB3b3Jrc3BhY2VzIHRvd2FyZHMgZ2l2ZW4gZ2l0IHJldmlzaW9uLiBJZiBubyByZXZpc2lvbiBpcyBnaXZlbiwgaXQgd2lsbCBjaGVjayB0b3dhcmRzIG1hc3Rlci5cXG4nICtcbiAgICAgICAgICAnUmVwbGFjZXMgJW5hbWUgYnkgd29ya3NwYWNlIG5hbWUuJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdhZmZlY3RlZC1yZXYtc29ydCcsIHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGdyb3VwOiAnQWZmZWN0ZWQ6JyxcbiAgICAgICAgZGVzYzogJ1NvcnQgYXBwbGllZCB0byBnaXQgdGFnIC8gZ2l0IGJyYW5jaCBjb21tYW5kJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdhZmZlY3RlZC1yZXYtZmFsbGJhY2snLCB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZWZhdWx0OiAnbWFzdGVyJyxcbiAgICAgICAgZ3JvdXA6ICdBZmZlY3RlZDonLFxuICAgICAgICBkZXNjOiAnRmFsbGJhY2sgcmV2aXNpb24sIHVzZWQgaWYgbm8gcmV2aXNpb24gbWF0Y2hpbmcgdGhlIGdpdmVuIGZvcm1hdCBpcyBmb3VuZCcsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignYXR0cnMnLCB7XG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgIGNob2ljZXM6IFsnbmFtZScsICd2ZXJzaW9uJywgJ3Jvb3QnLCAnc2x1ZyddLFxuICAgICAgICBkZWZhdWx0OiBbXSBhcyBBdHRyaWJ1dGVbXSxcbiAgICAgICAgZ3JvdXA6ICdGb3JtYXQ6JyxcbiAgICAgICAgZGVzYzogJ1NlbGVjdCBwcmludGVkIGF0dHJpYnV0ZXMnXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignaGVhZGVycycsIHtcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBncm91cDogJ0Zvcm1hdDonLFxuICAgICAgICBkZXNjOiAnUHJpbnRzIGNvbHVtbnMgaGVhZGVycydcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdsb25nJywge1xuICAgICAgICBhbGlhczogJ2wnLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGdyb3VwOiAnRm9ybWF0OicsXG4gICAgICAgIGRlc2M6ICdQcmludHMgbmFtZSwgdmVyc2lvbiBhbmQgcm9vdCBvZiBhbGwgd29ya3NwYWNlcycsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignanNvbicsIHtcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBncm91cDogJ0Zvcm1hdDonLFxuICAgICAgICBkZXNjOiAnUHJpbnRzIGRhdGEgYXMgYSBKU09OIGFycmF5JyxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBydW4oYXJnczogQXJndW1lbnRzPExpc3RBcmdzPik6IFByb21pc2U8bnVtYmVyIHwgdm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLnJ1bihhcmdzKTtcblxuICAgIC8vIFNldHVwIHBpcGVsaW5lXG4gICAgY29uc3QgcGlwZWxpbmUgPSBuZXcgUGlwZWxpbmUoKTtcblxuICAgIGlmIChhcmdzLnByaXZhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGlwZWxpbmUuYWRkKEZpbHRlci5wcml2YXRlV29ya3NwYWNlKGFyZ3MucHJpdmF0ZSkpO1xuICAgIH1cblxuICAgIGlmIChhcmdzWyd3aXRoLXNjcmlwdCddICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBpcGVsaW5lLmFkZChGaWx0ZXIuc2NyaXB0cyhhcmdzWyd3aXRoLXNjcmlwdCddKSk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3MuYWZmZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGlwZWxpbmUuYWRkKG5ldyBBZmZlY3RlZEZpbHRlcihcbiAgICAgICAgYXJncy5hZmZlY3RlZCxcbiAgICAgICAgYXJnc1snYWZmZWN0ZWQtcmV2LWZhbGxiYWNrJ10sXG4gICAgICAgIGFyZ3NbJ2FmZmVjdGVkLXJldi1zb3J0J11cbiAgICAgICkpO1xuICAgIH1cblxuICAgIC8vIEZpbHRlclxuICAgIGNvbnN0IHdvcmtzcGFjZXM6IFdvcmtzcGFjZVtdID0gW107XG5cbiAgICBmb3IgYXdhaXQgKGNvbnN0IHdrcyBvZiBwaXBlbGluZS5maWx0ZXIodGhpcy5wcm9qZWN0LndvcmtzcGFjZXMoKSkpIHtcbiAgICAgIHdvcmtzcGFjZXMucHVzaCh3a3MpO1xuICAgIH1cblxuICAgIHRoaXMuc3Bpbm5lci5zdG9wKCk7XG5cbiAgICAvLyBCdWlsZCBkYXRhXG4gICAgbGV0IGF0dHJzID0gYXJncy5hdHRycztcblxuICAgIGlmIChhcmdzLmF0dHJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaWYgKGFyZ3MubG9uZykge1xuICAgICAgICBhdHRycyA9IExPTkdfQVRUUklCVVRFUztcbiAgICAgIH0gZWxzZSBpZiAoYXJncy5qc29uKSB7XG4gICAgICAgIGF0dHJzID0gSlNPTl9BVFRSSUJVVEVTO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXR0cnMgPSBERUZBVUxUX0FUVFJJQlVURVM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YSA9IHdvcmtzcGFjZXMubWFwKHdrcyA9PiB0aGlzLmJ1aWxkRXh0cmFjdG9yKGF0dHJzKSh3a3MsIGFyZ3MuanNvbiB8fCBmYWxzZSkpO1xuXG4gICAgLy8gUHJpbnQgZGF0YVxuICAgIGlmIChhcmdzLmpzb24pIHtcbiAgICAgIGlmIChwcm9jZXNzLnN0ZG91dC5pc1RUWSkgeyAvLyBQcmV0dHkgcHJpbnQgZm9yIHR0eXNcbiAgICAgICAgdGhpcy5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsaXN0ID0gbmV3IENsaUxpc3QoKTtcblxuICAgICAgaWYgKGFyZ3MuaGVhZGVycyA/PyAoYXR0cnMubGVuZ3RoID4gMSkpIHtcbiAgICAgICAgbGlzdC5zZXRIZWFkZXJzKGF0dHJzKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBkIG9mIGRhdGEpIHtcbiAgICAgICAgaWYgKGQucm9vdCkge1xuICAgICAgICAgIGQucm9vdCA9IHBhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgZC5yb290KSB8fCAnLic7XG4gICAgICAgIH1cblxuICAgICAgICBsaXN0LmFkZChhdHRycy5tYXAoYXR0ciA9PiBkW2F0dHJdIHx8ICcnKSk7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgZCBvZiBsaXN0LmxpbmVzKCkpIHtcbiAgICAgICAgdGhpcy5sb2coZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59Il0sImZpbGUiOiJjb21tYW5kcy9saXN0LmNvbW1hbmQuanMifQ==
|
|
251
|
+
//# sourceMappingURL=list.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["commands/list.command.ts","commands/list.command.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__asyncValues","o","Symbol","asyncIterator","TypeError","m","i","call","__values","iterator","verb","n","v","settle","d","LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","wks","version","json","manifest","undefined","chalk","grey","root","cwd","slug","ListCommand","ProjectCommand","constructor","arguments","description","buildExtractor","attrs","data","attr","define","builder","y","option","type","group","desc","string","alias","coerce","rev","default","choices","run","args","_super","Object","create","get","e_1","_a","_b","pipeline","Pipeline","private","add","Filter","privateWorkspace","scripts","affected","AffectedFilter","workspaces","_c","filter","project","_d","push","e_1_1","error","return","spinner","stop","length","long","map","process","stdout","isTTY","log","JSON","stringify","list","CliList","headers","setHeaders","path","relative","lines"],"mappings":"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","file":"list.command.js","sourcesContent":["import { AffectedFilter, Arguments, Builder, CliList, Filter, Pipeline, ProjectArgs, ProjectCommand } from '@jujulego/jill-common';\nimport { Workspace } from '@jujulego/jill-core';\nimport chalk from 'chalk';\nimport slugify from 'slugify';\nimport path from 'path';\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\nexport interface ListArgs extends ProjectArgs {\n private: boolean | undefined;\n 'with-script': string[] | undefined;\n\n affected: string | undefined;\n 'affected-rev-sort': string | undefined;\n 'affected-rev-fallback': string;\n\n attrs: Attribute[];\n headers: boolean | undefined;\n long: boolean | undefined;\n json: boolean | undefined;\n}\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// Command\nexport class ListCommand extends ProjectCommand<ListArgs> {\n // Attributes\n readonly name = ['list', 'ls'];\n readonly description = 'List workspaces';\n\n // Methods\n private 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 protected define<T, U>(builder: Builder<T, U>): Builder<T, U & ListArgs> {\n return super.define(y => builder(y)\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\n protected async run(args: Arguments<ListArgs>): Promise<number | void> {\n await super.run(args);\n\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['with-script'] !== undefined) {\n pipeline.add(Filter.scripts(args['with-script']));\n }\n\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n args.affected,\n args['affected-rev-fallback'],\n args['affected-rev-sort']\n ));\n }\n\n // Filter\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(this.project.workspaces())) {\n workspaces.push(wks);\n }\n\n this.spinner.stop();\n\n // Build data\n let attrs = args.attrs;\n\n if (args.attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n } else if (args.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n\n const data = workspaces.map(wks => this.buildExtractor(attrs)(wks, args.json || false));\n\n // Print data\n if (args.json) {\n if (process.stdout.isTTY) { // Pretty print for ttys\n this.log(JSON.stringify(data, null, 2));\n } else {\n this.log(JSON.stringify(data));\n }\n } else {\n const list = new CliList();\n\n if (args.headers ?? (attrs.length > 1)) {\n list.setHeaders(attrs);\n }\n\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) || '.';\n }\n\n list.add(attrs.map(attr => d[attr] || ''));\n }\n\n for (const d of list.lines()) {\n this.log(d);\n }\n }\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nimport { AffectedFilter, CliList, Filter, Pipeline, ProjectCommand } from '@jujulego/jill-common';\nimport chalk from 'chalk';\nimport slugify from 'slugify';\nimport path from 'path';\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, json) => wks.manifest.version || (json ? undefined : chalk.grey('unset')),\n root: wks => wks.cwd,\n slug: wks => slugify(wks.name)\n};\n// Command\nexport class ListCommand extends ProjectCommand {\n constructor() {\n super(...arguments);\n // Attributes\n this.name = ['list', 'ls'];\n this.description = 'List workspaces';\n }\n // Methods\n 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 define(builder) {\n return super.define(y => builder(y)\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 run(args) {\n const _super = Object.create(null, {\n run: { get: () => super.run }\n });\n var e_1, _a;\n var _b;\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.run.call(this, args);\n // Setup pipeline\n const pipeline = new Pipeline();\n if (args.private !== undefined) {\n pipeline.add(Filter.privateWorkspace(args.private));\n }\n if (args['with-script'] !== undefined) {\n pipeline.add(Filter.scripts(args['with-script']));\n }\n if (args.affected !== undefined) {\n pipeline.add(new AffectedFilter(args.affected, args['affected-rev-fallback'], args['affected-rev-sort']));\n }\n // Filter\n const workspaces = [];\n try {\n for (var _c = __asyncValues(pipeline.filter(this.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 && (_a = _c.return)) yield _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.spinner.stop();\n // Build data\n let attrs = args.attrs;\n if (args.attrs.length === 0) {\n if (args.long) {\n attrs = LONG_ATTRIBUTES;\n }\n else if (args.json) {\n attrs = JSON_ATTRIBUTES;\n }\n else {\n attrs = DEFAULT_ATTRIBUTES;\n }\n }\n const data = workspaces.map(wks => this.buildExtractor(attrs)(wks, args.json || false));\n // Print data\n if (args.json) {\n if (process.stdout.isTTY) { // Pretty print for ttys\n this.log(JSON.stringify(data, null, 2));\n }\n else {\n this.log(JSON.stringify(data));\n }\n }\n else {\n const list = new CliList();\n if ((_b = args.headers) !== null && _b !== void 0 ? _b : (attrs.length > 1)) {\n list.setHeaders(attrs);\n }\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) || '.';\n }\n list.add(attrs.map(attr => d[attr] || ''));\n }\n for (const d of list.lines()) {\n this.log(d);\n }\n }\n });\n }\n}"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
+
import { Arguments, Builder, WorkspaceArgs, WorkspaceCommand } from '@jujulego/jill-common';
|
|
1
2
|
import { WorkspaceDepsMode } from '@jujulego/jill-core';
|
|
2
|
-
import { Arguments, Builder } from '../command';
|
|
3
|
-
import { WorkspaceArgs, WorkspaceCommand } from '../workspace.command';
|
|
4
3
|
export interface RunArgs extends WorkspaceArgs {
|
|
5
4
|
script: string;
|
|
6
5
|
'deps-mode': WorkspaceDepsMode;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["commands/run.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAW,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKjE,MAAM,WAAW,OAAQ,SAAQ,aAAa;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,iBAAiB,CAAC;CAChC;AAGD,qBAAa,UAAW,SAAQ,gBAAgB,CAAC,OAAO,CAAC;IAEvD,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,WAAW,iCAAiC;IAGrD,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;cAcvD,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAqB/D","file":"run.command.d.ts","sourcesContent":["import { Arguments, Builder, WorkspaceArgs, WorkspaceCommand } from '@jujulego/jill-common';\nimport { TaskSet, WorkspaceDepsMode } from '@jujulego/jill-core';\n\nimport { TaskLogger } from '../task-logger';\n\n// Types\nexport interface RunArgs extends WorkspaceArgs {\n script: string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\nexport class RunCommand extends WorkspaceCommand<RunArgs> {\n // Attributes\n readonly name = 'run <script>';\n readonly description = 'Run script inside workspace';\n\n // Methods\n protected define<T, U>(builder: Builder<T, U>): Builder<T, U & RunArgs> {\n return super.define(y => builder(y)\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\n protected async run(args: Arguments<RunArgs>): Promise<number> {\n await super.run(args);\n this.spinner.stop();\n\n // Run build task\n const set = new TaskSet();\n const task = await this.workspace.run(args.script, args['--']?.map(arg => arg.toString()), {\n buildDeps: args['deps-mode']\n });\n set.add(task);\n\n const tlogger = new TaskLogger();\n tlogger.on('spin-simple', (tsk) => tsk === task ? `Running ${args.script} in ${this.workspace.name} ...` : `Building ${tsk.context.workspace?.name} ...`);\n tlogger.on('fail', (tsk) => tsk === task ? `${args.script} failed` : `Failed to build ${tsk.context.workspace?.name}`);\n tlogger.on('succeed', (tsk) => tsk === task ? `${this.workspace.name} ${args.script} done` : `${tsk.context.workspace?.name} built`);\n tlogger.connect(set);\n\n set.start();\n const [result] = await set.waitFor('finished');\n return result.failed === 0 ? 0 : 1;\n }\n}\n"]}
|
|
@@ -5,25 +5,54 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.RunCommand = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _jillCommon = require("@jujulego/jill-common");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _jillCore = require("@jujulego/jill-core");
|
|
11
11
|
|
|
12
12
|
var _taskLogger = require("../task-logger");
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) {
|
|
16
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
17
|
+
resolve(value);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
22
|
+
function fulfilled(value) {
|
|
23
|
+
try {
|
|
24
|
+
step(generator.next(value));
|
|
25
|
+
} catch (e) {
|
|
26
|
+
reject(e);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function rejected(value) {
|
|
31
|
+
try {
|
|
32
|
+
step(generator["throw"](value));
|
|
33
|
+
} catch (e) {
|
|
34
|
+
reject(e);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function step(result) {
|
|
39
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
43
|
+
});
|
|
44
|
+
};
|
|
15
45
|
|
|
16
46
|
// Command
|
|
17
|
-
class RunCommand extends
|
|
18
|
-
constructor(
|
|
19
|
-
super(...
|
|
47
|
+
class RunCommand extends _jillCommon.WorkspaceCommand {
|
|
48
|
+
constructor() {
|
|
49
|
+
super(...arguments); // Attributes
|
|
20
50
|
|
|
21
|
-
|
|
51
|
+
this.name = 'run <script>';
|
|
52
|
+
this.description = 'Run script inside workspace';
|
|
53
|
+
} // Methods
|
|
22
54
|
|
|
23
|
-
_defineProperty(this, "description", 'Run script inside workspace');
|
|
24
|
-
}
|
|
25
55
|
|
|
26
|
-
// Methods
|
|
27
56
|
define(builder) {
|
|
28
57
|
return super.define(y => builder(y).positional('script', {
|
|
29
58
|
type: 'string',
|
|
@@ -35,26 +64,48 @@ class RunCommand extends _workspace.WorkspaceCommand {
|
|
|
35
64
|
}));
|
|
36
65
|
}
|
|
37
66
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
67
|
+
run(args) {
|
|
68
|
+
const _super = Object.create(null, {
|
|
69
|
+
run: {
|
|
70
|
+
get: () => super.run
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
var _a;
|
|
75
|
+
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
yield _super.run.call(this, args);
|
|
78
|
+
this.spinner.stop(); // Run build task
|
|
79
|
+
|
|
80
|
+
const set = new _jillCore.TaskSet();
|
|
81
|
+
const task = yield this.workspace.run(args.script, (_a = args['--']) === null || _a === void 0 ? void 0 : _a.map(arg => arg.toString()), {
|
|
82
|
+
buildDeps: args['deps-mode']
|
|
83
|
+
});
|
|
84
|
+
set.add(task);
|
|
85
|
+
const tlogger = new _taskLogger.TaskLogger();
|
|
86
|
+
tlogger.on('spin-simple', tsk => {
|
|
87
|
+
var _a;
|
|
88
|
+
|
|
89
|
+
return tsk === task ? `Running ${args.script} in ${this.workspace.name} ...` : `Building ${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name} ...`;
|
|
90
|
+
});
|
|
91
|
+
tlogger.on('fail', tsk => {
|
|
92
|
+
var _a;
|
|
93
|
+
|
|
94
|
+
return tsk === task ? `${args.script} failed` : `Failed to build ${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name}`;
|
|
95
|
+
});
|
|
96
|
+
tlogger.on('succeed', tsk => {
|
|
97
|
+
var _a;
|
|
41
98
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
99
|
+
return tsk === task ? `${this.workspace.name} ${args.script} done` : `${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name} built`;
|
|
100
|
+
});
|
|
101
|
+
tlogger.connect(set);
|
|
102
|
+
set.start();
|
|
103
|
+
const [result] = yield set.waitFor('finished');
|
|
104
|
+
return result.failed === 0 ? 0 : 1;
|
|
45
105
|
});
|
|
46
|
-
set.add(task);
|
|
47
|
-
const tlogger = new _taskLogger.TaskLogger();
|
|
48
|
-
tlogger.on('spin-simple', tsk => tsk === task ? `Running ${args.script} in ${this.workspace.name} ...` : `Building ${tsk.context.workspace?.name} ...`);
|
|
49
|
-
tlogger.on('fail', tsk => tsk === task ? `${args.script} failed` : `Failed to build ${tsk.context.workspace?.name}`);
|
|
50
|
-
tlogger.on('succeed', tsk => tsk === task ? `${this.workspace.name} ${args.script} done` : `${tsk.context.workspace?.name} built`);
|
|
51
|
-
tlogger.connect(set);
|
|
52
|
-
set.start();
|
|
53
|
-
const [result] = await set.waitFor('finished');
|
|
54
|
-
return result.failed === 0 ? 0 : 1;
|
|
55
106
|
}
|
|
56
107
|
|
|
57
108
|
}
|
|
58
109
|
|
|
59
110
|
exports.RunCommand = RunCommand;
|
|
60
|
-
//# sourceMappingURL=
|
|
111
|
+
//# sourceMappingURL=run.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["commands/run.command.ts","commands/run.command.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","RunCommand","WorkspaceCommand","constructor","arguments","name","description","define","builder","y","positional","type","demandOption","option","choice","default","desc","run","args","_super","Object","create","get","_a","call","spinner","stop","set","TaskSet","task","workspace","script","map","arg","toString","buildDeps","add","tlogger","TaskLogger","on","tsk","context","connect","start","waitFor","failed"],"mappings":"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","file":"run.command.js","sourcesContent":["import { Arguments, Builder, WorkspaceArgs, WorkspaceCommand } from '@jujulego/jill-common';\nimport { TaskSet, WorkspaceDepsMode } from '@jujulego/jill-core';\n\nimport { TaskLogger } from '../task-logger';\n\n// Types\nexport interface RunArgs extends WorkspaceArgs {\n script: string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\nexport class RunCommand extends WorkspaceCommand<RunArgs> {\n // Attributes\n readonly name = 'run <script>';\n readonly description = 'Run script inside workspace';\n\n // Methods\n protected define<T, U>(builder: Builder<T, U>): Builder<T, U & RunArgs> {\n return super.define(y => builder(y)\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\n protected async run(args: Arguments<RunArgs>): Promise<number> {\n await super.run(args);\n this.spinner.stop();\n\n // Run build task\n const set = new TaskSet();\n const task = await this.workspace.run(args.script, args['--']?.map(arg => arg.toString()), {\n buildDeps: args['deps-mode']\n });\n set.add(task);\n\n const tlogger = new TaskLogger();\n tlogger.on('spin-simple', (tsk) => tsk === task ? `Running ${args.script} in ${this.workspace.name} ...` : `Building ${tsk.context.workspace?.name} ...`);\n tlogger.on('fail', (tsk) => tsk === task ? `${args.script} failed` : `Failed to build ${tsk.context.workspace?.name}`);\n tlogger.on('succeed', (tsk) => tsk === task ? `${this.workspace.name} ${args.script} done` : `${tsk.context.workspace?.name} built`);\n tlogger.connect(set);\n\n set.start();\n const [result] = await set.waitFor('finished');\n return result.failed === 0 ? 0 : 1;\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { WorkspaceCommand } from '@jujulego/jill-common';\nimport { TaskSet } from '@jujulego/jill-core';\nimport { TaskLogger } from '../task-logger';\n// Command\nexport class RunCommand extends WorkspaceCommand {\n constructor() {\n super(...arguments);\n // Attributes\n this.name = 'run <script>';\n this.description = 'Run script inside workspace';\n }\n // Methods\n define(builder) {\n return super.define(y => builder(y)\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 }\n run(args) {\n const _super = Object.create(null, {\n run: { get: () => super.run }\n });\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.run.call(this, args);\n this.spinner.stop();\n // Run build task\n const set = new TaskSet();\n const task = yield this.workspace.run(args.script, (_a = args['--']) === null || _a === void 0 ? void 0 : _a.map(arg => arg.toString()), {\n buildDeps: args['deps-mode']\n });\n set.add(task);\n const tlogger = new TaskLogger();\n tlogger.on('spin-simple', (tsk) => { var _a; return tsk === task ? `Running ${args.script} in ${this.workspace.name} ...` : `Building ${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name} ...`; });\n tlogger.on('fail', (tsk) => { var _a; return tsk === task ? `${args.script} failed` : `Failed to build ${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name}`; });\n tlogger.on('succeed', (tsk) => { var _a; return tsk === task ? `${this.workspace.name} ${args.script} done` : `${(_a = tsk.context.workspace) === null || _a === void 0 ? void 0 : _a.name} built`; });\n tlogger.connect(set);\n set.start();\n const [result] = yield set.waitFor('finished');\n return result.failed === 0 ? 0 : 1;\n });\n }\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC","file":"index.d.ts","sourcesContent":["export { EachCommand } from './commands/each.command';\nexport { InfoCommand } from './commands/info.command';\nexport { ListCommand } from './commands/list.command';\nexport { RunCommand } from './commands/run.command';\n"]}
|
package/dist/index.js
CHANGED
|
@@ -35,4 +35,4 @@ var _info = require("./commands/info.command");
|
|
|
35
35
|
var _list = require("./commands/list.command");
|
|
36
36
|
|
|
37
37
|
var _run = require("./commands/run.command");
|
|
38
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA","file":"index.js","sourcesContent":["export { EachCommand } from './commands/each.command';\nexport { InfoCommand } from './commands/info.command';\nexport { ListCommand } from './commands/list.command';\nexport { RunCommand } from './commands/run.command';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["main.ts"],"names":[],"mappings":"","file":"main.d.ts","sourcesContent":["import { Plugin } from '@jujulego/jill-common';\nimport { hideBin } from 'yargs/helpers';\nimport yargs from 'yargs';\n\nimport { EachCommand } from './commands/each.command';\nimport { InfoCommand } from './commands/info.command';\nimport { ListCommand } from './commands/list.command';\nimport { RunCommand } from './commands/run.command';\nimport { MyrCommand } from './myr/myr.command';\nimport { WatchCommand } from './myr/watch.command';\n\n// Bootstrap\n(async () => {\n // Options\n const parser = await yargs(hideBin(process.argv))\n .scriptName('jill')\n .parserConfiguration({\n 'populate--': true,\n })\n .strictCommands()\n .help();\n\n const core = Plugin.createPlugin('core', [\n InfoCommand,\n ListCommand,\n RunCommand,\n EachCommand,\n ]);\n\n const myr = Plugin.createPlugin('myr', [\n MyrCommand,\n WatchCommand,\n ]);\n\n core.setup(parser);\n myr.setup(parser);\n\n await parser.parse();\n})();\n"]}
|