@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 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
- : [...(Array.isArray(argSlot) ? argSlot : [argSlot]), value];
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
@@ -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;oBAC9B,OAAO,OAAO,KAAK,SAAS;oBAC5B,OAAO,KAAK,KAAK,SAAS;oBAC3B,CAAC,CAAC,KAAK;oBACP,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;IAEjE,OAAO,GAAG,CAAC;AACZ,CAAC,EACD,EAAE,IAAI,EAAE,EAAE,EAMT,CACD,CAAC,IAAI,CAAC"}
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"}
@@ -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
@@ -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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@oliversalzburg/js-utils",
4
- "version": "0.8.0",
4
+ "version": "0.8.1",
5
5
  "license": "MIT",
6
6
  "author": "Oliver Salzburg <oliver.salzburg@gmail.com>",
7
7
  "repository": {