Skip to content

Commit 8a8ed93

Browse files
committed
fix: empty argv
1 parent 14cff43 commit 8a8ed93

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

.changeset/serious-shirts-teach.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"ultraflag": patch
3+
---
4+
5+
Fixes an edge case where passing an empty `argv` array would return an empty object without default values.

src/index.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import type {
2-
ParseOptions,
2+
Aliases,
33
Args,
4-
NestedMapping,
5-
Values,
64
BooleanType,
7-
StringType,
85
Collectable,
9-
Aliases,
6+
NestedMapping,
7+
ParseOptions,
8+
StringType,
9+
Values,
1010
} from "./types.js";
1111
export { ParseOptions, Args } from "./types.js";
1212

@@ -18,7 +18,7 @@ const set = (obj: NestedMapping, key: string, value: any, type?: string) => {
1818
const parts = key.split(".");
1919
for (let i = 0; i < parts.length - 1; i++) {
2020
const k = parts[i];
21-
let tmp = {};
21+
const tmp = {};
2222
set(obj, k, tmp);
2323
obj = tmp;
2424
}
@@ -89,8 +89,8 @@ export function parse<
8989
...types
9090
}: ParseOptions<TBooleans, TStrings, TCollectable, TDefaults, TAliases> = {}
9191
): Args<TArgs> {
92-
if (argv.length === 0) return {} as Args<TArgs>;
9392
const obj = { ...defaults, _: [] } as unknown as Args<TArgs>;
93+
if (argv.length === 0) return obj;
9494

9595
for (let i = 0; i < argv.length; i++) {
9696
const curr = argv[i];

0 commit comments

Comments
 (0)