args-tokens 0.16.0 → 0.16.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/lib/index.d.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import { ArgToken, ParserOptions, parseArgs$1 as parseArgs } from "./parser
|
|
2
|
-
import { ArgOptionSchema, ArgOptions, ArgValues, OptionResolveError$1 as OptionResolveError, OptionResolveErrorType, ResolveArgsOptions, resolveArgs$1 as resolveArgs } from "./resolver
|
|
1
|
+
import { ArgToken, ParserOptions, parseArgs$1 as parseArgs } from "./parser-Bx112mWZ.js";
|
|
2
|
+
import { ArgOptionSchema, ArgOptions, ArgValues, OptionResolveError$1 as OptionResolveError, OptionResolveErrorType, ResolveArgsOptions, resolveArgs$1 as resolveArgs } from "./resolver-ByBRRKOK.js";
|
|
3
3
|
|
|
4
4
|
//#region src/parse.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* Parse options for {@link parse} function.
|
|
7
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* Parse options for {@link parse} function.
|
|
10
|
+
*/
|
|
8
11
|
interface ParseOptions<O extends ArgOptions> extends ParserOptions, ResolveArgsOptions {
|
|
9
12
|
/**
|
|
10
13
|
* Command line options, about details see {@link ArgOptions}.
|
|
11
14
|
*/
|
|
12
15
|
options?: O;
|
|
13
16
|
}
|
|
14
|
-
|
|
15
17
|
/**
|
|
16
18
|
* Parsed command line arguments.
|
|
17
19
|
*/
|
|
@@ -36,21 +38,21 @@ type ParsedArgs<T extends ArgOptions> = {
|
|
|
36
38
|
* Argument tokens, same as `tokens` which is parsed by {@link parseArgs}.
|
|
37
39
|
*/
|
|
38
40
|
tokens: ArgToken[];
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Parse command line arguments.
|
|
44
|
+
* This function is a convenient API, that is used {@link parseArgs} and {@link resolveArgs} in internal.
|
|
45
|
+
* @example
|
|
46
|
+
* ```js
|
|
47
|
+
* import { parse } from 'args-tokens'
|
|
48
|
+
*
|
|
49
|
+
* const { values, positionals } = parse(process.argv.slice(2))
|
|
50
|
+
* console.log('values', values)
|
|
51
|
+
* console.log('positionals', positionals)
|
|
52
|
+
* ```
|
|
53
|
+
* @param args - command line arguments
|
|
54
|
+
* @param options - parse options, about details see {@link ParseOptions}
|
|
55
|
+
* @returns An object that contains the values of the arguments, positional arguments, {@link AggregateError | validation errors}, and {@link ArgToken | argument tokens}.
|
|
56
|
+
*/
|
|
55
57
|
declare function parse<O extends ArgOptions>(args: string[], options?: ParseOptions<O>): ParsedArgs<O>; //#endregion
|
|
56
58
|
export { ArgOptionSchema, ArgOptions, ArgToken, ArgValues, OptionResolveError, OptionResolveErrorType, ParseOptions, ParsedArgs, ParserOptions, ResolveArgsOptions, parse, parseArgs, resolveArgs };
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
* - `option`: option token, support short option (e.g. `-x`) and long option (e.g. `--foo`)
|
|
17
17
|
* - `option-terminator`: option terminator (`--`) token, see guideline 10 in https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html
|
|
18
18
|
* - `positional`: positional token
|
|
19
|
-
*/
|
|
20
|
-
|
|
19
|
+
*/
|
|
20
|
+
type ArgTokenKind = "option" | "option-terminator" | "positional";
|
|
21
21
|
/**
|
|
22
22
|
* Argument token.
|
|
23
23
|
*/
|
|
@@ -47,44 +47,44 @@ interface ArgToken {
|
|
|
47
47
|
* Inline value, e.g. `--foo=bar` => `true`, `-x=bar` => `true`.
|
|
48
48
|
*/
|
|
49
49
|
inlineValue?: boolean;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Parser Options.
|
|
53
|
+
*/
|
|
54
54
|
interface ParserOptions {
|
|
55
55
|
/**
|
|
56
56
|
* [Node.js parseArgs](https://nodejs.org/api/util.html#parseargs-tokens) tokens compatible mode.
|
|
57
57
|
* @default false
|
|
58
58
|
*/
|
|
59
59
|
allowCompatible?: boolean;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
declare function parseArgs(args: string[], options?: ParserOptions): ArgToken[];
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
declare function isShortOption(arg: string): boolean;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Parse command line arguments.
|
|
63
|
+
* @example
|
|
64
|
+
* ```js
|
|
65
|
+
* import { parseArgs } from 'args-tokens' // for Node.js and Bun
|
|
66
|
+
* // import { parseArgs } from 'jsr:@kazupon/args-tokens' // for Deno
|
|
67
|
+
*
|
|
68
|
+
* const tokens = parseArgs(['--foo', 'bar', '-x', '--bar=baz'])
|
|
69
|
+
* // do something with using tokens
|
|
70
|
+
* // ...
|
|
71
|
+
* console.log('tokens:', tokens)
|
|
72
|
+
* ```
|
|
73
|
+
* @param args command line arguments
|
|
74
|
+
* @param options parse options
|
|
75
|
+
* @returns Argument tokens.
|
|
76
|
+
*/
|
|
77
|
+
declare function parseArgs(args: string[], options?: ParserOptions): ArgToken[];
|
|
78
|
+
/**
|
|
79
|
+
* Check if `arg` is a short option (e.g. `-f`).
|
|
80
|
+
* @param arg the argument to check
|
|
81
|
+
* @returns whether `arg` is a short option.
|
|
82
|
+
*/
|
|
83
|
+
declare function isShortOption(arg: string): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Check if `arg` is a long option prefix (e.g. `--`).
|
|
86
|
+
* @param arg the argument to check
|
|
87
|
+
* @returns whether `arg` is a long option prefix.
|
|
88
|
+
*/
|
|
89
89
|
declare function hasLongOptionPrefix(arg: string): boolean; //#endregion
|
|
90
90
|
export { ArgToken, ParserOptions, hasLongOptionPrefix as hasLongOptionPrefix$1, isShortOption as isShortOption$1, parseArgs as parseArgs$1 };
|
package/lib/parser.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ArgToken, ParserOptions, hasLongOptionPrefix$1 as hasLongOptionPrefix, isShortOption$1 as isShortOption, parseArgs$1 as parseArgs } from "./parser
|
|
1
|
+
import { ArgToken, ParserOptions, hasLongOptionPrefix$1 as hasLongOptionPrefix, isShortOption$1 as isShortOption, parseArgs$1 as parseArgs } from "./parser-Bx112mWZ.js";
|
|
2
2
|
export { ArgToken, ParserOptions, hasLongOptionPrefix, isShortOption, parseArgs };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ArgToken } from "./parser
|
|
1
|
+
import { ArgToken } from "./parser-Bx112mWZ.js";
|
|
2
2
|
|
|
3
3
|
//#region src/resolver.d.ts
|
|
4
4
|
/**
|
|
@@ -10,6 +10,15 @@ import { ArgToken } from "./parser.d-Cheh2e-O.js";
|
|
|
10
10
|
* - `type` is not only 'string' and 'boolean', but also 'number' and 'enum' too.
|
|
11
11
|
* - `default` property type, not support multiple types
|
|
12
12
|
*/
|
|
13
|
+
/**
|
|
14
|
+
* An option schema for an argument.
|
|
15
|
+
* This schema is similar to the schema of the `node:utils`.
|
|
16
|
+
* difference is that:
|
|
17
|
+
* - `multiple` property is not supported
|
|
18
|
+
* - `required` property and `description` property are added
|
|
19
|
+
* - `type` is not only 'string' and 'boolean', but also 'number' and 'enum' too.
|
|
20
|
+
* - `default` property type, not support multiple types
|
|
21
|
+
*/
|
|
13
22
|
interface ArgOptionSchema {
|
|
14
23
|
/**
|
|
15
24
|
* Type of argument.
|
|
@@ -34,39 +43,37 @@ interface ArgOptionSchema {
|
|
|
34
43
|
/**
|
|
35
44
|
* The allowed values of the argument, and string only. This property is only used when the type is 'enum'.
|
|
36
45
|
*/
|
|
37
|
-
choices?: string[];
|
|
46
|
+
choices?: string[] | readonly string[];
|
|
38
47
|
/**
|
|
39
48
|
* The default value of the argument.
|
|
40
49
|
* if the type is 'enum', the default value must be one of the allowed values.
|
|
41
50
|
*/
|
|
42
51
|
default?: string | boolean | number;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* An object that contains {@link ArgOptionSchema | options schema}.
|
|
55
|
+
*/
|
|
47
56
|
interface ArgOptions {
|
|
48
57
|
[option: string]: ArgOptionSchema;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* An object that contains the values of the arguments.
|
|
61
|
+
*/
|
|
53
62
|
type ArgValues<T> = T extends ArgOptions ? ResolveArgValues<T, { [Option in keyof T]: ExtractOptionValue<T[Option]> }> : {
|
|
54
63
|
[option: string]: string | boolean | number | undefined;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
type ExtractOptionValue<O extends ArgOptionSchema> = O["type"] extends "string" ? string : O["type"] extends "boolean" ? boolean : O["type"] extends "number" ? number : O["type"] extends "enum" ? O["choices"] extends string[] ? O["choices"][number] : never : string | boolean | number;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* @internal
|
|
67
|
+
*/
|
|
68
|
+
type ExtractOptionValue<O extends ArgOptionSchema> = O["type"] extends "string" ? string : O["type"] extends "boolean" ? boolean : O["type"] extends "number" ? number : O["type"] extends "enum" ? O["choices"] extends string[] | readonly string[] ? O["choices"][number] : never : string | boolean | number;
|
|
69
|
+
/**
|
|
70
|
+
* @internal
|
|
71
|
+
*/
|
|
63
72
|
type ResolveArgValues<O extends ArgOptions, V extends Record<keyof O, unknown>> = { -readonly [Option in keyof O]?: V[Option] } & FilterArgs<O, V, "default"> & FilterArgs<O, V, "required"> extends infer P ? { [K in keyof P]: P[K] } : never;
|
|
64
|
-
|
|
65
73
|
/**
|
|
66
74
|
* @internal
|
|
67
75
|
*/
|
|
68
76
|
type FilterArgs<O extends ArgOptions, V extends Record<keyof O, unknown>, K extends keyof ArgOptionSchema> = { [Option in keyof O as O[Option][K] extends {} ? Option : never]: V[Option] };
|
|
69
|
-
|
|
70
77
|
/**
|
|
71
78
|
* An options for {@link resolveArgs | resolve arguments}.
|
|
72
79
|
*/
|
|
@@ -78,7 +85,6 @@ interface ResolveArgsOptions {
|
|
|
78
85
|
*/
|
|
79
86
|
optionGrouping?: boolean;
|
|
80
87
|
}
|
|
81
|
-
|
|
82
88
|
/**
|
|
83
89
|
* Resolve command line arguments.
|
|
84
90
|
* @param options - An options that contains {@link ArgOptionSchema | options schema}.
|
|
@@ -94,12 +100,10 @@ declare function resolveArgs<T extends ArgOptions>(options: T, tokens: ArgToken[
|
|
|
94
100
|
rest: string[];
|
|
95
101
|
error: AggregateError | undefined;
|
|
96
102
|
};
|
|
97
|
-
|
|
98
103
|
/**
|
|
99
104
|
* An error type for {@link OptionResolveError}.
|
|
100
105
|
*/
|
|
101
106
|
type OptionResolveErrorType = "type" | "required";
|
|
102
|
-
|
|
103
107
|
/**
|
|
104
108
|
* An error that occurs when resolving options.
|
|
105
109
|
* This error is thrown when the option is not valid.
|
package/lib/resolver.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "./parser
|
|
2
|
-
import { ArgOptionSchema, ArgOptions, ArgValues, ExtractOptionValue, FilterArgs, OptionResolveError$1 as OptionResolveError, OptionResolveErrorType, ResolveArgValues, ResolveArgsOptions, resolveArgs$1 as resolveArgs } from "./resolver
|
|
1
|
+
import "./parser-Bx112mWZ.js";
|
|
2
|
+
import { ArgOptionSchema, ArgOptions, ArgValues, ExtractOptionValue, FilterArgs, OptionResolveError$1 as OptionResolveError, OptionResolveErrorType, ResolveArgValues, ResolveArgsOptions, resolveArgs$1 as resolveArgs } from "./resolver-ByBRRKOK.js";
|
|
3
3
|
export { ArgOptionSchema, ArgOptions, ArgValues, ExtractOptionValue, FilterArgs, OptionResolveError, OptionResolveErrorType, ResolveArgValues, ResolveArgsOptions, resolveArgs };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "args-tokens",
|
|
3
3
|
"description": "parseArgs tokens compatibility and more high-performance parser",
|
|
4
|
-
"version": "0.16.
|
|
4
|
+
"version": "0.16.2",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "kazuya kawaguchi",
|
|
7
7
|
"email": "kawakazu80@gmail.com"
|
|
@@ -68,28 +68,28 @@
|
|
|
68
68
|
"@eslint/markdown": "^6.4.0",
|
|
69
69
|
"@kazupon/eslint-config": "^0.29.0",
|
|
70
70
|
"@kazupon/prettier-config": "^0.1.1",
|
|
71
|
-
"@types/node": "^22.15.
|
|
72
|
-
"@vitest/eslint-plugin": "^1.1.
|
|
71
|
+
"@types/node": "^22.15.3",
|
|
72
|
+
"@vitest/eslint-plugin": "^1.1.44",
|
|
73
73
|
"bumpp": "^10.1.0",
|
|
74
|
-
"deno": "^2.
|
|
75
|
-
"eslint": "^9.
|
|
74
|
+
"deno": "^2.3.1",
|
|
75
|
+
"eslint": "^9.26.0",
|
|
76
76
|
"eslint-config-prettier": "^10.1.2",
|
|
77
77
|
"eslint-plugin-jsonc": "^2.20.0",
|
|
78
78
|
"eslint-plugin-promise": "^7.2.1",
|
|
79
79
|
"eslint-plugin-regexp": "^2.7.0",
|
|
80
|
-
"eslint-plugin-unicorn": "^
|
|
80
|
+
"eslint-plugin-unicorn": "^59.0.0",
|
|
81
81
|
"eslint-plugin-yml": "^1.18.0",
|
|
82
82
|
"gh-changelogen": "^0.2.8",
|
|
83
83
|
"jsr": "^0.13.4",
|
|
84
84
|
"jsr-exports-lint": "^0.2.0",
|
|
85
|
-
"knip": "^5.
|
|
85
|
+
"knip": "^5.52.0",
|
|
86
86
|
"lint-staged": "^15.5.1",
|
|
87
87
|
"mitata": "^1.0.34",
|
|
88
88
|
"pkg-pr-new": "^0.0.43",
|
|
89
89
|
"prettier": "^3.5.3",
|
|
90
|
-
"tsdown": "^0.10.
|
|
90
|
+
"tsdown": "^0.10.2",
|
|
91
91
|
"typescript": "^5.8.3",
|
|
92
|
-
"typescript-eslint": "^8.31.
|
|
92
|
+
"typescript-eslint": "^8.31.1",
|
|
93
93
|
"vitest": "^3.1.2"
|
|
94
94
|
},
|
|
95
95
|
"prettier": "@kazupon/prettier-config",
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"fix:prettier": "prettier . --write",
|
|
120
120
|
"lint": "pnpm run --parallel --color \"/^lint:/\"",
|
|
121
121
|
"lint:eslint": "eslint .",
|
|
122
|
-
"lint:jsr": "jsr publish --dry-run --allow-dirty",
|
|
122
|
+
"lint:jsr": "jsr publish --config jsr.json --dry-run --allow-dirty",
|
|
123
123
|
"lint:knip": "knip",
|
|
124
124
|
"lint:prettier": "prettier . --check",
|
|
125
125
|
"release": "bumpp --commit \"release: v%s\" --all --push --tag",
|