@clerc/core 0.42.0 → 0.42.2

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/index.d.ts CHANGED
@@ -92,10 +92,10 @@ type ParseRaw<C extends Command, GF extends GlobalFlagOptions = {}> = NonNullabl
92
92
  type ParseParameters<C extends Commands = Commands, N extends keyof C = keyof C> = Equals<TransformParameters<C[N]>, {}> extends true ? N extends keyof C ? TransformParameters<C[N]> : Dict<string | string[] | undefined> : TransformParameters<C[N]>;
93
93
 
94
94
  type Locales = Dict<Dict<string>>;
95
- type TranslateFunction = (name: string, ...arguments_: string[]) => string | undefined;
95
+ type TranslateFn = (name: string, ...args: string[]) => string | undefined;
96
96
  interface I18N {
97
97
  add: (locales: Locales) => void;
98
- t: TranslateFunction;
98
+ t: TranslateFn;
99
99
  }
100
100
 
101
101
  interface Plugin<T extends Clerc = Clerc, U extends Clerc = Clerc> {
@@ -148,19 +148,19 @@ interface HandlerContext<C extends Commands = Commands, N extends keyof C = keyo
148
148
  flags: Simplify<ParseFlag<C, N, GF> & Record<string, any>>;
149
149
  cli: Clerc<C, GF>;
150
150
  }
151
- type Handler<C extends Commands = Commands, K extends keyof C = keyof C, GF extends GlobalFlagOptions = {}> = (context: HandlerContext<C, K, GF>) => void;
152
- type HandlerInCommand<C extends HandlerContext> = (context: {
151
+ type Handler<C extends Commands = Commands, K extends keyof C = keyof C, GF extends GlobalFlagOptions = {}> = (ctx: HandlerContext<C, K, GF>) => void;
152
+ type HandlerInCommand<C extends HandlerContext> = (ctx: {
153
153
  [K in keyof C]: C[K];
154
154
  }) => void;
155
155
  type FallbackType<T, U> = {} extends T ? U : T;
156
156
  type InspectorContext<C extends Commands = Commands> = HandlerContext<C> & {
157
157
  flags: FallbackType<TypeFlag<NonNullable<C[keyof C]["flags"]>>["flags"], Dict<any>>;
158
158
  };
159
- type Inspector<C extends Commands = Commands> = InspectorFunction<C> | InspectorObject<C>;
160
- type InspectorFunction<C extends Commands = Commands> = (context: InspectorContext<C>, next: () => void) => void;
159
+ type Inspector<C extends Commands = Commands> = InspectorFn<C> | InspectorObject<C>;
160
+ type InspectorFn<C extends Commands = Commands> = (ctx: InspectorContext<C>, next: () => void) => void;
161
161
  interface InspectorObject<C extends Commands = Commands> {
162
162
  enforce?: "pre" | "post";
163
- fn: InspectorFunction<C>;
163
+ fn: InspectorFn<C>;
164
164
  }
165
165
 
166
166
  declare const Root: unique symbol;
@@ -289,7 +289,7 @@ declare class Clerc<C extends Commands = {}, GF extends GlobalFlagOptions = {}>
289
289
  * @param handler
290
290
  * @returns
291
291
  */
292
- errorHandler(handler: (error: any) => void): this;
292
+ errorHandler(handler: (err: any) => void): this;
293
293
  /**
294
294
  * Register a command
295
295
  *
@@ -422,35 +422,35 @@ declare class Clerc<C extends Commands = {}, GF extends GlobalFlagOptions = {}>
422
422
 
423
423
  declare class CommandExistsError extends Error {
424
424
  commandName: string;
425
- constructor(commandName: string, t: TranslateFunction);
425
+ constructor(commandName: string, t: TranslateFn);
426
426
  }
427
427
  declare class NoSuchCommandError extends Error {
428
428
  commandName: string;
429
- constructor(commandName: string, t: TranslateFunction);
429
+ constructor(commandName: string, t: TranslateFn);
430
430
  }
431
431
  declare class NoCommandGivenError extends Error {
432
- constructor(t: TranslateFunction);
432
+ constructor(t: TranslateFn);
433
433
  }
434
434
  declare class CommandNameConflictError extends Error {
435
435
  n1: string;
436
436
  n2: string;
437
- constructor(n1: string, n2: string, t: TranslateFunction);
437
+ constructor(n1: string, n2: string, t: TranslateFn);
438
438
  }
439
439
  declare class ScriptNameNotSetError extends Error {
440
- constructor(t: TranslateFunction);
440
+ constructor(t: TranslateFn);
441
441
  }
442
442
  declare class DescriptionNotSetError extends Error {
443
- constructor(t: TranslateFunction);
443
+ constructor(t: TranslateFn);
444
444
  }
445
445
  declare class VersionNotSetError extends Error {
446
- constructor(t: TranslateFunction);
446
+ constructor(t: TranslateFn);
447
447
  }
448
448
  declare class InvalidCommandNameError extends Error {
449
449
  commandName: string;
450
- constructor(commandName: string, t: TranslateFunction);
450
+ constructor(commandName: string, t: TranslateFn);
451
451
  }
452
452
  declare class LocaleNotCalledFirstError extends Error {
453
- constructor(t: TranslateFunction);
453
+ constructor(t: TranslateFn);
454
454
  }
455
455
 
456
456
  type MaybeArray<T> = T | T[];
@@ -460,14 +460,14 @@ declare const defineHandler: <C extends Clerc<{}, {}>, K extends keyof C["_comma
460
460
  declare const defineInspector: <C extends Clerc<{}, {}>>(_cli: C, inspector: Inspector<C["_commands"]>) => Inspector<C["_commands"]>;
461
461
  declare const defineCommand: <N extends string | typeof Root, O extends CommandOptions<[...P], MaybeArray<string | typeof Root>, Flags>, P extends string[]>(command: Command<N, O & CommandOptions<[...P], MaybeArray<string | typeof Root>, Flags>>, handler?: HandlerInCommand<HandlerContext<Record<N, Command<N, O>> & Record<never, never>, N, {}>> | undefined) => CommandWithHandler<N, O & CommandOptions<[...P], MaybeArray<string | typeof Root>, Flags>>;
462
462
 
463
- declare function resolveFlattenCommands(commands: Commands, t: TranslateFunction): Map<string[] | typeof Root, CommandAlias>;
464
- declare function resolveCommand(commands: Commands, argv: string[], t: TranslateFunction): [Command<string | RootType> | undefined, string[] | RootType | undefined];
463
+ declare function resolveFlattenCommands(commands: Commands, t: TranslateFn): Map<string[] | typeof Root, CommandAlias>;
464
+ declare function resolveCommand(commands: Commands, argv: string[], t: TranslateFn): [Command<string | RootType> | undefined, string[] | RootType | undefined];
465
465
  declare const resolveArgv: () => string[];
466
- declare function compose(inspectors: Inspector[]): (context: InspectorContext) => void;
466
+ declare function compose(inspectors: Inspector[]): (ctx: InspectorContext) => void;
467
467
  declare const isValidName: (name: CommandType) => boolean;
468
468
  declare const withBrackets: (s: string, isOptional?: boolean) => string;
469
469
  declare const formatCommandName: (name: string | string[] | RootType) => string;
470
470
  declare const detectLocale: () => string;
471
471
  declare const stripFlags: (argv: string[]) => string[];
472
472
 
473
- export { Clerc, Command, CommandAlias, CommandCustomProperties, CommandExistsError, CommandNameConflictError, CommandOptions, CommandType, CommandWithHandler, Commands, DescriptionNotSetError, FallbackType, Flag, FlagOptions, Flags, GlobalFlagOption, GlobalFlagOptions, Handler, HandlerContext, HandlerInCommand, I18N, Inspector, InspectorContext, InspectorFunction, InspectorObject, InvalidCommandNameError, LocaleNotCalledFirstError, Locales, MakeEventMap, NoCommandGivenError, NoSuchCommandError, ParseOptions, Plugin, Root, RootType, ScriptNameNotSetError, TranslateFunction, VersionNotSetError, compose, defineCommand, defineHandler, defineInspector, definePlugin, detectLocale, formatCommandName, isValidName, resolveArgv, resolveCommand, resolveFlattenCommands, stripFlags, withBrackets };
473
+ export { Clerc, Command, CommandAlias, CommandCustomProperties, CommandExistsError, CommandNameConflictError, CommandOptions, CommandType, CommandWithHandler, Commands, DescriptionNotSetError, FallbackType, Flag, FlagOptions, Flags, GlobalFlagOption, GlobalFlagOptions, Handler, HandlerContext, HandlerInCommand, I18N, Inspector, InspectorContext, InspectorFn, InspectorObject, InvalidCommandNameError, LocaleNotCalledFirstError, Locales, MakeEventMap, NoCommandGivenError, NoSuchCommandError, ParseOptions, Plugin, Root, RootType, ScriptNameNotSetError, TranslateFn, VersionNotSetError, compose, defineCommand, defineHandler, defineInspector, definePlugin, detectLocale, formatCommandName, isValidName, resolveArgv, resolveCommand, resolveFlattenCommands, stripFlags, withBrackets };
package/dist/index.js CHANGED
@@ -144,15 +144,15 @@ function parseParameters(parameters, t) {
144
144
  return parsedParameters;
145
145
  }
146
146
  function mapParametersToArguments(mapping, parameters, cliArguments, t) {
147
- for (let index = 0; index < parameters.length; index += 1) {
148
- const { name, required, spread } = parameters[index];
147
+ for (let i = 0; i < parameters.length; i += 1) {
148
+ const { name, required, spread } = parameters[i];
149
149
  const camelCaseName = camelCase(name);
150
150
  if (camelCaseName in mapping) {
151
151
  throw new Error(t("core.parameterIsUsedMoreThanOnce", stringify(name)));
152
152
  }
153
- const value = spread ? cliArguments.slice(index) : cliArguments[index];
153
+ const value = spread ? cliArguments.slice(i) : cliArguments[i];
154
154
  if (spread) {
155
- index = parameters.length;
155
+ i = parameters.length;
156
156
  }
157
157
  if (required && (!value || spread && value.length === 0)) {
158
158
  throw new Error(t("core.missingRequiredParameter", stringify(name)));
@@ -196,11 +196,11 @@ function resolveCommand(commands, argv, t) {
196
196
  const commandsMap = resolveFlattenCommands(commands, t);
197
197
  for (const [name, command] of commandsMap.entries()) {
198
198
  const parsed = typeFlag((_a = command == null ? void 0 : command.flags) != null ? _a : /* @__PURE__ */ Object.create(null), [...argv]);
199
- const { _: arguments_ } = parsed;
199
+ const { _: args } = parsed;
200
200
  if (name === Root) {
201
201
  continue;
202
202
  }
203
- if (arrayStartsWith(arguments_, name)) {
203
+ if (arrayStartsWith(args, name)) {
204
204
  return [command, name];
205
205
  }
206
206
  }
@@ -228,16 +228,16 @@ function compose(inspectors) {
228
228
  inspectorMap.normal.push(fn);
229
229
  }
230
230
  }
231
- const mergedInspectorFunctions = [
231
+ const mergedInspectorFns = [
232
232
  ...inspectorMap.pre,
233
233
  ...inspectorMap.normal,
234
234
  ...inspectorMap.post
235
235
  ];
236
- return (context) => {
236
+ return (ctx) => {
237
237
  return dispatch(0);
238
- function dispatch(index) {
239
- const inspector = mergedInspectorFunctions[index];
240
- return inspector(context, dispatch.bind(null, index + 1));
238
+ function dispatch(i) {
239
+ const inspector = mergedInspectorFns[i];
240
+ return inspector(ctx, dispatch.bind(null, i + 1));
241
241
  }
242
242
  };
243
243
  }
@@ -247,7 +247,7 @@ const withBrackets = (s, isOptional) => isOptional ? `[${s}]` : `<${s}>`;
247
247
  const ROOT = "<Root>";
248
248
  const formatCommandName = (name) => Array.isArray(name) ? name.join(" ") : typeof name === "string" ? name : ROOT;
249
249
  const detectLocale = () => process.env.CLERC_LOCALE ? process.env.CLERC_LOCALE : Intl.DateTimeFormat().resolvedOptions().locale;
250
- const stripFlags = (argv) => argv.filter((argument) => !argument.startsWith("-"));
250
+ const stripFlags = (argv) => argv.filter((arg) => !arg.startsWith("-"));
251
251
 
252
252
  var __accessCheck = (obj, member, msg) => {
253
253
  if (!member.has(obj))
@@ -271,7 +271,7 @@ var __privateMethod = (obj, member, method) => {
271
271
  __accessCheck(obj, member, "access private method");
272
272
  return method;
273
273
  };
274
- var _name, _scriptName, _description, _version, _inspectors, _commands, _commandEmitter, _flags, _usedNames, _argv, _errorHandlers, _isOtherMethodCalled, _defaultLocale, _locale, _locales, _hasRootOrAlias, hasRootOrAlias_get, _hasRoot, hasRoot_get, _addCoreLocales, addCoreLocales_fn, _otherMethodCalled, otherMethodCalled_fn, _command, command_fn, _validateMeta, validateMeta_fn, _getContext, getContext_fn, _callWithErrorHandling, callWithErrorHandling_fn, _runMatchedCommand, runMatchedCommand_fn;
274
+ var _name, _scriptName, _description, _version, _inspectors, _commands, _commandEmitter, _flags, _usedNames, _argv, _errorHandlers, _isOtherMethodCalled, _defaultLocale, _locale, _locales, _hasRootOrAlias, hasRootOrAlias_get, _hasRoot, hasRoot_get, _addCoreLocales, addCoreLocales_fn, _otherMethodCalled, otherMethodCalled_fn, _command, command_fn, _validateMeta, validateMeta_fn, _getContext, getContext_fn, _handleError, handleError_fn, _callWithErrorHandling, callWithErrorHandling_fn, _runMatchedCommand, runMatchedCommand_fn;
275
275
  const Root = Symbol.for("Clerc.Root");
276
276
  const _Clerc = class {
277
277
  constructor(scriptName, description, version) {
@@ -282,6 +282,7 @@ const _Clerc = class {
282
282
  __privateAdd(this, _command);
283
283
  __privateAdd(this, _validateMeta);
284
284
  __privateAdd(this, _getContext);
285
+ __privateAdd(this, _handleError);
285
286
  __privateAdd(this, _callWithErrorHandling);
286
287
  __privateAdd(this, _runMatchedCommand);
287
288
  __privateAdd(this, _name, "");
@@ -290,7 +291,11 @@ const _Clerc = class {
290
291
  __privateAdd(this, _version, "");
291
292
  __privateAdd(this, _inspectors, []);
292
293
  __privateAdd(this, _commands, /* @__PURE__ */ Object.create(null));
293
- __privateAdd(this, _commandEmitter, new LiteEmit());
294
+ __privateAdd(this, _commandEmitter, new LiteEmit({
295
+ errorHandler: (msg) => {
296
+ __privateMethod(this, _handleError, handleError_fn).call(this, new Error(msg));
297
+ }
298
+ }));
294
299
  __privateAdd(this, _flags, /* @__PURE__ */ Object.create(null));
295
300
  __privateAdd(this, _usedNames, /* @__PURE__ */ new Set());
296
301
  __privateAdd(this, _argv, void 0);
@@ -303,10 +308,10 @@ const _Clerc = class {
303
308
  add: (locales2) => {
304
309
  __privateSet(this, _locales, defu(__privateGet(this, _locales), locales2));
305
310
  },
306
- t: (name, ...arguments_) => {
311
+ t: (name, ...args) => {
307
312
  const localeObject = __privateGet(this, _locales)[__privateGet(this, _locale)] || __privateGet(this, _locales)[__privateGet(this, _defaultLocale)];
308
313
  const defaultLocaleObject = __privateGet(this, _locales)[__privateGet(this, _defaultLocale)];
309
- return localeObject[name] ? format(localeObject[name], ...arguments_) : defaultLocaleObject[name] ? format(defaultLocaleObject[name], ...arguments_) : void 0;
314
+ return localeObject[name] ? format(localeObject[name], ...args) : defaultLocaleObject[name] ? format(defaultLocaleObject[name], ...args) : void 0;
310
315
  }
311
316
  };
312
317
  __privateSet(this, _scriptName, scriptName != null ? scriptName : __privateGet(this, _scriptName));
@@ -698,15 +703,16 @@ getContext_fn = function(getCommand) {
698
703
  ...command == null ? void 0 : command.flags
699
704
  };
700
705
  const parsed = typeFlag(flagsMerged, [...argv]);
701
- const { _: arguments_, flags, unknownFlags } = parsed;
702
- let parameters = !isCommandResolved || command.name === Root ? arguments_ : arguments_.slice(command.name.split(" ").length);
706
+ const parametersOffset = (command == null ? void 0 : command.name) === Root || called === Root ? 0 : (called == null ? void 0 : called.length) ? called.length : command == null ? void 0 : command.name.split(" ").length;
707
+ const { _: args, flags, unknownFlags } = parsed;
708
+ let parameters = !isCommandResolved || command.name === Root ? args : args.slice(parametersOffset);
703
709
  let commandParameters = (_a = command == null ? void 0 : command.parameters) != null ? _a : [];
704
710
  const hasEof = commandParameters.indexOf("--");
705
711
  const eofParameters = commandParameters.slice(hasEof + 1) || [];
706
712
  const mapping = /* @__PURE__ */ Object.create(null);
707
713
  if (hasEof > -1 && eofParameters.length > 0) {
708
714
  commandParameters = commandParameters.slice(0, hasEof);
709
- const eofArguments = arguments_["--"];
715
+ const eofArguments = args["--"];
710
716
  parameters = parameters.slice(0, -eofArguments.length || void 0);
711
717
  mapParametersToArguments(
712
718
  mapping,
@@ -743,18 +749,22 @@ getContext_fn = function(getCommand) {
743
749
  };
744
750
  return context;
745
751
  };
752
+ _handleError = new WeakSet();
753
+ handleError_fn = function(e) {
754
+ if (__privateGet(this, _errorHandlers).length > 0) {
755
+ for (const cb of __privateGet(this, _errorHandlers)) {
756
+ cb(e);
757
+ }
758
+ } else {
759
+ throw e;
760
+ }
761
+ };
746
762
  _callWithErrorHandling = new WeakSet();
747
- callWithErrorHandling_fn = function(function_) {
763
+ callWithErrorHandling_fn = function(fn) {
748
764
  try {
749
- function_();
750
- } catch (error) {
751
- if (__privateGet(this, _errorHandlers).length > 0) {
752
- for (const callback of __privateGet(this, _errorHandlers)) {
753
- callback(error);
754
- }
755
- } else {
756
- throw error;
757
- }
765
+ fn();
766
+ } catch (e) {
767
+ __privateMethod(this, _handleError, handleError_fn).call(this, e);
758
768
  }
759
769
  };
760
770
  _runMatchedCommand = new WeakSet();
@@ -769,14 +779,18 @@ runMatchedCommand_fn = function() {
769
779
  const getContext = () => __privateMethod(this, _getContext, getContext_fn).call(this, getCommand);
770
780
  const emitHandler = {
771
781
  enforce: "post",
772
- fn: (context) => {
782
+ fn: (ctx) => {
773
783
  const [command] = getCommand();
774
784
  const stringName = stripFlags(argv).join(" ");
775
785
  if (!command) {
776
786
  const error = stringName ? new NoSuchCommandError(stringName, t) : new NoCommandGivenError(t);
777
787
  throw error;
778
788
  }
779
- __privateGet(this, _commandEmitter).emit(command.name, context);
789
+ try {
790
+ __privateGet(this, _commandEmitter).emit(command.name, ctx);
791
+ } catch (e) {
792
+ console.log(1);
793
+ }
780
794
  }
781
795
  };
782
796
  const inspectors = [...__privateGet(this, _inspectors), emitHandler];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clerc/core",
3
- "version": "0.42.0",
3
+ "version": "0.42.2",
4
4
  "author": "Ray <i@mk1.io> (https://github.com/so1ve)",
5
5
  "type": "module",
6
6
  "description": "Clerc core",
@@ -49,10 +49,10 @@
49
49
  "dependencies": {
50
50
  "defu": "^6.1.2",
51
51
  "is-platform": "^1.0.0",
52
- "lite-emit": "^2.2.0",
52
+ "lite-emit": "^2.3.0",
53
53
  "type-fest": "^4.0.0",
54
54
  "type-flag": "^3.0.0",
55
- "@clerc/utils": "0.42.0"
55
+ "@clerc/utils": "0.42.2"
56
56
  },
57
57
  "scripts": {
58
58
  "build": "pkgroll",