@oclif/core 2.1.3 → 2.1.5
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/lib/config/config.d.ts +1 -0
- package/lib/config/config.js +11 -0
- package/lib/parser/parse.js +10 -4
- package/package.json +1 -1
package/lib/config/config.d.ts
CHANGED
|
@@ -132,5 +132,6 @@ export declare class Config implements IConfig {
|
|
|
132
132
|
* @returns command instance {Command.Loadable} or undefined
|
|
133
133
|
*/
|
|
134
134
|
private determinePriority;
|
|
135
|
+
private insertLegacyPlugins;
|
|
135
136
|
}
|
|
136
137
|
export declare function toCached(c: Command.Class, plugin?: IPlugin): Promise<Command.Cached>;
|
package/lib/config/config.js
CHANGED
|
@@ -239,6 +239,9 @@ class Config {
|
|
|
239
239
|
await withTimeout(timeout, search(module).call(context, { ...opts, config: this })) :
|
|
240
240
|
await search(module).call(context, { ...opts, config: this });
|
|
241
241
|
final.successes.push({ plugin: p, result });
|
|
242
|
+
if (p.name === '@oclif/plugin-legacy' && event === 'init') {
|
|
243
|
+
this.insertLegacyPlugins(result);
|
|
244
|
+
}
|
|
242
245
|
debug('done');
|
|
243
246
|
}
|
|
244
247
|
catch (error) {
|
|
@@ -639,6 +642,14 @@ class Config {
|
|
|
639
642
|
});
|
|
640
643
|
return commandPlugins[0];
|
|
641
644
|
}
|
|
645
|
+
insertLegacyPlugins(plugins) {
|
|
646
|
+
for (const plugin of plugins) {
|
|
647
|
+
const idx = this.plugins.findIndex(p => p.name === plugin.name);
|
|
648
|
+
if (idx !== -1)
|
|
649
|
+
this.plugins = this.plugins.splice(idx, 1, plugin);
|
|
650
|
+
this.loadCommands(plugin);
|
|
651
|
+
}
|
|
652
|
+
}
|
|
642
653
|
}
|
|
643
654
|
exports.Config = Config;
|
|
644
655
|
// when no manifest exists, the default is calculated. This may throw, so we need to catch it
|
package/lib/parser/parse.js
CHANGED
|
@@ -241,10 +241,14 @@ class Parser {
|
|
|
241
241
|
if (!flag.parse)
|
|
242
242
|
return input;
|
|
243
243
|
try {
|
|
244
|
+
const ctx = this.context;
|
|
245
|
+
ctx.token = token;
|
|
244
246
|
if (flag.type === 'boolean') {
|
|
245
|
-
|
|
247
|
+
const ctx = this.context;
|
|
248
|
+
ctx.token = token;
|
|
249
|
+
return await flag.parse(input, ctx, flag);
|
|
246
250
|
}
|
|
247
|
-
return flag.parse ? await flag.parse(input,
|
|
251
|
+
return flag.parse ? await flag.parse(input, ctx, flag) : input;
|
|
248
252
|
}
|
|
249
253
|
catch (error) {
|
|
250
254
|
error.message = `Parsing --${flag.name} \n\t${error.message}\nSee more help with --help`;
|
|
@@ -260,13 +264,15 @@ class Parser {
|
|
|
260
264
|
const args = {};
|
|
261
265
|
const tokens = this._argTokens;
|
|
262
266
|
let stdinRead = false;
|
|
267
|
+
const ctx = this.context;
|
|
263
268
|
for (const [name, arg] of Object.entries(this.input.args)) {
|
|
264
269
|
const token = tokens.find(t => t.arg === name);
|
|
270
|
+
ctx.token = token;
|
|
265
271
|
if (token) {
|
|
266
272
|
if (arg.options && !arg.options.includes(token.input)) {
|
|
267
273
|
throw new errors_1.ArgInvalidOptionError(arg, token.input);
|
|
268
274
|
}
|
|
269
|
-
const parsed = await arg.parse(token.input,
|
|
275
|
+
const parsed = await arg.parse(token.input, ctx, arg);
|
|
270
276
|
argv.push(parsed);
|
|
271
277
|
args[token.arg] = parsed;
|
|
272
278
|
}
|
|
@@ -274,7 +280,7 @@ class Parser {
|
|
|
274
280
|
let stdin = await readStdin();
|
|
275
281
|
if (stdin) {
|
|
276
282
|
stdin = stdin.trim();
|
|
277
|
-
const parsed = await arg.parse(stdin,
|
|
283
|
+
const parsed = await arg.parse(stdin, ctx, arg);
|
|
278
284
|
argv.push(parsed);
|
|
279
285
|
args[name] = parsed;
|
|
280
286
|
}
|