@oliversalzburg/js-utils 0.8.0 → 0.8.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/lib/cli/args.js +8 -4
- package/lib/cli/args.js.map +1 -1
- package/lib/cli/args.test.js +22 -0
- package/lib/cli/args.test.js.map +1 -1
- package/package.json +1 -1
package/lib/cli/args.js
CHANGED
|
@@ -34,16 +34,20 @@ export const parseArgv = (argv, expectUnlabeled = false) => argv.slice(2).reduce
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
const argSlot = acc.args[slot];
|
|
37
|
+
if ((Array.isArray(argSlot) || typeof argSlot === "string") &&
|
|
38
|
+
value === true) {
|
|
39
|
+
return acc;
|
|
40
|
+
}
|
|
37
41
|
acc.args[slot] =
|
|
38
42
|
Array.isArray(argSlot) && typeof value === "string"
|
|
39
43
|
? [...argSlot, value]
|
|
40
44
|
: slot === "" && typeof value === "string"
|
|
41
45
|
? [value]
|
|
42
|
-
: typeof argSlot === "undefined" ||
|
|
43
|
-
typeof argSlot === "boolean" ||
|
|
44
|
-
typeof value === "boolean"
|
|
46
|
+
: typeof argSlot === "undefined" || typeof value === "boolean"
|
|
45
47
|
? value
|
|
46
|
-
:
|
|
48
|
+
: typeof argSlot === "boolean"
|
|
49
|
+
? value
|
|
50
|
+
: [...(Array.isArray(argSlot) ? argSlot : [argSlot]), value];
|
|
47
51
|
return acc;
|
|
48
52
|
}, { args: {} }).args;
|
|
49
53
|
//# sourceMappingURL=args.js.map
|
package/lib/cli/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../source/cli/args.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,IAAmB,EACnB,eAAe,GAAG,KAAK,EAItB,EAAE,CACH,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CACnB,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IACxB,IAAI,IAAY,CAAC;IACjB,IAAI,KAAoB,CAAC;IAEzB,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,IACC,GAAG,CAAC,IAAI,KAAK,SAAS;YACtB,CAAC,eAAe,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAC9C,CAAC;YACF,IAAI,GAAG,EAAE,CAAC;QACX,CAAC;aAAM,CAAC;YACP,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YAChB,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,CAAC;QACD,KAAK,GAAG,CAAC,CAAC;IACX,CAAC;SAAM,CAAC;QACP,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClD,OAAO,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/C,KAAK;YACJ,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE;gBAClE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;gBACpB,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,CAAC;IACF,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACb,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAClD,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC;YACrB,CAAC,CAAC,IAAI,KAAK,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ;gBACzC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACT,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../source/cli/args.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,IAAmB,EACnB,eAAe,GAAG,KAAK,EAItB,EAAE,CACH,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CACnB,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IACxB,IAAI,IAAY,CAAC;IACjB,IAAI,KAAoB,CAAC;IAEzB,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,IACC,GAAG,CAAC,IAAI,KAAK,SAAS;YACtB,CAAC,eAAe,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAC9C,CAAC;YACF,IAAI,GAAG,EAAE,CAAC;QACX,CAAC;aAAM,CAAC;YACP,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YAChB,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,CAAC;QACD,KAAK,GAAG,CAAC,CAAC;IACX,CAAC;SAAM,CAAC;QACP,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClD,OAAO,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/C,KAAK;YACJ,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE;gBAClE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;gBACpB,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,CAAC;IACF,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IACC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC;QACvD,KAAK,KAAK,IAAI,EACb,CAAC;QACF,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACb,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAClD,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC;YACrB,CAAC,CAAC,IAAI,KAAK,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ;gBACzC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACT,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,KAAK,SAAS;oBAC7D,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,OAAO,OAAO,KAAK,SAAS;wBAC7B,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAElE,OAAO,GAAG,CAAC;AACZ,CAAC,EACD,EAAE,IAAI,EAAE,EAAE,EAMT,CACD,CAAC,IAAI,CAAC"}
|
package/lib/cli/args.test.js
CHANGED
|
@@ -28,4 +28,26 @@ it("parses parameters using ' '", () => {
|
|
|
28
28
|
yes: "true",
|
|
29
29
|
});
|
|
30
30
|
});
|
|
31
|
+
it("aggregates multiple occurrences of the same parameter", () => {
|
|
32
|
+
assert.deepStrictEqual(parseArgv(["node", "script.js", "--lang", "de", "--lang", "en"]), {
|
|
33
|
+
lang: ["de", "en"],
|
|
34
|
+
});
|
|
35
|
+
assert.deepStrictEqual(parseArgv([
|
|
36
|
+
"node",
|
|
37
|
+
"script.js",
|
|
38
|
+
"--lang",
|
|
39
|
+
"de",
|
|
40
|
+
"--lang",
|
|
41
|
+
"en",
|
|
42
|
+
"filename.ext",
|
|
43
|
+
]), {
|
|
44
|
+
"": ["filename.ext"],
|
|
45
|
+
lang: ["de", "en"],
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
it("aggregates multiple unlabeled parameters", () => {
|
|
49
|
+
assert.deepStrictEqual(parseArgv(["node", "script.js", "filename.ext", "otherfile.ext"]), {
|
|
50
|
+
"": ["filename.ext", "otherfile.ext"],
|
|
51
|
+
});
|
|
52
|
+
});
|
|
31
53
|
//# sourceMappingURL=args.test.js.map
|
package/lib/cli/args.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.test.js","sourceRoot":"","sources":["../../source/cli/args.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACpC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE;QACjE,GAAG,EAAE,IAAI;KACT,CAAC,CAAC;IACH,MAAM,CAAC,eAAe,CACrB,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,EAC/D;QACC,EAAE,EAAE,CAAC,cAAc,CAAC;QACpB,GAAG,EAAE,IAAI;KACT,CACD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACtC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,EAAE;QACtE,GAAG,EAAE,MAAM;KACX,CAAC,CAAC;IACH,MAAM,CAAC,eAAe,CACrB,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,EAC9D;QACC,EAAE,EAAE,CAAC,cAAc,CAAC;QACpB,GAAG,EAAE,MAAM;KACX,CACD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACtC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE;QACzE,GAAG,EAAE,MAAM;KACX,CAAC,CAAC;IACH,MAAM,CAAC,eAAe,CACrB,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,EACjE;QACC,EAAE,EAAE,CAAC,cAAc,CAAC;QACpB,GAAG,EAAE,MAAM;KACX,CACD,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"args.test.js","sourceRoot":"","sources":["../../source/cli/args.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACpC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE;QACjE,GAAG,EAAE,IAAI;KACT,CAAC,CAAC;IACH,MAAM,CAAC,eAAe,CACrB,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,EAC/D;QACC,EAAE,EAAE,CAAC,cAAc,CAAC;QACpB,GAAG,EAAE,IAAI;KACT,CACD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACtC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,EAAE;QACtE,GAAG,EAAE,MAAM;KACX,CAAC,CAAC;IACH,MAAM,CAAC,eAAe,CACrB,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,EAC9D;QACC,EAAE,EAAE,CAAC,cAAc,CAAC;QACpB,GAAG,EAAE,MAAM;KACX,CACD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACtC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE;QACzE,GAAG,EAAE,MAAM;KACX,CAAC,CAAC;IACH,MAAM,CAAC,eAAe,CACrB,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,EACjE;QACC,EAAE,EAAE,CAAC,cAAc,CAAC;QACpB,GAAG,EAAE,MAAM;KACX,CACD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;IAChE,MAAM,CAAC,eAAe,CACrB,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,EAChE;QACC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;KAClB,CACD,CAAC;IACF,MAAM,CAAC,eAAe,CACrB,SAAS,CAAC;QACT,MAAM;QACN,WAAW;QACX,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,cAAc;KACd,CAAC,EACF;QACC,EAAE,EAAE,CAAC,cAAc,CAAC;QACpB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;KAClB,CACD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACnD,MAAM,CAAC,eAAe,CACrB,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,EACjE;QACC,EAAE,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;KACrC,CACD,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED