@clerc/core 0.22.1 → 0.24.0
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 +33 -29
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _clerc_utils from '@clerc/utils';
|
|
2
|
-
import { MaybeArray,
|
|
2
|
+
import { Dict, MaybeArray as MaybeArray$1, Equals, CamelCase, LiteralUnion } from '@clerc/utils';
|
|
3
3
|
|
|
4
4
|
declare const DOUBLE_DASH = "--";
|
|
5
5
|
type TypeFunction<ReturnType = any> = (value: any) => ReturnType;
|
|
@@ -56,7 +56,7 @@ type FlagSchemaDefault<TF, DefaultType = any> = FlagSchemaBase<TF> & {
|
|
|
56
56
|
};
|
|
57
57
|
type FlagSchema<TF = FlagType> = (FlagSchemaBase<TF> | FlagSchemaDefault<TF>);
|
|
58
58
|
type FlagTypeOrSchema<ExtraOptions = Record<string, unknown>> = FlagType | (FlagSchema & ExtraOptions);
|
|
59
|
-
type Flags<ExtraOptions = Record<string, unknown>> = Record<string, FlagTypeOrSchema<ExtraOptions>>;
|
|
59
|
+
type Flags$1<ExtraOptions = Record<string, unknown>> = Record<string, FlagTypeOrSchema<ExtraOptions>>;
|
|
60
60
|
type InferFlagType<Flag extends FlagTypeOrSchema> = (Flag extends (TypeFunctionArray<infer T> | FlagSchema<TypeFunctionArray<infer T>>) ? (Flag extends FlagSchemaDefault<TypeFunctionArray<T>, infer D> ? T[] | D : T[]) : (Flag extends TypeFunction<infer T> | FlagSchema<TypeFunction<infer T>> ? (Flag extends FlagSchemaDefault<TypeFunction<T>, infer D> ? T | D : T | undefined) : never));
|
|
61
61
|
interface ParsedFlags<Schemas = Record<string, unknown>> {
|
|
62
62
|
flags: Schemas;
|
|
@@ -65,7 +65,7 @@ interface ParsedFlags<Schemas = Record<string, unknown>> {
|
|
|
65
65
|
[DOUBLE_DASH]: string[];
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
|
-
type TypeFlag<Schemas extends Flags> = ParsedFlags<{
|
|
68
|
+
type TypeFlag<Schemas extends Flags$1> = ParsedFlags<{
|
|
69
69
|
[flag in keyof Schemas]: InferFlagType<Schemas[flag]>;
|
|
70
70
|
}>;
|
|
71
71
|
|
|
@@ -76,9 +76,10 @@ type FlagOptions = FlagSchema & {
|
|
|
76
76
|
type Flag = FlagOptions & {
|
|
77
77
|
name: string;
|
|
78
78
|
};
|
|
79
|
+
type Flags = Dict<FlagOptions>;
|
|
79
80
|
declare interface CommandCustomProperties {
|
|
80
81
|
}
|
|
81
|
-
interface CommandOptions<P extends string[] = string[], A extends MaybeArray<string | RootType> = MaybeArray<string | RootType>, F extends
|
|
82
|
+
interface CommandOptions<P extends string[] = string[], A extends MaybeArray$1<string | RootType> = MaybeArray$1<string | RootType>, F extends Flags = Flags> extends CommandCustomProperties {
|
|
82
83
|
alias?: A;
|
|
83
84
|
parameters?: P;
|
|
84
85
|
flags?: F;
|
|
@@ -93,7 +94,7 @@ type CommandAlias<N extends string | RootType = string, O extends CommandOptions
|
|
|
93
94
|
__isAlias?: true;
|
|
94
95
|
};
|
|
95
96
|
type CommandWithHandler<N extends string | RootType = string, O extends CommandOptions = CommandOptions> = Command<N, O> & {
|
|
96
|
-
handler?: HandlerInCommand<Record<N, Command<N, O>> & Record<never, never>, N
|
|
97
|
+
handler?: HandlerInCommand<HandlerContext<Record<N, Command<N, O>> & Record<never, never>, N>>;
|
|
97
98
|
};
|
|
98
99
|
type StripBrackets<Parameter extends string> = (Parameter extends `<${infer ParameterName}>` | `[${infer ParameterName}]` ? (ParameterName extends `${infer SpreadName}...` ? SpreadName : ParameterName) : never);
|
|
99
100
|
type ParameterType<Parameter extends string> = (Parameter extends `<${infer _ParameterName}...>` | `[${infer _ParameterName}...]` ? string[] : Parameter extends `<${infer _ParameterName}>` ? string : Parameter extends `[${infer _ParameterName}]` ? string | undefined : never);
|
|
@@ -105,34 +106,35 @@ type MakeEventMap<T extends CommandRecord> = {
|
|
|
105
106
|
};
|
|
106
107
|
type PossibleInputKind = string | number | boolean | Dict<any>;
|
|
107
108
|
type NonNullableParameters<T extends string[] | undefined> = T extends undefined ? [] : NonNullable<T>;
|
|
108
|
-
type TransformParameters<C extends
|
|
109
|
-
[Parameter in
|
|
109
|
+
type TransformParameters<C extends Command> = {
|
|
110
|
+
[Parameter in NonNullableParameters<C["parameters"]>[number] as CamelCase<StripBrackets<Parameter>>]: ParameterType<Parameter>;
|
|
110
111
|
};
|
|
111
|
-
type
|
|
112
|
-
|
|
113
|
-
default: any[];
|
|
114
|
-
} : F[K] : F[K];
|
|
115
|
-
};
|
|
116
|
-
type TypeFlagWithDefault<C extends CommandRecord = CommandRecord, N extends keyof C = keyof C> = TypeFlag<TransformFlags<NonNullable<C[N]["flags"]>>>;
|
|
117
|
-
type Raw<C extends CommandRecord = CommandRecord, N extends keyof C = keyof C> = TypeFlagWithDefault<C, N> & {
|
|
112
|
+
type TypeFlagWithDefault<C extends Command> = TypeFlag<NonNullable<C["flags"]>>;
|
|
113
|
+
type Raw<C extends Command> = TypeFlagWithDefault<C> & {
|
|
118
114
|
parameters: string[];
|
|
119
|
-
mergedFlags: TypeFlagWithDefault<C
|
|
115
|
+
mergedFlags: TypeFlagWithDefault<C>["flags"] & TypeFlagWithDefault<C>["unknownFlags"];
|
|
120
116
|
};
|
|
121
117
|
interface HandlerContext<C extends CommandRecord = CommandRecord, N extends keyof C = keyof C> {
|
|
122
|
-
name
|
|
118
|
+
name?: N;
|
|
123
119
|
called?: string | RootType;
|
|
124
|
-
resolved:
|
|
120
|
+
resolved: boolean;
|
|
125
121
|
hasRootOrAlias: boolean;
|
|
126
122
|
hasRoot: boolean;
|
|
127
|
-
raw:
|
|
128
|
-
|
|
123
|
+
raw: {
|
|
124
|
+
[K in keyof Raw<C[N]>]: Raw<C[N]>[K];
|
|
125
|
+
};
|
|
126
|
+
parameters: Equals<{
|
|
127
|
+
[K in keyof TransformParameters<C[N]>]: TransformParameters<C[N]>[K];
|
|
128
|
+
}, {}> extends true ? Dict<string | string[] | undefined> : {
|
|
129
|
+
[K in keyof TransformParameters<C[N]>]: TransformParameters<C[N]>[K];
|
|
130
|
+
};
|
|
129
131
|
unknownFlags: ParsedFlags["unknownFlags"];
|
|
130
|
-
flags: TypeFlagWithDefault<C, N>["flags"];
|
|
132
|
+
flags: Equals<TypeFlagWithDefault<C[N]>["flags"], {}> extends true ? Dict<any> : TypeFlagWithDefault<C[N]>["flags"];
|
|
131
133
|
cli: Clerc<C>;
|
|
132
134
|
}
|
|
133
135
|
type Handler<C extends CommandRecord = CommandRecord, K extends keyof C = keyof C> = (ctx: HandlerContext<C, K>) => void;
|
|
134
|
-
type HandlerInCommand<C extends
|
|
135
|
-
|
|
136
|
+
type HandlerInCommand<C extends HandlerContext> = (ctx: {
|
|
137
|
+
[K in keyof C]: C[K];
|
|
136
138
|
}) => void;
|
|
137
139
|
type FallbackType<T, U> = {} extends T ? U : T;
|
|
138
140
|
type InspectorContext<C extends CommandRecord = CommandRecord> = HandlerContext<C> & {
|
|
@@ -230,8 +232,8 @@ declare class Clerc<C extends CommandRecord = {}> {
|
|
|
230
232
|
* })
|
|
231
233
|
* ```
|
|
232
234
|
*/
|
|
233
|
-
command<N extends string | RootType, O extends CommandOptions<[...P], A, F>, P extends string[] = string[], A extends MaybeArray<string | RootType> = MaybeArray<string | RootType>, F extends
|
|
234
|
-
command<N extends string | RootType, O extends CommandOptions<[...P], A, F>, P extends string[] = string[], A extends MaybeArray<string | RootType> = MaybeArray<string | RootType>, F extends
|
|
235
|
+
command<N extends string | RootType, O extends CommandOptions<[...P], A, F>, P extends string[] = string[], A extends MaybeArray$1<string | RootType> = MaybeArray$1<string | RootType>, F extends Flags = Flags>(c: CommandWithHandler<N, O & CommandOptions<[...P], A, F>>): this & Clerc<C & Record<N, Command<N, O>>>;
|
|
236
|
+
command<N extends string | RootType, O extends CommandOptions<[...P], A, F>, P extends string[] = string[], A extends MaybeArray$1<string | RootType> = MaybeArray$1<string | RootType>, F extends Flags = Flags>(name: N, description: string, options?: O & CommandOptions<[...P], A, F>): this & Clerc<C & Record<N, Command<N, O>>>;
|
|
235
237
|
/**
|
|
236
238
|
* Register a handler
|
|
237
239
|
* @param name
|
|
@@ -285,10 +287,12 @@ declare class Clerc<C extends CommandRecord = {}> {
|
|
|
285
287
|
parse(argv?: string[]): this;
|
|
286
288
|
}
|
|
287
289
|
|
|
290
|
+
type MaybeArray<T> = T | T[];
|
|
291
|
+
|
|
288
292
|
declare const definePlugin: <T extends Clerc<{}>, U extends Clerc<{}>>(p: Plugin<T, U>) => Plugin<T, U>;
|
|
289
293
|
declare const defineHandler: <C extends Clerc<{}>, K extends keyof C["_commands"]>(_cli: C, _key: K, handler: Handler<C["_commands"], K>) => Handler<C["_commands"], K>;
|
|
290
294
|
declare const defineInspector: <C extends Clerc<{}>>(_cli: C, inspector: Inspector<C["_commands"]>) => Inspector<C["_commands"]>;
|
|
291
|
-
declare const defineCommand: <N extends string | typeof Root, O extends CommandOptions<[...P],
|
|
295
|
+
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>>;
|
|
292
296
|
|
|
293
297
|
declare class CommandExistsError extends Error {
|
|
294
298
|
commandName: string;
|
|
@@ -320,10 +324,10 @@ declare class InvalidCommandNameError extends Error {
|
|
|
320
324
|
constructor(commandName: string);
|
|
321
325
|
}
|
|
322
326
|
|
|
323
|
-
declare function resolveFlattenCommands(commands: CommandRecord): Map<string[] | typeof Root, CommandAlias<string, CommandOptions<string[], _clerc_utils.MaybeArray<string | typeof Root>,
|
|
327
|
+
declare function resolveFlattenCommands(commands: CommandRecord): Map<string[] | typeof Root, CommandAlias<string, CommandOptions<string[], _clerc_utils.MaybeArray<string | typeof Root>, Flags>>>;
|
|
324
328
|
declare function resolveCommand(commands: CommandRecord, name: string | string[] | RootType): Command<string | RootType> | undefined;
|
|
325
|
-
declare function resolveSubcommandsByParent(commands: CommandRecord, parent: string | string[], depth?: number): Command<string, CommandOptions<string[], _clerc_utils.MaybeArray<string | typeof Root>,
|
|
326
|
-
declare const resolveRootCommands: (commands: CommandRecord) => Command<string, CommandOptions<string[], _clerc_utils.MaybeArray<string | typeof Root>,
|
|
329
|
+
declare function resolveSubcommandsByParent(commands: CommandRecord, parent: string | string[], depth?: number): Command<string, CommandOptions<string[], _clerc_utils.MaybeArray<string | typeof Root>, Flags>>[];
|
|
330
|
+
declare const resolveRootCommands: (commands: CommandRecord) => Command<string, CommandOptions<string[], _clerc_utils.MaybeArray<string | typeof Root>, Flags>>[];
|
|
327
331
|
declare function resolveParametersBeforeFlag(argv: string[]): string[];
|
|
328
332
|
declare const resolveArgv: () => string[];
|
|
329
333
|
declare function compose(inspectors: Inspector[]): (getCtx: () => InspectorContext) => void;
|
|
@@ -331,4 +335,4 @@ declare const isInvalidName: (name: CommandType) => boolean;
|
|
|
331
335
|
declare const withBrackets: (s: string, isOptional?: boolean) => string;
|
|
332
336
|
declare const formatCommandName: (name: string | string[] | RootType) => string;
|
|
333
337
|
|
|
334
|
-
export { Clerc, Command, CommandAlias, CommandCustomProperties, CommandExistsError, CommandNameConflictError, CommandOptions, CommandRecord, CommandType, CommandWithHandler, DescriptionNotSetError, FallbackType, Flag, FlagOptions, Handler, HandlerContext, HandlerInCommand, Inspector, InspectorContext, InspectorFn, InspectorObject, InvalidCommandNameError, MakeEventMap, NameNotSetError, NoCommandGivenError, NoSuchCommandError, Plugin, PossibleInputKind, Root, RootType, VersionNotSetError, compose, defineCommand, defineHandler, defineInspector, definePlugin, formatCommandName, isInvalidName, resolveArgv, resolveCommand, resolveFlattenCommands, resolveParametersBeforeFlag, resolveRootCommands, resolveSubcommandsByParent, withBrackets };
|
|
338
|
+
export { Clerc, Command, CommandAlias, CommandCustomProperties, CommandExistsError, CommandNameConflictError, CommandOptions, CommandRecord, CommandType, CommandWithHandler, DescriptionNotSetError, FallbackType, Flag, FlagOptions, Flags, Handler, HandlerContext, HandlerInCommand, Inspector, InspectorContext, InspectorFn, InspectorObject, InvalidCommandNameError, MakeEventMap, NameNotSetError, NoCommandGivenError, NoSuchCommandError, Plugin, PossibleInputKind, Root, RootType, VersionNotSetError, compose, defineCommand, defineHandler, defineInspector, definePlugin, formatCommandName, isInvalidName, resolveArgv, resolveCommand, resolveFlattenCommands, resolveParametersBeforeFlag, resolveRootCommands, resolveSubcommandsByParent, withBrackets };
|
package/dist/index.js
CHANGED
|
@@ -399,12 +399,12 @@ hasRootOrAlias_get = function() {
|
|
|
399
399
|
};
|
|
400
400
|
_hasRoot = new WeakSet();
|
|
401
401
|
hasRoot_get = function() {
|
|
402
|
-
return Object.
|
|
402
|
+
return Object.prototype.hasOwnProperty.call(this._commands, Root);
|
|
403
403
|
};
|
|
404
404
|
|
|
405
405
|
const definePlugin = (p) => p;
|
|
406
406
|
const defineHandler = (_cli, _key, handler) => handler;
|
|
407
407
|
const defineInspector = (_cli, inspector) => inspector;
|
|
408
|
-
const defineCommand = (command) => command;
|
|
408
|
+
const defineCommand = (command, handler) => ({ ...command, handler });
|
|
409
409
|
|
|
410
410
|
export { Clerc, CommandExistsError, CommandNameConflictError, DescriptionNotSetError, InvalidCommandNameError, NameNotSetError, NoCommandGivenError, NoSuchCommandError, Root, VersionNotSetError, compose, defineCommand, defineHandler, defineInspector, definePlugin, formatCommandName, isInvalidName, resolveArgv, resolveCommand, resolveFlattenCommands, resolveParametersBeforeFlag, resolveRootCommands, resolveSubcommandsByParent, withBrackets };
|
package/dist/index.mjs
CHANGED
|
@@ -399,12 +399,12 @@ hasRootOrAlias_get = function() {
|
|
|
399
399
|
};
|
|
400
400
|
_hasRoot = new WeakSet();
|
|
401
401
|
hasRoot_get = function() {
|
|
402
|
-
return Object.
|
|
402
|
+
return Object.prototype.hasOwnProperty.call(this._commands, Root);
|
|
403
403
|
};
|
|
404
404
|
|
|
405
405
|
const definePlugin = (p) => p;
|
|
406
406
|
const defineHandler = (_cli, _key, handler) => handler;
|
|
407
407
|
const defineInspector = (_cli, inspector) => inspector;
|
|
408
|
-
const defineCommand = (command) => command;
|
|
408
|
+
const defineCommand = (command, handler) => ({ ...command, handler });
|
|
409
409
|
|
|
410
410
|
export { Clerc, CommandExistsError, CommandNameConflictError, DescriptionNotSetError, InvalidCommandNameError, NameNotSetError, NoCommandGivenError, NoSuchCommandError, Root, VersionNotSetError, compose, defineCommand, defineHandler, defineInspector, definePlugin, formatCommandName, isInvalidName, resolveArgv, resolveCommand, resolveFlattenCommands, resolveParametersBeforeFlag, resolveRootCommands, resolveSubcommandsByParent, withBrackets };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clerc/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"author": "Ray <nn_201312@163.com> (https://github.com/so1ve)",
|
|
5
5
|
"description": "Clerc core",
|
|
6
6
|
"keywords": [
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"is-platform": "^0.2.0",
|
|
51
51
|
"lite-emit": "^1.4.0",
|
|
52
52
|
"type-flag": "^3.0.0",
|
|
53
|
-
"@clerc/utils": "0.
|
|
53
|
+
"@clerc/utils": "0.24.0"
|
|
54
54
|
},
|
|
55
55
|
"scripts": {
|
|
56
56
|
"build": "puild",
|