clerc 0.8.0 → 0.8.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.cjs CHANGED
@@ -53,11 +53,7 @@ class CommandNameConflictError extends Error {
53
53
  }
54
54
  }
55
55
 
56
- function resolveCommand(commands, name) {
57
- if (name === SingleCommand) {
58
- return commands[SingleCommand];
59
- }
60
- const nameArr = utils.mustArray(name);
56
+ function resolveFlattenCommands(commands) {
61
57
  const commandsMap = /* @__PURE__ */ new Map();
62
58
  for (const command of Object.values(commands)) {
63
59
  if (command.alias) {
@@ -66,11 +62,19 @@ function resolveCommand(commands, name) {
66
62
  if (alias in commands) {
67
63
  throw new CommandNameConflictError(commands[alias].name, command.name);
68
64
  }
69
- commandsMap.set(alias.split(" "), command);
65
+ commandsMap.set(alias.split(" "), { ...command, __isAlias: true });
70
66
  }
71
67
  }
72
68
  commandsMap.set(command.name.split(" "), command);
73
69
  }
70
+ return commandsMap;
71
+ }
72
+ function resolveCommand(commands, name) {
73
+ if (name === SingleCommand) {
74
+ return commands[SingleCommand];
75
+ }
76
+ const nameArr = utils.mustArray(name);
77
+ const commandsMap = resolveFlattenCommands(commands);
74
78
  const possibleCommands = [];
75
79
  commandsMap.forEach((v, k) => {
76
80
  if (utils.arrayStartsWith(nameArr, k)) {
@@ -384,6 +388,7 @@ exports.mapParametersToArguments = mapParametersToArguments;
384
388
  exports.parseParameters = parseParameters;
385
389
  exports.resolveArgv = resolveArgv;
386
390
  exports.resolveCommand = resolveCommand;
391
+ exports.resolveFlattenCommands = resolveFlattenCommands;
387
392
  exports.resolveParametersBeforeFlag = resolveParametersBeforeFlag;
388
393
  exports.resolveRootCommands = resolveRootCommands;
389
394
  exports.resolveSubcommandsByParent = resolveSubcommandsByParent;
package/dist/index.d.ts CHANGED
@@ -89,6 +89,9 @@ type Command<N extends string | SingleCommandType = string, O extends CommandOpt
89
89
  name: N;
90
90
  description: string;
91
91
  };
92
+ type CommandAlias<N extends string | SingleCommandType = string, O extends CommandOptions = CommandOptions> = Command<N, O> & {
93
+ __isAlias?: true;
94
+ };
92
95
  type CommandWithHandler<N extends string | SingleCommandType = string, O extends CommandOptions = CommandOptions> = Command<N, O> & {
93
96
  handler?: HandlerInCommand<Record<N, Command<N, O>>, N>;
94
97
  };
@@ -299,6 +302,7 @@ declare class CommandNameConflictError extends Error {
299
302
  constructor(n1: string, n2: string);
300
303
  }
301
304
 
305
+ declare function resolveFlattenCommands(commands: CommandRecord): Map<string[], CommandAlias<string, CommandOptions<string[], _clerc_utils.MaybeArray<string>, _clerc_utils.Dict<FlagOptions>>>>;
302
306
  declare function resolveCommand(commands: CommandRecord, name: string | string[] | SingleCommandType): Command | undefined;
303
307
  declare function resolveSubcommandsByParent(commands: CommandRecord, parent: string | string[], depth?: number): Command<string, CommandOptions<string[], _clerc_utils.MaybeArray<string>, _clerc_utils.Dict<FlagOptions>>>[];
304
308
  declare const resolveRootCommands: (commands: CommandRecord) => Command<string, CommandOptions<string[], _clerc_utils.MaybeArray<string>, _clerc_utils.Dict<FlagOptions>>>[];
@@ -314,4 +318,4 @@ interface ParsedParameter {
314
318
  declare function parseParameters(parameters: string[]): ParsedParameter[];
315
319
  declare function mapParametersToArguments(mapping: Record<string, string | string[]>, parameters: ParsedParameter[], cliArguments: string[]): undefined;
316
320
 
317
- export { Clerc, Command, CommandCustomProperties, CommandExistsError, CommandNameConflictError, CommandOptions, CommandRecord, CommandWithHandler, CommonCommandExistsError, FallbackType, Flag, FlagOptions, Handler, HandlerContext, HandlerInCommand, Inspector, InspectorContext, MakeEventMap, MultipleCommandsMatchedError, NoSuchCommandError, ParentCommandExistsError, Plugin, PossibleInputKind, SingleCommand, SingleCommandAliasError, SingleCommandError, SingleCommandType, SubcommandExistsError, compose, defineCommand, defineCommandWithHandler, defineHandler, defineInspector, definePlugin, mapParametersToArguments, parseParameters, resolveArgv, resolveCommand, resolveParametersBeforeFlag, resolveRootCommands, resolveSubcommandsByParent };
321
+ export { Clerc, Command, CommandAlias, CommandCustomProperties, CommandExistsError, CommandNameConflictError, CommandOptions, CommandRecord, CommandWithHandler, CommonCommandExistsError, FallbackType, Flag, FlagOptions, Handler, HandlerContext, HandlerInCommand, Inspector, InspectorContext, MakeEventMap, MultipleCommandsMatchedError, NoSuchCommandError, ParentCommandExistsError, Plugin, PossibleInputKind, SingleCommand, SingleCommandAliasError, SingleCommandError, SingleCommandType, SubcommandExistsError, compose, defineCommand, defineCommandWithHandler, defineHandler, defineInspector, definePlugin, mapParametersToArguments, parseParameters, resolveArgv, resolveCommand, resolveFlattenCommands, resolveParametersBeforeFlag, resolveRootCommands, resolveSubcommandsByParent };
package/dist/index.mjs CHANGED
@@ -49,11 +49,7 @@ class CommandNameConflictError extends Error {
49
49
  }
50
50
  }
51
51
 
52
- function resolveCommand(commands, name) {
53
- if (name === SingleCommand) {
54
- return commands[SingleCommand];
55
- }
56
- const nameArr = mustArray(name);
52
+ function resolveFlattenCommands(commands) {
57
53
  const commandsMap = /* @__PURE__ */ new Map();
58
54
  for (const command of Object.values(commands)) {
59
55
  if (command.alias) {
@@ -62,11 +58,19 @@ function resolveCommand(commands, name) {
62
58
  if (alias in commands) {
63
59
  throw new CommandNameConflictError(commands[alias].name, command.name);
64
60
  }
65
- commandsMap.set(alias.split(" "), command);
61
+ commandsMap.set(alias.split(" "), { ...command, __isAlias: true });
66
62
  }
67
63
  }
68
64
  commandsMap.set(command.name.split(" "), command);
69
65
  }
66
+ return commandsMap;
67
+ }
68
+ function resolveCommand(commands, name) {
69
+ if (name === SingleCommand) {
70
+ return commands[SingleCommand];
71
+ }
72
+ const nameArr = mustArray(name);
73
+ const commandsMap = resolveFlattenCommands(commands);
70
74
  const possibleCommands = [];
71
75
  commandsMap.forEach((v, k) => {
72
76
  if (arrayStartsWith(nameArr, k)) {
@@ -359,4 +363,4 @@ const defineInspector = (_cli, inspector) => inspector;
359
363
  const defineCommand = (c) => c;
360
364
  const defineCommandWithHandler = (c) => c;
361
365
 
362
- export { Clerc, CommandExistsError, CommandNameConflictError, CommonCommandExistsError, MultipleCommandsMatchedError, NoSuchCommandError, ParentCommandExistsError, SingleCommand, SingleCommandAliasError, SingleCommandError, SubcommandExistsError, compose, defineCommand, defineCommandWithHandler, defineHandler, defineInspector, definePlugin, mapParametersToArguments, parseParameters, resolveArgv, resolveCommand, resolveParametersBeforeFlag, resolveRootCommands, resolveSubcommandsByParent };
366
+ export { Clerc, CommandExistsError, CommandNameConflictError, CommonCommandExistsError, MultipleCommandsMatchedError, NoSuchCommandError, ParentCommandExistsError, SingleCommand, SingleCommandAliasError, SingleCommandError, SubcommandExistsError, compose, defineCommand, defineCommandWithHandler, defineHandler, defineInspector, definePlugin, mapParametersToArguments, parseParameters, resolveArgv, resolveCommand, resolveFlattenCommands, resolveParametersBeforeFlag, resolveRootCommands, resolveSubcommandsByParent };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clerc",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "author": "Ray <nn_201312@163.com> (https://github.com/so1ve)",
5
5
  "description": "Clerc is a simple and easy-to-use cli framework.",
6
6
  "keywords": [
@@ -39,10 +39,10 @@
39
39
  "access": "public"
40
40
  },
41
41
  "dependencies": {
42
- "@clerc/utils": "npm:@clerc/toolkit@0.8.0",
43
42
  "is-platform": "^0.2.0",
44
43
  "lite-emit": "^1.4.0",
45
- "type-flag": "^3.0.0"
44
+ "type-flag": "^3.0.0",
45
+ "@clerc/utils": "0.8.2"
46
46
  },
47
47
  "scripts": {
48
48
  "build": "puild",