spliterator 6.2.0 → 6.3.1
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/out/lib/core/AsyncSpliterator.d.ts +1 -1
- package/out/lib/core/AsyncSpliterator.d.ts.map +1 -1
- package/out/lib/core/AsyncSpliterator.js +2 -2
- package/out/lib/core/AsyncSpliterator.js.map +1 -1
- package/out/lib/core/SlidingWindow.d.ts +1 -1
- package/out/lib/core/SlidingWindow.d.ts.map +1 -1
- package/out/lib/core/SlidingWindow.js.map +1 -1
- package/out/lib/core/Spliterator.d.ts +1 -1
- package/out/lib/core/Spliterator.d.ts.map +1 -1
- package/out/lib/core/Spliterator.js +1 -1
- package/out/lib/core/Spliterator.js.map +1 -1
- package/out/lib/formats/CSVSpliterator.d.ts +2 -2
- package/out/lib/formats/CSVSpliterator.d.ts.map +1 -1
- package/out/lib/formats/CSVSpliterator.js +92 -1
- package/out/lib/formats/CSVSpliterator.js.map +1 -1
- package/out/lib/formats/XLSXSpliterator.d.ts +1 -1
- package/out/lib/formats/XLSXSpliterator.d.ts.map +1 -1
- package/package.json +2 -3
- package/out/lib/AsyncSequence.d.ts +0 -180
- package/out/lib/AsyncSequence.d.ts.map +0 -1
- package/out/lib/AsyncSequence.js +0 -432
- package/out/lib/AsyncSequence.js.map +0 -1
- package/out/lib/AsyncSpliterator.d.ts +0 -227
- package/out/lib/AsyncSpliterator.d.ts.map +0 -1
- package/out/lib/AsyncSpliterator.js +0 -510
- package/out/lib/AsyncSpliterator.js.map +0 -1
- package/out/lib/BufferController.d.ts +0 -77
- package/out/lib/BufferController.d.ts.map +0 -1
- package/out/lib/BufferController.js +0 -118
- package/out/lib/BufferController.js.map +0 -1
- package/out/lib/CSVSpliterator.d.ts +0 -131
- package/out/lib/CSVSpliterator.d.ts.map +0 -1
- package/out/lib/CSVSpliterator.js +0 -172
- package/out/lib/CSVSpliterator.js.map +0 -1
- package/out/lib/CharacterSequence.d.ts +0 -72
- package/out/lib/CharacterSequence.d.ts.map +0 -1
- package/out/lib/CharacterSequence.js +0 -347
- package/out/lib/CharacterSequence.js.map +0 -1
- package/out/lib/CompositeDataView.d.ts +0 -111
- package/out/lib/CompositeDataView.d.ts.map +0 -1
- package/out/lib/CompositeDataView.js +0 -241
- package/out/lib/CompositeDataView.js.map +0 -1
- package/out/lib/IndexQueue.d.ts +0 -48
- package/out/lib/IndexQueue.d.ts.map +0 -1
- package/out/lib/IndexQueue.js +0 -111
- package/out/lib/IndexQueue.js.map +0 -1
- package/out/lib/JSONSpliterator.d.ts +0 -44
- package/out/lib/JSONSpliterator.d.ts.map +0 -1
- package/out/lib/JSONSpliterator.js +0 -77
- package/out/lib/JSONSpliterator.js.map +0 -1
- package/out/lib/PSVSpliterator.d.ts +0 -21
- package/out/lib/PSVSpliterator.d.ts.map +0 -1
- package/out/lib/PSVSpliterator.js +0 -22
- package/out/lib/PSVSpliterator.js.map +0 -1
- package/out/lib/SlidingWindow.d.ts +0 -47
- package/out/lib/SlidingWindow.d.ts.map +0 -1
- package/out/lib/SlidingWindow.js +0 -63
- package/out/lib/SlidingWindow.js.map +0 -1
- package/out/lib/Spliterator.d.ts +0 -96
- package/out/lib/Spliterator.d.ts.map +0 -1
- package/out/lib/Spliterator.js +0 -330
- package/out/lib/Spliterator.js.map +0 -1
- package/out/lib/TSVSpliterator.d.ts +0 -21
- package/out/lib/TSVSpliterator.d.ts.map +0 -1
- package/out/lib/TSVSpliterator.js +0 -22
- package/out/lib/TSVSpliterator.js.map +0 -1
- package/out/lib/TextSpliterator.d.ts +0 -53
- package/out/lib/TextSpliterator.d.ts.map +0 -1
- package/out/lib/TextSpliterator.js +0 -67
- package/out/lib/TextSpliterator.js.map +0 -1
- package/out/lib/XLSXSpliterator.d.ts +0 -143
- package/out/lib/XLSXSpliterator.d.ts.map +0 -1
- package/out/lib/XLSXSpliterator.js +0 -161
- package/out/lib/XLSXSpliterator.js.map +0 -1
- package/out/lib/adaptive-source.d.ts +0 -39
- package/out/lib/adaptive-source.d.ts.map +0 -1
- package/out/lib/adaptive-source.js +0 -95
- package/out/lib/adaptive-source.js.map +0 -1
- package/out/lib/casing.d.ts +0 -27
- package/out/lib/casing.d.ts.map +0 -1
- package/out/lib/casing.js +0 -68
- package/out/lib/casing.js.map +0 -1
- package/out/lib/chunks.d.ts +0 -20
- package/out/lib/chunks.d.ts.map +0 -1
- package/out/lib/chunks.js +0 -36
- package/out/lib/chunks.js.map +0 -1
- package/out/lib/merge-async-iterators.d.ts +0 -12
- package/out/lib/merge-async-iterators.d.ts.map +0 -1
- package/out/lib/merge-async-iterators.js +0 -39
- package/out/lib/merge-async-iterators.js.map +0 -1
- package/out/lib/parallel-map-runtime.d.ts +0 -22
- package/out/lib/parallel-map-runtime.d.ts.map +0 -1
- package/out/lib/parallel-map-runtime.js +0 -60
- package/out/lib/parallel-map-runtime.js.map +0 -1
- package/out/lib/parallel-map-worker-entry.d.ts +0 -11
- package/out/lib/parallel-map-worker-entry.d.ts.map +0 -1
- package/out/lib/parallel-map-worker-entry.js +0 -41
- package/out/lib/parallel-map-worker-entry.js.map +0 -1
- package/out/lib/parallel-map-workers.d.ts +0 -57
- package/out/lib/parallel-map-workers.d.ts.map +0 -1
- package/out/lib/parallel-map-workers.js +0 -82
- package/out/lib/parallel-map-workers.js.map +0 -1
- package/out/lib/parallel-map.d.ts +0 -28
- package/out/lib/parallel-map.d.ts.map +0 -1
- package/out/lib/parallel-map.js +0 -30
- package/out/lib/parallel-map.js.map +0 -1
- package/out/lib/pivot.d.ts +0 -30
- package/out/lib/pivot.d.ts.map +0 -1
- package/out/lib/pivot.js +0 -47
- package/out/lib/pivot.js.map +0 -1
- package/out/lib/row-emitters.d.ts +0 -35
- package/out/lib/row-emitters.d.ts.map +0 -1
- package/out/lib/row-emitters.js +0 -50
- package/out/lib/row-emitters.js.map +0 -1
- package/out/lib/segment-runtime.d.ts +0 -27
- package/out/lib/segment-runtime.d.ts.map +0 -1
- package/out/lib/segment-runtime.js +0 -41
- package/out/lib/segment-runtime.js.map +0 -1
- package/out/lib/segment-worker-entry.d.ts +0 -10
- package/out/lib/segment-worker-entry.d.ts.map +0 -1
- package/out/lib/segment-worker-entry.js +0 -59
- package/out/lib/segment-worker-entry.js.map +0 -1
- package/out/lib/segment-workers.d.ts +0 -56
- package/out/lib/segment-workers.d.ts.map +0 -1
- package/out/lib/segment-workers.js +0 -110
- package/out/lib/segment-workers.js.map +0 -1
- package/out/lib/segments.d.ts +0 -31
- package/out/lib/segments.d.ts.map +0 -1
- package/out/lib/segments.js +0 -52
- package/out/lib/segments.js.map +0 -1
- package/out/lib/shared.d.ts +0 -155
- package/out/lib/shared.d.ts.map +0 -1
- package/out/lib/shared.js +0 -41
- package/out/lib/shared.js.map +0 -1
- package/out/lib/take.d.ts +0 -42
- package/out/lib/take.d.ts.map +0 -1
- package/out/lib/take.js +0 -101
- package/out/lib/take.js.map +0 -1
- package/out/lib/utils.d.ts +0 -37
- package/out/lib/utils.d.ts.map +0 -1
- package/out/lib/utils.js +0 -39
- package/out/lib/utils.js.map +0 -1
- package/out/lib/wasm_base64.d.ts +0 -19
- package/out/lib/wasm_base64.d.ts.map +0 -1
- package/out/lib/wasm_base64.js +0 -19
- package/out/lib/wasm_base64.js.map +0 -1
- package/out/lib/wasm_module.d.ts +0 -57
- package/out/lib/wasm_module.d.ts.map +0 -1
- package/out/lib/wasm_module.js +0 -34
- package/out/lib/wasm_module.js.map +0 -1
- package/out/lib/writer.d.ts +0 -45
- package/out/lib/writer.d.ts.map +0 -1
- package/out/lib/writer.js +0 -57
- package/out/lib/writer.js.map +0 -1
- package/out/lib/zip.d.ts +0 -33
- package/out/lib/zip.d.ts.map +0 -1
- package/out/lib/zip.js +0 -59
- package/out/lib/zip.js.map +0 -1
- package/out/node/cli/parse-args.d.ts +0 -120
- package/out/node/cli/parse-args.d.ts.map +0 -1
- package/out/node/cli/parse-args.js +0 -118
- package/out/node/cli/parse-args.js.map +0 -1
package/out/lib/zip.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @copyright Sister Software
|
|
3
|
-
* @license MIT
|
|
4
|
-
* @author Teffen Ellis, et al.
|
|
5
|
-
*/
|
|
6
|
-
export function zippedEntries(zipped) {
|
|
7
|
-
return zipped.slice(0, 2);
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Given two iterables, zip them together into a single iterable which yields pairs of elements.
|
|
11
|
-
*
|
|
12
|
-
* If one iterable is longer than the other, the shorter iterable will be padded with `undefined`.
|
|
13
|
-
*
|
|
14
|
-
* @param a The first iterable to zip.
|
|
15
|
-
* @param b The second iterable to zip.
|
|
16
|
-
*
|
|
17
|
-
* @yields Pairs of elements from the two iterables.
|
|
18
|
-
* @see {@linkcode zipAsync} for the asynchronous version.
|
|
19
|
-
*/
|
|
20
|
-
export function* zipSync(a, b) {
|
|
21
|
-
const aIterator = a[Symbol.iterator]();
|
|
22
|
-
const bIterator = b[Symbol.iterator]();
|
|
23
|
-
let index = 0;
|
|
24
|
-
while (true) {
|
|
25
|
-
const { done: aDone, value: aValue } = aIterator.next();
|
|
26
|
-
const { done: bDone, value: bValue } = bIterator.next();
|
|
27
|
-
if (aDone && bDone) {
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
yield [aValue, bValue, index];
|
|
31
|
-
index++;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Given two iterables, zip them together into a single iterable which yields pairs of elements.
|
|
36
|
-
*
|
|
37
|
-
* If one iterable is longer than the other, the shorter iterable will be padded with `undefined`.
|
|
38
|
-
*
|
|
39
|
-
* @param a The first iterable to zip.
|
|
40
|
-
* @param b The second iterable to zip.
|
|
41
|
-
*
|
|
42
|
-
* @yields Pairs of elements from the two iterables.
|
|
43
|
-
* @see {@linkcode zipSync} for the synchronous version.
|
|
44
|
-
*/
|
|
45
|
-
export async function* zipAsync(a, b) {
|
|
46
|
-
const aIterator = Symbol.asyncIterator in a ? a[Symbol.asyncIterator]() : a[Symbol.iterator]();
|
|
47
|
-
const bIterator = Symbol.asyncIterator in b ? b[Symbol.asyncIterator]() : b[Symbol.iterator]();
|
|
48
|
-
let index = 0;
|
|
49
|
-
while (true) {
|
|
50
|
-
const { done: aDone, value: aValue } = await aIterator.next();
|
|
51
|
-
const { done: bDone, value: bValue } = await bIterator.next();
|
|
52
|
-
if (aDone && bDone) {
|
|
53
|
-
break;
|
|
54
|
-
}
|
|
55
|
-
yield [aValue, bValue, index];
|
|
56
|
-
index++;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=zip.js.map
|
package/out/lib/zip.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zip.js","sourceRoot":"","sources":["../../lib/zip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,UAAU,aAAa,CAAO,MAAoB;IACvD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAgC,CAAA;AACzD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,SAAS,CAAC,CAAC,OAAO,CAAO,CAAc,EAAE,CAAc;IAC5D,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;IACtC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;IAEtC,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,OAAO,IAAI,EAAE,CAAC;QACb,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;QACvD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;QAEvD,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YACpB,MAAK;QACN,CAAC;QAED,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAE7B,KAAK,EAAE,CAAA;IACR,CAAC;AACF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,QAAQ,CAC9B,CAAiC,EACjC,CAAiC;IAEjC,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;IAC9F,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;IAE9F,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,OAAO,IAAI,EAAE,CAAC;QACb,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;QAC7D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;QAE7D,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YACpB,MAAK;QACN,CAAC;QAED,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAE7B,KAAK,EAAE,CAAA;IACR,CAAC;AACF,CAAC"}
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @copyright Sister Software
|
|
3
|
-
* @license MIT
|
|
4
|
-
* @author Teffen Ellis, et al.
|
|
5
|
-
* @file A minimal command/option layer over Node's built-in `util.parseArgs`.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Declarative description of a single command line option.
|
|
9
|
-
*/
|
|
10
|
-
export interface OptionSpec {
|
|
11
|
-
/**
|
|
12
|
-
* The value type. `number` options are parsed as strings and coerced.
|
|
13
|
-
*/
|
|
14
|
-
type: "string" | "boolean" | "number";
|
|
15
|
-
/**
|
|
16
|
-
* Single-character alias, e.g. `s` for `-s`.
|
|
17
|
-
*/
|
|
18
|
-
short?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Help text shown alongside the option.
|
|
21
|
-
*/
|
|
22
|
-
description: string;
|
|
23
|
-
/**
|
|
24
|
-
* Value used when the option is omitted.
|
|
25
|
-
*/
|
|
26
|
-
default?: string | number | boolean;
|
|
27
|
-
/**
|
|
28
|
-
* Human-readable stand-in for `default` in help output, e.g. `<newline>`.
|
|
29
|
-
*/
|
|
30
|
-
defaultDescription?: string;
|
|
31
|
-
/**
|
|
32
|
-
* Permitted values for string options. Anything else is rejected.
|
|
33
|
-
*/
|
|
34
|
-
choices?: readonly string[];
|
|
35
|
-
}
|
|
36
|
-
export type OptionRecord = Record<string, OptionSpec>;
|
|
37
|
-
/**
|
|
38
|
-
* Declarative description of a positional argument.
|
|
39
|
-
*/
|
|
40
|
-
export interface PositionalSpec {
|
|
41
|
-
/**
|
|
42
|
-
* Help text shown alongside the positional.
|
|
43
|
-
*/
|
|
44
|
-
description: string;
|
|
45
|
-
/**
|
|
46
|
-
* Whether the positional must be present.
|
|
47
|
-
*/
|
|
48
|
-
required?: boolean;
|
|
49
|
-
}
|
|
50
|
-
export type PositionalRecord = Record<string, PositionalSpec>;
|
|
51
|
-
type KebabToCamel<T extends string> = T extends `${infer Head}-${infer Tail}` ? `${Head}${Capitalize<KebabToCamel<Tail>>}` : T;
|
|
52
|
-
type OptionValue<S extends OptionSpec> = S extends {
|
|
53
|
-
choices: readonly (infer Choice)[];
|
|
54
|
-
} ? Choice : S["type"] extends "boolean" ? boolean : S["type"] extends "number" ? number : string;
|
|
55
|
-
type OptionalKeys<O extends OptionRecord> = {
|
|
56
|
-
[K in keyof O]: O[K] extends {
|
|
57
|
-
default: unknown;
|
|
58
|
-
} ? never : K;
|
|
59
|
-
}[keyof O];
|
|
60
|
-
/**
|
|
61
|
-
* The parsed shape of an option record, with kebab-case keys camel-cased.
|
|
62
|
-
*/
|
|
63
|
-
export type InferOptions<O extends OptionRecord> = {
|
|
64
|
-
[K in Exclude<keyof O, OptionalKeys<O>> & string as KebabToCamel<K>]: OptionValue<O[K]>;
|
|
65
|
-
} & {
|
|
66
|
-
[K in OptionalKeys<O> & string as KebabToCamel<K>]?: OptionValue<O[K]>;
|
|
67
|
-
};
|
|
68
|
-
/**
|
|
69
|
-
* The parsed shape of a positional record.
|
|
70
|
-
*/
|
|
71
|
-
export type InferPositionals<P extends PositionalRecord> = {
|
|
72
|
-
[K in keyof P & string as KebabToCamel<K>]: P[K] extends {
|
|
73
|
-
required: true;
|
|
74
|
-
} ? string : string | undefined;
|
|
75
|
-
};
|
|
76
|
-
/**
|
|
77
|
-
* A CLI command — a name, its options, and the handler invoked with parsed arguments.
|
|
78
|
-
*/
|
|
79
|
-
export interface Command<O extends OptionRecord = OptionRecord, P extends PositionalRecord = PositionalRecord> {
|
|
80
|
-
/**
|
|
81
|
-
* The subcommand name, or `null` for the default command.
|
|
82
|
-
*/
|
|
83
|
-
name: string | null;
|
|
84
|
-
/**
|
|
85
|
-
* One-line summary shown in the top-level help.
|
|
86
|
-
*/
|
|
87
|
-
description: string;
|
|
88
|
-
/**
|
|
89
|
-
* Usage line shown in the command's help, sans script name.
|
|
90
|
-
*/
|
|
91
|
-
usage: string;
|
|
92
|
-
options: O;
|
|
93
|
-
positionals: P;
|
|
94
|
-
handler: (args: InferOptions<O> & InferPositionals<P>) => Promise<void>;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Identity helper preserving the literal types of a command's option and positional records.
|
|
98
|
-
*/
|
|
99
|
-
export declare function defineCommand<O extends OptionRecord, P extends PositionalRecord>(command: Command<O, P>): Command<O, P>;
|
|
100
|
-
/**
|
|
101
|
-
* Thrown when the user supplies arguments the command cannot accept.
|
|
102
|
-
*
|
|
103
|
-
* The CLI entry point prints the message and exits without a stack trace.
|
|
104
|
-
*/
|
|
105
|
-
export declare class UsageError extends Error {
|
|
106
|
-
name: string;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Parse `argv` against a command, applying defaults, coercion, and validation.
|
|
110
|
-
*
|
|
111
|
-
* @param command - The command to parse against.
|
|
112
|
-
* @param argv - Arguments following the command name.
|
|
113
|
-
*/
|
|
114
|
-
export declare function parseCommand<O extends OptionRecord, P extends PositionalRecord>(command: Command<O, P>, argv: string[]): InferOptions<O> & InferPositionals<P>;
|
|
115
|
-
/**
|
|
116
|
-
* Render the help text for a single command.
|
|
117
|
-
*/
|
|
118
|
-
export declare function formatCommandHelp(scriptName: string, command: Command): string;
|
|
119
|
-
export {};
|
|
120
|
-
//# sourceMappingURL=parse-args.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-args.d.ts","sourceRoot":"","sources":["../../../node/cli/parse-args.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @copyright Sister Software
|
|
3
|
-
* @license MIT
|
|
4
|
-
* @author Teffen Ellis, et al.
|
|
5
|
-
* @file A minimal command/option layer over Node's built-in `util.parseArgs`.
|
|
6
|
-
*/
|
|
7
|
-
import { parseArgs } from "node:util";
|
|
8
|
-
/**
|
|
9
|
-
* Identity helper preserving the literal types of a command's option and positional records.
|
|
10
|
-
*/
|
|
11
|
-
export function defineCommand(command) {
|
|
12
|
-
return command;
|
|
13
|
-
}
|
|
14
|
-
function camelCase(input) {
|
|
15
|
-
return input.replace(/-([a-z])/g, (_, character) => character.toUpperCase());
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Thrown when the user supplies arguments the command cannot accept.
|
|
19
|
-
*
|
|
20
|
-
* The CLI entry point prints the message and exits without a stack trace.
|
|
21
|
-
*/
|
|
22
|
-
export class UsageError extends Error {
|
|
23
|
-
name = "UsageError";
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Parse `argv` against a command, applying defaults, coercion, and validation.
|
|
27
|
-
*
|
|
28
|
-
* @param command - The command to parse against.
|
|
29
|
-
* @param argv - Arguments following the command name.
|
|
30
|
-
*/
|
|
31
|
-
export function parseCommand(command, argv) {
|
|
32
|
-
const config = {};
|
|
33
|
-
for (const [name, spec] of Object.entries(command.options)) {
|
|
34
|
-
config[name] = {
|
|
35
|
-
type: spec.type === "number" ? "string" : spec.type,
|
|
36
|
-
...(spec.short ? { short: spec.short } : {}),
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
let parsed;
|
|
40
|
-
try {
|
|
41
|
-
parsed = parseArgs({
|
|
42
|
-
args: argv,
|
|
43
|
-
options: config,
|
|
44
|
-
allowPositionals: true,
|
|
45
|
-
allowNegative: true,
|
|
46
|
-
strict: true,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
throw new UsageError(error instanceof Error ? error.message : String(error));
|
|
51
|
-
}
|
|
52
|
-
const result = {};
|
|
53
|
-
for (const [name, spec] of Object.entries(command.options)) {
|
|
54
|
-
const key = camelCase(name);
|
|
55
|
-
const raw = parsed.values[name];
|
|
56
|
-
if (raw === undefined) {
|
|
57
|
-
if (spec.default !== undefined)
|
|
58
|
-
result[key] = spec.default;
|
|
59
|
-
continue;
|
|
60
|
-
}
|
|
61
|
-
if (spec.type === "number") {
|
|
62
|
-
const value = Number(raw);
|
|
63
|
-
if (!Number.isFinite(value)) {
|
|
64
|
-
throw new UsageError(`Option --${name} expects a number, received "${String(raw)}".`);
|
|
65
|
-
}
|
|
66
|
-
result[key] = value;
|
|
67
|
-
continue;
|
|
68
|
-
}
|
|
69
|
-
if (spec.choices && !spec.choices.includes(raw)) {
|
|
70
|
-
throw new UsageError(`Option --${name} expects one of: ${spec.choices.join(", ")}.`);
|
|
71
|
-
}
|
|
72
|
-
result[key] = raw;
|
|
73
|
-
}
|
|
74
|
-
const positionalNames = Object.keys(command.positionals);
|
|
75
|
-
if (parsed.positionals.length > positionalNames.length) {
|
|
76
|
-
throw new UsageError(`Unexpected argument "${parsed.positionals[positionalNames.length]}".`);
|
|
77
|
-
}
|
|
78
|
-
for (const [index, name] of positionalNames.entries()) {
|
|
79
|
-
const key = camelCase(name);
|
|
80
|
-
// An explicit `--source`/`--destination` option wins over the positional slot.
|
|
81
|
-
const value = result[key] ?? parsed.positionals[index];
|
|
82
|
-
if (value === undefined && command.positionals[name].required) {
|
|
83
|
-
throw new UsageError(`Missing required argument "${name}".`);
|
|
84
|
-
}
|
|
85
|
-
result[key] = value;
|
|
86
|
-
}
|
|
87
|
-
return result;
|
|
88
|
-
}
|
|
89
|
-
function formatDefault(spec) {
|
|
90
|
-
if (spec.defaultDescription)
|
|
91
|
-
return spec.defaultDescription;
|
|
92
|
-
if (spec.default === undefined)
|
|
93
|
-
return "";
|
|
94
|
-
return JSON.stringify(spec.default);
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Render the help text for a single command.
|
|
98
|
-
*/
|
|
99
|
-
export function formatCommandHelp(scriptName, command) {
|
|
100
|
-
const lines = [command.description, "", `Usage: ${scriptName} ${command.usage}`, ""];
|
|
101
|
-
const positionalEntries = Object.entries(command.positionals);
|
|
102
|
-
if (positionalEntries.length) {
|
|
103
|
-
lines.push("Positionals:");
|
|
104
|
-
for (const [name, spec] of positionalEntries) {
|
|
105
|
-
lines.push(` ${name.padEnd(28)}${spec.description}${spec.required ? "" : " (optional)"}`);
|
|
106
|
-
}
|
|
107
|
-
lines.push("");
|
|
108
|
-
}
|
|
109
|
-
lines.push("Options:");
|
|
110
|
-
for (const [name, spec] of Object.entries(command.options)) {
|
|
111
|
-
const flag = [spec.short ? `-${spec.short},` : " ", `--${name}`].join(" ");
|
|
112
|
-
const fallback = formatDefault(spec);
|
|
113
|
-
const choices = spec.choices ? ` [${spec.choices.join("|")}]` : "";
|
|
114
|
-
lines.push(` ${flag.padEnd(32)}${spec.description}${choices}${fallback ? ` (default: ${fallback})` : ""}`);
|
|
115
|
-
}
|
|
116
|
-
return lines.join("\n");
|
|
117
|
-
}
|
|
118
|
-
//# sourceMappingURL=parse-args.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-args.js","sourceRoot":"","sources":["../../../node/cli/parse-args.ts"],"names":[],"mappings":"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"}
|