@rickosborne/clamp 2025.1.7 → 2025.1.10
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/boolean-param.cjs +52 -0
- package/boolean-param.cjs.map +6 -0
- package/boolean-param.d.ts.map +1 -0
- package/boolean-param.mjs +33 -0
- package/boolean-param.mjs.map +6 -0
- package/command-params.cjs +158 -0
- package/command-params.cjs.map +6 -0
- package/command-params.d.ts.map +1 -0
- package/command-params.mjs +139 -0
- package/command-params.mjs.map +6 -0
- package/common.cjs +17 -0
- package/common.cjs.map +6 -0
- package/common.d.ts.map +1 -0
- package/common.mjs +1 -0
- package/common.mjs.map +6 -0
- package/date-param.cjs +49 -0
- package/date-param.cjs.map +6 -0
- package/{types/ts/date-param.d.ts → date-param.d.ts} +1 -1
- package/date-param.d.ts.map +1 -0
- package/date-param.mjs +30 -0
- package/date-param.mjs.map +6 -0
- package/file-param.cjs +63 -0
- package/file-param.cjs.map +6 -0
- package/file-param.d.ts.map +1 -0
- package/file-param.mjs +34 -0
- package/file-param.mjs.map +6 -0
- package/help-for-param.cjs +49 -0
- package/help-for-param.cjs.map +6 -0
- package/help-for-param.d.ts.map +1 -0
- package/help-for-param.mjs +30 -0
- package/help-for-param.mjs.map +6 -0
- package/index.cjs +28 -0
- package/index.cjs.map +6 -0
- package/index.d.ts +11 -0
- package/index.d.ts.map +1 -0
- package/index.mjs +11 -0
- package/index.mjs.map +6 -0
- package/label-for-param.cjs +32 -0
- package/label-for-param.cjs.map +6 -0
- package/label-for-param.d.ts.map +1 -0
- package/label-for-param.mjs +13 -0
- package/label-for-param.mjs.map +6 -0
- package/number-param.cjs +64 -0
- package/number-param.cjs.map +6 -0
- package/number-param.d.ts.map +1 -0
- package/number-param.mjs +45 -0
- package/number-param.mjs.map +6 -0
- package/package.json +89 -14
- package/param-handler.cjs +45 -0
- package/param-handler.cjs.map +6 -0
- package/param-handler.d.ts.map +1 -0
- package/param-handler.mjs +26 -0
- package/param-handler.mjs.map +6 -0
- package/string-param.cjs +44 -0
- package/string-param.cjs.map +6 -0
- package/string-param.d.ts.map +1 -0
- package/string-param.mjs +25 -0
- package/string-param.mjs.map +6 -0
- package/cjs/index.js +0 -27
- package/cjs/index.js.map +0 -1
- package/cjs/package.json +0 -6
- package/cjs/ts/boolean-param.js +0 -45
- package/cjs/ts/boolean-param.js.map +0 -1
- package/cjs/ts/command-params.js +0 -160
- package/cjs/ts/command-params.js.map +0 -1
- package/cjs/ts/common.js +0 -3
- package/cjs/ts/common.js.map +0 -1
- package/cjs/ts/date-param.js +0 -38
- package/cjs/ts/date-param.js.map +0 -1
- package/cjs/ts/file-param.js +0 -43
- package/cjs/ts/file-param.js.map +0 -1
- package/cjs/ts/help-for-param.js +0 -33
- package/cjs/ts/help-for-param.js.map +0 -1
- package/cjs/ts/label-for-param.js +0 -18
- package/cjs/ts/label-for-param.js.map +0 -1
- package/cjs/ts/number-param.js +0 -56
- package/cjs/ts/number-param.js.map +0 -1
- package/cjs/ts/param-handler.js +0 -28
- package/cjs/ts/param-handler.js.map +0 -1
- package/cjs/ts/string-param.js +0 -34
- package/cjs/ts/string-param.js.map +0 -1
- package/cjs/tsconfig.cjs.tsbuildinfo +0 -1
- package/esm/index.js +0 -11
- package/esm/index.js.map +0 -1
- package/esm/package.json +0 -6
- package/esm/ts/boolean-param.js +0 -40
- package/esm/ts/boolean-param.js.map +0 -1
- package/esm/ts/command-params.js +0 -154
- package/esm/ts/command-params.js.map +0 -1
- package/esm/ts/common.js +0 -2
- package/esm/ts/common.js.map +0 -1
- package/esm/ts/date-param.js +0 -32
- package/esm/ts/date-param.js.map +0 -1
- package/esm/ts/file-param.js +0 -37
- package/esm/ts/file-param.js.map +0 -1
- package/esm/ts/help-for-param.js +0 -29
- package/esm/ts/help-for-param.js.map +0 -1
- package/esm/ts/label-for-param.js +0 -13
- package/esm/ts/label-for-param.js.map +0 -1
- package/esm/ts/number-param.js +0 -51
- package/esm/ts/number-param.js.map +0 -1
- package/esm/ts/param-handler.js +0 -23
- package/esm/ts/param-handler.js.map +0 -1
- package/esm/ts/string-param.js +0 -28
- package/esm/ts/string-param.js.map +0 -1
- package/esm/tsconfig.module.tsbuildinfo +0 -1
- package/tsdoc-metadata.json +0 -11
- package/types/index.d.ts +0 -11
- package/types/index.d.ts.map +0 -1
- package/types/index.js +0 -27
- package/types/index.js.map +0 -1
- package/types/ts/boolean-param.d.ts.map +0 -1
- package/types/ts/boolean-param.js +0 -44
- package/types/ts/boolean-param.js.map +0 -1
- package/types/ts/command-params.d.ts.map +0 -1
- package/types/ts/command-params.js +0 -158
- package/types/ts/command-params.js.map +0 -1
- package/types/ts/common.d.ts.map +0 -1
- package/types/ts/common.js +0 -3
- package/types/ts/common.js.map +0 -1
- package/types/ts/date-param.d.ts.map +0 -1
- package/types/ts/date-param.js +0 -37
- package/types/ts/date-param.js.map +0 -1
- package/types/ts/file-param.d.ts.map +0 -1
- package/types/ts/file-param.js +0 -42
- package/types/ts/file-param.js.map +0 -1
- package/types/ts/help-for-param.d.ts.map +0 -1
- package/types/ts/help-for-param.js +0 -33
- package/types/ts/help-for-param.js.map +0 -1
- package/types/ts/label-for-param.d.ts.map +0 -1
- package/types/ts/label-for-param.js +0 -17
- package/types/ts/label-for-param.js.map +0 -1
- package/types/ts/number-param.d.ts.map +0 -1
- package/types/ts/number-param.js +0 -56
- package/types/ts/number-param.js.map +0 -1
- package/types/ts/param-handler.d.ts.map +0 -1
- package/types/ts/param-handler.js +0 -27
- package/types/ts/param-handler.js.map +0 -1
- package/types/ts/string-param.d.ts.map +0 -1
- package/types/ts/string-param.js +0 -33
- package/types/ts/string-param.js.map +0 -1
- package/types/tsconfig.types.tsbuildinfo +0 -1
- /package/{types/ts/boolean-param.d.ts → boolean-param.d.ts} +0 -0
- /package/{types/ts/command-params.d.ts → command-params.d.ts} +0 -0
- /package/{types/ts/common.d.ts → common.d.ts} +0 -0
- /package/{types/ts/file-param.d.ts → file-param.d.ts} +0 -0
- /package/{types/ts/help-for-param.d.ts → help-for-param.d.ts} +0 -0
- /package/{types/ts/label-for-param.d.ts → label-for-param.d.ts} +0 -0
- /package/{types/ts/number-param.d.ts → number-param.d.ts} +0 -0
- /package/{types/ts/param-handler.d.ts → param-handler.d.ts} +0 -0
- /package/{types/ts/string-param.d.ts → string-param.d.ts} +0 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var boolean_param_exports = {};
|
|
21
|
+
__export(boolean_param_exports, {
|
|
22
|
+
FALSES: () => FALSES,
|
|
23
|
+
TRUES: () => TRUES,
|
|
24
|
+
booleanParamHandler: () => booleanParamHandler,
|
|
25
|
+
parseBooleanArg: () => parseBooleanArg
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(boolean_param_exports);
|
|
28
|
+
var import_label_for_param = require("./label-for-param.cjs");
|
|
29
|
+
const TRUES = Object.freeze(["t", "true", "1", "y", "yes"]);
|
|
30
|
+
const FALSES = Object.freeze(["f", "false", "0", "n", "no"]);
|
|
31
|
+
const parseBooleanArg = /* @__PURE__ */ __name((text, param) => {
|
|
32
|
+
const lower = text.toLocaleLowerCase();
|
|
33
|
+
const trueValues = param.trues ?? TRUES;
|
|
34
|
+
if (trueValues.includes(lower)) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
const falseValues = param.falses ?? FALSES;
|
|
38
|
+
if (falseValues.includes(lower)) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
throw new RangeError(`${(0, import_label_for_param.labelForParam)(param)}: invalid value`);
|
|
42
|
+
}, "parseBooleanArg");
|
|
43
|
+
const booleanParamHandler = {
|
|
44
|
+
matchesParam(param) {
|
|
45
|
+
return param.type === Boolean;
|
|
46
|
+
},
|
|
47
|
+
parseArg: parseBooleanArg,
|
|
48
|
+
placeholderForParam() {
|
|
49
|
+
return void 0;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=boolean-param.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/clamp/boolean-param.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,6BAA8B;AAMvB,MAAM,QAAQ,OAAO,OAAO,CAAE,KAAK,QAAQ,KAAK,KAAK,KAAM,CAAC;AAO5D,MAAM,SAAS,OAAO,OAAO,CAAE,KAAK,SAAS,KAAK,KAAK,IAAK,CAAC;AAqC7D,MAAM,kBAAkB,wBAAC,MAAc,UAAwC;AACrF,QAAM,QAAQ,KAAK,kBAAkB;AACrC,QAAM,aAAa,MAAM,SAAS;AAClC,MAAI,WAAW,SAAS,KAAK,GAAG;AAC/B,WAAO;AAAA,EACR;AACA,QAAM,cAAc,MAAM,UAAU;AACpC,MAAI,YAAY,SAAS,KAAK,GAAG;AAChC,WAAO;AAAA,EACR;AACA,QAAM,IAAI,WAAW,OAAI,sCAAc,KAAK,CAAE,iBAAiB;AAChE,GAX+B;AAgBxB,MAAM,sBAAkE;AAAA,EAC9E,aAAa,OAAwD;AACpE,WAAO,MAAM,SAAS;AAAA,EACvB;AAAA,EACA,UAAU;AAAA,EACV,sBAA0C;AACzC,WAAO;AAAA,EACR;AACD;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boolean-param.d.ts","sourceRoot":"","sources":["../../../src/packages/clamp/boolean-param.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAqB,MAAM,aAAa,CAAC;AAGrF;;;GAGG;AACH,eAAO,MAAM,KAAK,mBAAkD,CAAC;AAGrE;;;GAGG;AACH,eAAO,MAAM,MAAM,mBAAkD,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IAEpD;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC;IAC1E,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,OAAO,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,SAAU,MAAM,SAAS,mBAAmB,KAAG,OAW1E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAAY,CAAC,mBAAmB,EAAE,OAAO,CAQ1E,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { labelForParam } from "./label-for-param.mjs";
|
|
4
|
+
const TRUES = Object.freeze(["t", "true", "1", "y", "yes"]);
|
|
5
|
+
const FALSES = Object.freeze(["f", "false", "0", "n", "no"]);
|
|
6
|
+
const parseBooleanArg = /* @__PURE__ */ __name((text, param) => {
|
|
7
|
+
const lower = text.toLocaleLowerCase();
|
|
8
|
+
const trueValues = param.trues ?? TRUES;
|
|
9
|
+
if (trueValues.includes(lower)) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
const falseValues = param.falses ?? FALSES;
|
|
13
|
+
if (falseValues.includes(lower)) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
throw new RangeError(`${labelForParam(param)}: invalid value`);
|
|
17
|
+
}, "parseBooleanArg");
|
|
18
|
+
const booleanParamHandler = {
|
|
19
|
+
matchesParam(param) {
|
|
20
|
+
return param.type === Boolean;
|
|
21
|
+
},
|
|
22
|
+
parseArg: parseBooleanArg,
|
|
23
|
+
placeholderForParam() {
|
|
24
|
+
return void 0;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
export {
|
|
28
|
+
FALSES,
|
|
29
|
+
TRUES,
|
|
30
|
+
booleanParamHandler,
|
|
31
|
+
parseBooleanArg
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=boolean-param.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/clamp/boolean-param.ts"],
|
|
4
|
+
"mappings": ";;AACA,SAAS,qBAAqB;AAMvB,MAAM,QAAQ,OAAO,OAAO,CAAE,KAAK,QAAQ,KAAK,KAAK,KAAM,CAAC;AAO5D,MAAM,SAAS,OAAO,OAAO,CAAE,KAAK,SAAS,KAAK,KAAK,IAAK,CAAC;AAqC7D,MAAM,kBAAkB,wBAAC,MAAc,UAAwC;AACrF,QAAM,QAAQ,KAAK,kBAAkB;AACrC,QAAM,aAAa,MAAM,SAAS;AAClC,MAAI,WAAW,SAAS,KAAK,GAAG;AAC/B,WAAO;AAAA,EACR;AACA,QAAM,cAAc,MAAM,UAAU;AACpC,MAAI,YAAY,SAAS,KAAK,GAAG;AAChC,WAAO;AAAA,EACR;AACA,QAAM,IAAI,WAAW,GAAI,cAAc,KAAK,CAAE,iBAAiB;AAChE,GAX+B;AAgBxB,MAAM,sBAAkE;AAAA,EAC9E,aAAa,OAAwD;AACpE,WAAO,MAAM,SAAS;AAAA,EACvB;AAAA,EACA,UAAU;AAAA,EACV,sBAA0C;AACzC,WAAO;AAAA,EACR;AACD;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var command_params_exports = {};
|
|
21
|
+
__export(command_params_exports, {
|
|
22
|
+
commandParams: () => commandParams
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(command_params_exports);
|
|
25
|
+
var import_guard = require("@rickosborne/guard");
|
|
26
|
+
var import_boolean_param = require("./boolean-param.cjs");
|
|
27
|
+
var import_label_for_param = require("./label-for-param.cjs");
|
|
28
|
+
var import_param_handler = require("./param-handler.cjs");
|
|
29
|
+
const toReturnType = /* @__PURE__ */ __name((text, param) => {
|
|
30
|
+
const paramHandler = (0, import_param_handler.findParamHandler)(param);
|
|
31
|
+
const parser = param.parse ?? paramHandler.parseArg;
|
|
32
|
+
if (parser != null) {
|
|
33
|
+
return parser(text, param);
|
|
34
|
+
}
|
|
35
|
+
throw new Error(`Unhandled param type: ${String(param.type)}`);
|
|
36
|
+
}, "toReturnType");
|
|
37
|
+
const commandParams = /* @__PURE__ */ __name((spec, {
|
|
38
|
+
args = process.argv.slice(2),
|
|
39
|
+
ignoreUnknown,
|
|
40
|
+
onError
|
|
41
|
+
} = {}) => {
|
|
42
|
+
var _a, _b;
|
|
43
|
+
const result = {};
|
|
44
|
+
const positionals = Object.entries(spec).filter(([, s]) => s.positional === true).map(([key, s]) => ({ key, spec: s }));
|
|
45
|
+
if (positionals.length > 1) {
|
|
46
|
+
throw new Error(`Too many positionals: ${positionals.map(({ key }) => key).join(" ")}`);
|
|
47
|
+
}
|
|
48
|
+
const positional = positionals.shift();
|
|
49
|
+
let onlyPositionalsRemain = false;
|
|
50
|
+
try {
|
|
51
|
+
while (args.length > 0) {
|
|
52
|
+
const arg = args.shift();
|
|
53
|
+
let param;
|
|
54
|
+
let resultKey;
|
|
55
|
+
let typedValue;
|
|
56
|
+
if (arg === "--" && !onlyPositionalsRemain) {
|
|
57
|
+
onlyPositionalsRemain = true;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (onlyPositionalsRemain || !arg.startsWith("-")) {
|
|
61
|
+
if (positional == null) {
|
|
62
|
+
throw new Error(`Unexpected positional: ${JSON.stringify(arg)}`);
|
|
63
|
+
}
|
|
64
|
+
param = positional.spec;
|
|
65
|
+
resultKey = positional.key;
|
|
66
|
+
typedValue = toReturnType(arg, positional.spec);
|
|
67
|
+
} else {
|
|
68
|
+
let no = false;
|
|
69
|
+
let name;
|
|
70
|
+
if (arg.startsWith("--no-")) {
|
|
71
|
+
name = arg.substring(5);
|
|
72
|
+
no = true;
|
|
73
|
+
} else if (arg.startsWith("--")) {
|
|
74
|
+
name = arg.substring(2);
|
|
75
|
+
} else if (arg.startsWith("-no-")) {
|
|
76
|
+
name = arg.substring(4);
|
|
77
|
+
no = true;
|
|
78
|
+
} else {
|
|
79
|
+
name = arg.substring(1);
|
|
80
|
+
}
|
|
81
|
+
let suffix;
|
|
82
|
+
if (name.includes("=")) {
|
|
83
|
+
[name, suffix] = name.split("=", 2);
|
|
84
|
+
}
|
|
85
|
+
const specs = Object.entries(spec).filter(([n, s]) => {
|
|
86
|
+
var _a2;
|
|
87
|
+
return "name" in s && s.name === name || "names" in s && (((_a2 = s.names) == null ? void 0 : _a2.includes(name)) ?? false) || n === name;
|
|
88
|
+
});
|
|
89
|
+
if (specs.length < 1) {
|
|
90
|
+
if (ignoreUnknown) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
throw new Error(`Unexpected arg: ${JSON.stringify(name)}`);
|
|
94
|
+
}
|
|
95
|
+
if (specs.length > 1) {
|
|
96
|
+
throw new Error(`More than one matching spec: ${name}`);
|
|
97
|
+
}
|
|
98
|
+
[resultKey, param] = specs[0];
|
|
99
|
+
(0, import_guard.assertDefined)(param, `param: ${name}`);
|
|
100
|
+
let stringValue;
|
|
101
|
+
if (param.type === Boolean) {
|
|
102
|
+
if (no) {
|
|
103
|
+
if (suffix != null) {
|
|
104
|
+
throw new Error(`Combo of "no" plus "=" does not make any sense for ${(0, import_label_for_param.labelForParam)(param)}`);
|
|
105
|
+
}
|
|
106
|
+
stringValue = param.falseText ?? ((_a = param.falses) == null ? void 0 : _a[0]) ?? import_boolean_param.FALSES[0];
|
|
107
|
+
} else {
|
|
108
|
+
stringValue = suffix ?? param.trueText ?? ((_b = param.trues) == null ? void 0 : _b[0]) ?? import_boolean_param.TRUES[0];
|
|
109
|
+
}
|
|
110
|
+
} else if (no) {
|
|
111
|
+
throw new Error(`"no" does not make sense for ${(0, import_label_for_param.labelForParam)(param)}`);
|
|
112
|
+
} else {
|
|
113
|
+
stringValue = suffix ?? args.shift();
|
|
114
|
+
}
|
|
115
|
+
(0, import_guard.assertDefined)(stringValue, () => `value for ${(0, import_label_for_param.labelForParam)(param)}`);
|
|
116
|
+
typedValue = toReturnType(stringValue, param);
|
|
117
|
+
}
|
|
118
|
+
if (param == null || resultKey == null) {
|
|
119
|
+
if (ignoreUnknown) {
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
throw new Error(`Unexpected arg: ${JSON.stringify(arg)}`);
|
|
123
|
+
}
|
|
124
|
+
(0, import_guard.assertDefined)(typedValue, `typedValue for ${resultKey}`);
|
|
125
|
+
const existing = result[resultKey];
|
|
126
|
+
if (param.multiple === true) {
|
|
127
|
+
const values = existing ?? [];
|
|
128
|
+
if (!Array.isArray(values)) {
|
|
129
|
+
throw new Error(`Expected an array: ${resultKey}`);
|
|
130
|
+
}
|
|
131
|
+
result[resultKey] ??= values;
|
|
132
|
+
values.push(typedValue);
|
|
133
|
+
} else {
|
|
134
|
+
if (existing != null) {
|
|
135
|
+
throw new Error(`Too many ${(0, import_label_for_param.labelForParam)(param)}: ${JSON.stringify(existing)} ${JSON.stringify(arg)}`);
|
|
136
|
+
}
|
|
137
|
+
result[resultKey] = typedValue;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const requiredKeys = Object.entries(spec).filter(([, s]) => s.optional !== true).map(([key]) => key);
|
|
141
|
+
const missing = requiredKeys.filter((key) => !(key in result));
|
|
142
|
+
if (missing.length > 0) {
|
|
143
|
+
const message = missing.map((key) => spec[key]).map((p) => p == null ? "" : (0, import_label_for_param.labelForParam)(p)).join(" ");
|
|
144
|
+
throw new Error(`Missing required params: ${message}`);
|
|
145
|
+
}
|
|
146
|
+
} catch (err) {
|
|
147
|
+
const error = err instanceof Error ? err : new Error("Unknown error");
|
|
148
|
+
if (onError != null) {
|
|
149
|
+
onError(error);
|
|
150
|
+
return void 0;
|
|
151
|
+
} else {
|
|
152
|
+
console.error(error.message);
|
|
153
|
+
process.exit(1);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return result;
|
|
157
|
+
}, "commandParams");
|
|
158
|
+
//# sourceMappingURL=command-params.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/clamp/command-params.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAC9B,2BAAwD;AAIxD,6BAA8B;AAE9B,2BAAiC;AA0CjC,MAAM,eAAe,wBAAC,MAAc,UAAiC;AACpE,QAAM,mBAAe,uCAAiB,KAAK;AAC3C,QAAM,SAAU,MAAM,SAAS,aAAa;AAC5C,MAAI,UAAU,MAAM;AACnB,WAAO,OAAO,MAAM,KAAK;AAAA,EAC1B;AACA,QAAM,IAAI,MAAM,yBAA0B,OAAO,MAAM,IAAI,CAAE,EAAE;AAChE,GAPqB;AAad,MAAM,gBAAgB,wBAC5B,MACA;AAAA,EACC,OAAO,QAAQ,KAAK,MAAM,CAAC;AAAA,EAC3B;AAAA,EACA;AACD,IAII,CAAC,MAC0B;AAzEhC;AA0EC,QAAM,SAAS,CAAC;AAChB,QAAM,cAAc,OAAO,QAAQ,IAAI,EACrC,OAAO,CAAC,CAAE,EAAE,CAAE,MAAM,EAAE,eAAe,IAAI,EACzC,IAAI,CAAC,CAAE,KAAK,CAAE,OAAO,EAAE,KAAK,MAAM,EAAE,EAAE;AACxC,MAAI,YAAY,SAAS,GAAG;AAC3B,UAAM,IAAI,MAAM,yBAA0B,YAAY,IAAI,CAAC,EAAE,IAAI,MAAM,GAAG,EAAE,KAAK,GAAG,CAAE,EAAE;AAAA,EACzF;AACA,QAAM,aAAa,YAAY,MAAM;AACrC,MAAI,wBAAwB;AAC5B,MAAI;AACH,WAAO,KAAK,SAAS,GAAG;AACvB,YAAM,MAAM,KAAK,MAAM;AACvB,UAAI;AACJ,UAAI;AACJ,UAAI;AACJ,UAAI,QAAQ,QAAQ,CAAC,uBAAuB;AAC3C,gCAAwB;AACxB;AAAA,MACD;AACA,UAAI,yBAAyB,CAAC,IAAI,WAAW,GAAG,GAAG;AAClD,YAAI,cAAc,MAAM;AAEvB,gBAAM,IAAI,MAAM,0BAA2B,KAAK,UAAU,GAAG,CAAE,EAAE;AAAA,QAClE;AACA,gBAAQ,WAAW;AACnB,oBAAY,WAAW;AACvB,qBAAa,aAAa,KAAK,WAAW,IAAI;AAAA,MAC/C,OAAO;AACN,YAAI,KAAK;AACT,YAAI;AACJ,YAAI,IAAI,WAAW,OAAO,GAAG;AAC5B,iBAAO,IAAI,UAAU,CAAC;AACtB,eAAK;AAAA,QACN,WAAW,IAAI,WAAW,IAAI,GAAG;AAChC,iBAAO,IAAI,UAAU,CAAC;AAAA,QACvB,WAAW,IAAI,WAAW,MAAM,GAAG;AAClC,iBAAO,IAAI,UAAU,CAAC;AACtB,eAAK;AAAA,QACN,OAAO;AACN,iBAAO,IAAI,UAAU,CAAC;AAAA,QACvB;AACA,YAAI;AACJ,YAAI,KAAK,SAAS,GAAG,GAAG;AACvB,WAAE,MAAM,MAAO,IAAI,KAAK,MAAM,KAAK,CAAC;AAAA,QACrC;AACA,cAAM,QAAQ,OAAO,QAAQ,IAAI,EAC/B,OAAO,CAAC,CAAE,GAAG,CAAE,MAAG;AAxHxB,cAAAA;AAwH2B,2BAAU,KAAK,EAAE,SAAS,QAAS,WAAW,QAAMA,MAAA,EAAE,UAAF,gBAAAA,IAAS,SAAS,UAAS,UAAW,MAAM;AAAA,SAAI;AAC3H,YAAI,MAAM,SAAS,GAAG;AACrB,cAAI,eAAe;AAClB;AAAA,UACD;AAEA,gBAAM,IAAI,MAAM,mBAAoB,KAAK,UAAU,IAAI,CAAE,EAAE;AAAA,QAC5D;AACA,YAAI,MAAM,SAAS,GAAG;AAErB,gBAAM,IAAI,MAAM,gCAAiC,IAAK,EAAE;AAAA,QACzD;AACA,SAAE,WAAW,KAAM,IAAI,MAAO,CAAE;AAChC,wCAAc,OAAO,UAAW,IAAK,EAAE;AACvC,YAAI;AACJ,YAAI,MAAM,SAAS,SAAS;AAC3B,cAAI,IAAI;AACP,gBAAI,UAAU,MAAM;AAEnB,oBAAM,IAAI,MAAM,0DAAuD,sCAAc,KAAK,CAAE,EAAE;AAAA,YAC/F;AACA,0BAAc,MAAM,eAAa,WAAM,WAAN,mBAAgB,OAAO,4BAAQ,CAAE;AAAA,UACnE,OAAO;AACN,0BAAc,UAAU,MAAM,cAAY,WAAM,UAAN,mBAAe,OAAO,2BAAO,CAAE;AAAA,UAC1E;AAAA,QACD,WAAW,IAAI;AAEd,gBAAM,IAAI,MAAM,oCAAiC,sCAAc,KAAK,CAAE,EAAE;AAAA,QACzE,OAAO;AACN,wBAAc,UAAU,KAAK,MAAM;AAAA,QACpC;AACA,wCAAc,aAAa,MAAM,iBAAc,sCAAc,KAAM,CAAE,EAAE;AACvE,qBAAa,aAAa,aAAa,KAAK;AAAA,MAC7C;AACA,UAAI,SAAS,QAAQ,aAAa,MAAM;AACvC,YAAI,eAAe;AAClB;AAAA,QACD;AAEA,cAAM,IAAI,MAAM,mBAAoB,KAAK,UAAU,GAAG,CAAE,EAAE;AAAA,MAC3D;AACA,sCAAc,YAAY,kBAAmB,SAAU,EAAE;AACzD,YAAM,WAAW,OAAQ,SAAU;AACnC,UAAI,MAAM,aAAa,MAAM;AAC5B,cAAM,SAAS,YAAY,CAAC;AAC5B,YAAI,CAAC,MAAM,QAAQ,MAAM,GAAG;AAE3B,gBAAM,IAAI,MAAM,sBAAuB,SAAU,EAAE;AAAA,QACpD;AACA,eAAQ,SAAU,MAAM;AACxB,eAAO,KAAK,UAAU;AAAA,MACvB,OAAO;AACN,YAAI,YAAY,MAAM;AAErB,gBAAM,IAAI,MAAM,gBAAa,sCAAc,KAAK,CAAE,KAAM,KAAK,UAAU,QAAQ,CAAE,IAAK,KAAK,UAAU,GAAG,CAAE,EAAE;AAAA,QAC7G;AACA,eAAQ,SAAU,IAAI;AAAA,MACvB;AAAA,IACD;AACA,UAAM,eAAe,OAAO,QAAQ,IAAI,EACtC,OAAO,CAAC,CAAE,EAAE,CAAE,MAAM,EAAE,aAAa,IAAI,EACvC,IAAI,CAAC,CAAE,GAAI,MAAM,GAAG;AACtB,UAAM,UAAU,aAAa,OAAO,CAAC,QAAQ,EAAE,OAAO,OAAO;AAC7D,QAAI,QAAQ,SAAS,GAAG;AACvB,YAAM,UAAU,QACd,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,EACtB,IAAI,CAAC,MAAM,KAAK,OAAO,SAAK,sCAAc,CAAC,CAAC,EAAE,KAAK,GAAG;AAExD,YAAM,IAAI,MAAM,4BAA6B,OAAQ,EAAE;AAAA,IACxD;AAAA,EACD,SAAS,KAAc;AACtB,UAAM,QAAQ,eAAe,QAAQ,MAAM,IAAI,MAAM,eAAe;AACpE,QAAI,WAAW,MAAM;AACpB,cAAQ,KAAK;AACb,aAAO;AAAA,IACR,OAAO;AACN,cAAQ,MAAM,MAAM,OAAO;AAC3B,cAAQ,KAAK,CAAC;AAAA,IACf;AAAA,EACD;AACA,SAAO;AACR,GA3I6B;",
|
|
5
|
+
"names": ["_a"]
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-params.d.ts","sourceRoot":"","sources":["../../../src/packages/clamp/command-params.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAE/H;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,YAAY,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;AAE5G;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,KAAK,SAAS,YAAY,EAAE,MAAM,IAAI;IAAE,KAAK,CAAC,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAEtH;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,YAAY,IAAI,KAAK,SAAS,qBAAqB,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAC9I,KAAK,CAAC,MAAM,CAAC,SAAS,OAAO,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,GACnF,KAAK,CAAC,MAAM,CAAC,SAAS,OAAO,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAC7E,KAAK,CAAC,MAAM,CAAC,SAAS,OAAO,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACjF,KAAK,CAAC,MAAM,CAAC,SAAS,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,GAC3E,KAAK,CAAC,MAAM,CAAC,SAAS,OAAO,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACjF,SAAS,SAAS,KAAK,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAC7E,KAAK,CAAC;AAEf;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,MAAM,IAAI;KACvD,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;CAC3F,CAAA;AAWD;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,IAAI,SAAS,iBAAiB,QACrD,IAAI,sCAKP;IACF,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC,KACC,mBAAmB,CAAC,IAAI,CAgI1B,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { assertDefined } from "@rickosborne/guard";
|
|
4
|
+
import { FALSES, TRUES } from "./boolean-param.mjs";
|
|
5
|
+
import { labelForParam } from "./label-for-param.mjs";
|
|
6
|
+
import { findParamHandler } from "./param-handler.mjs";
|
|
7
|
+
const toReturnType = /* @__PURE__ */ __name((text, param) => {
|
|
8
|
+
const paramHandler = findParamHandler(param);
|
|
9
|
+
const parser = param.parse ?? paramHandler.parseArg;
|
|
10
|
+
if (parser != null) {
|
|
11
|
+
return parser(text, param);
|
|
12
|
+
}
|
|
13
|
+
throw new Error(`Unhandled param type: ${String(param.type)}`);
|
|
14
|
+
}, "toReturnType");
|
|
15
|
+
const commandParams = /* @__PURE__ */ __name((spec, {
|
|
16
|
+
args = process.argv.slice(2),
|
|
17
|
+
ignoreUnknown,
|
|
18
|
+
onError
|
|
19
|
+
} = {}) => {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
const result = {};
|
|
22
|
+
const positionals = Object.entries(spec).filter(([, s]) => s.positional === true).map(([key, s]) => ({ key, spec: s }));
|
|
23
|
+
if (positionals.length > 1) {
|
|
24
|
+
throw new Error(`Too many positionals: ${positionals.map(({ key }) => key).join(" ")}`);
|
|
25
|
+
}
|
|
26
|
+
const positional = positionals.shift();
|
|
27
|
+
let onlyPositionalsRemain = false;
|
|
28
|
+
try {
|
|
29
|
+
while (args.length > 0) {
|
|
30
|
+
const arg = args.shift();
|
|
31
|
+
let param;
|
|
32
|
+
let resultKey;
|
|
33
|
+
let typedValue;
|
|
34
|
+
if (arg === "--" && !onlyPositionalsRemain) {
|
|
35
|
+
onlyPositionalsRemain = true;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (onlyPositionalsRemain || !arg.startsWith("-")) {
|
|
39
|
+
if (positional == null) {
|
|
40
|
+
throw new Error(`Unexpected positional: ${JSON.stringify(arg)}`);
|
|
41
|
+
}
|
|
42
|
+
param = positional.spec;
|
|
43
|
+
resultKey = positional.key;
|
|
44
|
+
typedValue = toReturnType(arg, positional.spec);
|
|
45
|
+
} else {
|
|
46
|
+
let no = false;
|
|
47
|
+
let name;
|
|
48
|
+
if (arg.startsWith("--no-")) {
|
|
49
|
+
name = arg.substring(5);
|
|
50
|
+
no = true;
|
|
51
|
+
} else if (arg.startsWith("--")) {
|
|
52
|
+
name = arg.substring(2);
|
|
53
|
+
} else if (arg.startsWith("-no-")) {
|
|
54
|
+
name = arg.substring(4);
|
|
55
|
+
no = true;
|
|
56
|
+
} else {
|
|
57
|
+
name = arg.substring(1);
|
|
58
|
+
}
|
|
59
|
+
let suffix;
|
|
60
|
+
if (name.includes("=")) {
|
|
61
|
+
[name, suffix] = name.split("=", 2);
|
|
62
|
+
}
|
|
63
|
+
const specs = Object.entries(spec).filter(([n, s]) => {
|
|
64
|
+
var _a2;
|
|
65
|
+
return "name" in s && s.name === name || "names" in s && (((_a2 = s.names) == null ? void 0 : _a2.includes(name)) ?? false) || n === name;
|
|
66
|
+
});
|
|
67
|
+
if (specs.length < 1) {
|
|
68
|
+
if (ignoreUnknown) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
throw new Error(`Unexpected arg: ${JSON.stringify(name)}`);
|
|
72
|
+
}
|
|
73
|
+
if (specs.length > 1) {
|
|
74
|
+
throw new Error(`More than one matching spec: ${name}`);
|
|
75
|
+
}
|
|
76
|
+
[resultKey, param] = specs[0];
|
|
77
|
+
assertDefined(param, `param: ${name}`);
|
|
78
|
+
let stringValue;
|
|
79
|
+
if (param.type === Boolean) {
|
|
80
|
+
if (no) {
|
|
81
|
+
if (suffix != null) {
|
|
82
|
+
throw new Error(`Combo of "no" plus "=" does not make any sense for ${labelForParam(param)}`);
|
|
83
|
+
}
|
|
84
|
+
stringValue = param.falseText ?? ((_a = param.falses) == null ? void 0 : _a[0]) ?? FALSES[0];
|
|
85
|
+
} else {
|
|
86
|
+
stringValue = suffix ?? param.trueText ?? ((_b = param.trues) == null ? void 0 : _b[0]) ?? TRUES[0];
|
|
87
|
+
}
|
|
88
|
+
} else if (no) {
|
|
89
|
+
throw new Error(`"no" does not make sense for ${labelForParam(param)}`);
|
|
90
|
+
} else {
|
|
91
|
+
stringValue = suffix ?? args.shift();
|
|
92
|
+
}
|
|
93
|
+
assertDefined(stringValue, () => `value for ${labelForParam(param)}`);
|
|
94
|
+
typedValue = toReturnType(stringValue, param);
|
|
95
|
+
}
|
|
96
|
+
if (param == null || resultKey == null) {
|
|
97
|
+
if (ignoreUnknown) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
throw new Error(`Unexpected arg: ${JSON.stringify(arg)}`);
|
|
101
|
+
}
|
|
102
|
+
assertDefined(typedValue, `typedValue for ${resultKey}`);
|
|
103
|
+
const existing = result[resultKey];
|
|
104
|
+
if (param.multiple === true) {
|
|
105
|
+
const values = existing ?? [];
|
|
106
|
+
if (!Array.isArray(values)) {
|
|
107
|
+
throw new Error(`Expected an array: ${resultKey}`);
|
|
108
|
+
}
|
|
109
|
+
result[resultKey] ??= values;
|
|
110
|
+
values.push(typedValue);
|
|
111
|
+
} else {
|
|
112
|
+
if (existing != null) {
|
|
113
|
+
throw new Error(`Too many ${labelForParam(param)}: ${JSON.stringify(existing)} ${JSON.stringify(arg)}`);
|
|
114
|
+
}
|
|
115
|
+
result[resultKey] = typedValue;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const requiredKeys = Object.entries(spec).filter(([, s]) => s.optional !== true).map(([key]) => key);
|
|
119
|
+
const missing = requiredKeys.filter((key) => !(key in result));
|
|
120
|
+
if (missing.length > 0) {
|
|
121
|
+
const message = missing.map((key) => spec[key]).map((p) => p == null ? "" : labelForParam(p)).join(" ");
|
|
122
|
+
throw new Error(`Missing required params: ${message}`);
|
|
123
|
+
}
|
|
124
|
+
} catch (err) {
|
|
125
|
+
const error = err instanceof Error ? err : new Error("Unknown error");
|
|
126
|
+
if (onError != null) {
|
|
127
|
+
onError(error);
|
|
128
|
+
return void 0;
|
|
129
|
+
} else {
|
|
130
|
+
console.error(error.message);
|
|
131
|
+
process.exit(1);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return result;
|
|
135
|
+
}, "commandParams");
|
|
136
|
+
export {
|
|
137
|
+
commandParams
|
|
138
|
+
};
|
|
139
|
+
//# sourceMappingURL=command-params.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/clamp/command-params.ts"],
|
|
4
|
+
"mappings": ";;AAAA,SAAS,qBAAqB;AAC9B,SAAmC,QAAQ,aAAa;AAIxD,SAAS,qBAAqB;AAE9B,SAAS,wBAAwB;AA0CjC,MAAM,eAAe,wBAAC,MAAc,UAAiC;AACpE,QAAM,eAAe,iBAAiB,KAAK;AAC3C,QAAM,SAAU,MAAM,SAAS,aAAa;AAC5C,MAAI,UAAU,MAAM;AACnB,WAAO,OAAO,MAAM,KAAK;AAAA,EAC1B;AACA,QAAM,IAAI,MAAM,yBAA0B,OAAO,MAAM,IAAI,CAAE,EAAE;AAChE,GAPqB;AAad,MAAM,gBAAgB,wBAC5B,MACA;AAAA,EACC,OAAO,QAAQ,KAAK,MAAM,CAAC;AAAA,EAC3B;AAAA,EACA;AACD,IAII,CAAC,MAC0B;AAzEhC;AA0EC,QAAM,SAAS,CAAC;AAChB,QAAM,cAAc,OAAO,QAAQ,IAAI,EACrC,OAAO,CAAC,CAAE,EAAE,CAAE,MAAM,EAAE,eAAe,IAAI,EACzC,IAAI,CAAC,CAAE,KAAK,CAAE,OAAO,EAAE,KAAK,MAAM,EAAE,EAAE;AACxC,MAAI,YAAY,SAAS,GAAG;AAC3B,UAAM,IAAI,MAAM,yBAA0B,YAAY,IAAI,CAAC,EAAE,IAAI,MAAM,GAAG,EAAE,KAAK,GAAG,CAAE,EAAE;AAAA,EACzF;AACA,QAAM,aAAa,YAAY,MAAM;AACrC,MAAI,wBAAwB;AAC5B,MAAI;AACH,WAAO,KAAK,SAAS,GAAG;AACvB,YAAM,MAAM,KAAK,MAAM;AACvB,UAAI;AACJ,UAAI;AACJ,UAAI;AACJ,UAAI,QAAQ,QAAQ,CAAC,uBAAuB;AAC3C,gCAAwB;AACxB;AAAA,MACD;AACA,UAAI,yBAAyB,CAAC,IAAI,WAAW,GAAG,GAAG;AAClD,YAAI,cAAc,MAAM;AAEvB,gBAAM,IAAI,MAAM,0BAA2B,KAAK,UAAU,GAAG,CAAE,EAAE;AAAA,QAClE;AACA,gBAAQ,WAAW;AACnB,oBAAY,WAAW;AACvB,qBAAa,aAAa,KAAK,WAAW,IAAI;AAAA,MAC/C,OAAO;AACN,YAAI,KAAK;AACT,YAAI;AACJ,YAAI,IAAI,WAAW,OAAO,GAAG;AAC5B,iBAAO,IAAI,UAAU,CAAC;AACtB,eAAK;AAAA,QACN,WAAW,IAAI,WAAW,IAAI,GAAG;AAChC,iBAAO,IAAI,UAAU,CAAC;AAAA,QACvB,WAAW,IAAI,WAAW,MAAM,GAAG;AAClC,iBAAO,IAAI,UAAU,CAAC;AACtB,eAAK;AAAA,QACN,OAAO;AACN,iBAAO,IAAI,UAAU,CAAC;AAAA,QACvB;AACA,YAAI;AACJ,YAAI,KAAK,SAAS,GAAG,GAAG;AACvB,WAAE,MAAM,MAAO,IAAI,KAAK,MAAM,KAAK,CAAC;AAAA,QACrC;AACA,cAAM,QAAQ,OAAO,QAAQ,IAAI,EAC/B,OAAO,CAAC,CAAE,GAAG,CAAE,MAAG;AAxHxB,cAAAA;AAwH2B,2BAAU,KAAK,EAAE,SAAS,QAAS,WAAW,QAAMA,MAAA,EAAE,UAAF,gBAAAA,IAAS,SAAS,UAAS,UAAW,MAAM;AAAA,SAAI;AAC3H,YAAI,MAAM,SAAS,GAAG;AACrB,cAAI,eAAe;AAClB;AAAA,UACD;AAEA,gBAAM,IAAI,MAAM,mBAAoB,KAAK,UAAU,IAAI,CAAE,EAAE;AAAA,QAC5D;AACA,YAAI,MAAM,SAAS,GAAG;AAErB,gBAAM,IAAI,MAAM,gCAAiC,IAAK,EAAE;AAAA,QACzD;AACA,SAAE,WAAW,KAAM,IAAI,MAAO,CAAE;AAChC,sBAAc,OAAO,UAAW,IAAK,EAAE;AACvC,YAAI;AACJ,YAAI,MAAM,SAAS,SAAS;AAC3B,cAAI,IAAI;AACP,gBAAI,UAAU,MAAM;AAEnB,oBAAM,IAAI,MAAM,sDAAuD,cAAc,KAAK,CAAE,EAAE;AAAA,YAC/F;AACA,0BAAc,MAAM,eAAa,WAAM,WAAN,mBAAgB,OAAO,OAAQ,CAAE;AAAA,UACnE,OAAO;AACN,0BAAc,UAAU,MAAM,cAAY,WAAM,UAAN,mBAAe,OAAO,MAAO,CAAE;AAAA,UAC1E;AAAA,QACD,WAAW,IAAI;AAEd,gBAAM,IAAI,MAAM,gCAAiC,cAAc,KAAK,CAAE,EAAE;AAAA,QACzE,OAAO;AACN,wBAAc,UAAU,KAAK,MAAM;AAAA,QACpC;AACA,sBAAc,aAAa,MAAM,aAAc,cAAc,KAAM,CAAE,EAAE;AACvE,qBAAa,aAAa,aAAa,KAAK;AAAA,MAC7C;AACA,UAAI,SAAS,QAAQ,aAAa,MAAM;AACvC,YAAI,eAAe;AAClB;AAAA,QACD;AAEA,cAAM,IAAI,MAAM,mBAAoB,KAAK,UAAU,GAAG,CAAE,EAAE;AAAA,MAC3D;AACA,oBAAc,YAAY,kBAAmB,SAAU,EAAE;AACzD,YAAM,WAAW,OAAQ,SAAU;AACnC,UAAI,MAAM,aAAa,MAAM;AAC5B,cAAM,SAAS,YAAY,CAAC;AAC5B,YAAI,CAAC,MAAM,QAAQ,MAAM,GAAG;AAE3B,gBAAM,IAAI,MAAM,sBAAuB,SAAU,EAAE;AAAA,QACpD;AACA,eAAQ,SAAU,MAAM;AACxB,eAAO,KAAK,UAAU;AAAA,MACvB,OAAO;AACN,YAAI,YAAY,MAAM;AAErB,gBAAM,IAAI,MAAM,YAAa,cAAc,KAAK,CAAE,KAAM,KAAK,UAAU,QAAQ,CAAE,IAAK,KAAK,UAAU,GAAG,CAAE,EAAE;AAAA,QAC7G;AACA,eAAQ,SAAU,IAAI;AAAA,MACvB;AAAA,IACD;AACA,UAAM,eAAe,OAAO,QAAQ,IAAI,EACtC,OAAO,CAAC,CAAE,EAAE,CAAE,MAAM,EAAE,aAAa,IAAI,EACvC,IAAI,CAAC,CAAE,GAAI,MAAM,GAAG;AACtB,UAAM,UAAU,aAAa,OAAO,CAAC,QAAQ,EAAE,OAAO,OAAO;AAC7D,QAAI,QAAQ,SAAS,GAAG;AACvB,YAAM,UAAU,QACd,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,EACtB,IAAI,CAAC,MAAM,KAAK,OAAO,KAAK,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG;AAExD,YAAM,IAAI,MAAM,4BAA6B,OAAQ,EAAE;AAAA,IACxD;AAAA,EACD,SAAS,KAAc;AACtB,UAAM,QAAQ,eAAe,QAAQ,MAAM,IAAI,MAAM,eAAe;AACpE,QAAI,WAAW,MAAM;AACpB,cAAQ,KAAK;AACb,aAAO;AAAA,IACR,OAAO;AACN,cAAQ,MAAM,MAAM,OAAO;AAC3B,cAAQ,KAAK,CAAC;AAAA,IACf;AAAA,EACD;AACA,SAAO;AACR,GA3I6B;",
|
|
5
|
+
"names": ["_a"]
|
|
6
|
+
}
|
package/common.cjs
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var common_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(common_exports);
|
|
17
|
+
//# sourceMappingURL=common.cjs.map
|
package/common.cjs.map
ADDED
package/common.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/packages/clamp/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,KAAK,aAAa,GAAG;IACpB,QAAQ,EAAE,IAAI,CAAC;CACf,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,aAAa,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAE7E;;GAEG;AACH,KAAK,aAAa,GAAG;IACpB,QAAQ,EAAE,IAAI,CAAC;CACf,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,aAAa,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAEjE,KAAK,qBAAqB,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,KAAK,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACpC,UAAU,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC;AAExJ;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAGtE;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,IAAI;IAC1D,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,GAAG,KAAK,IAAI,CAAC,CAAC;IAC/D,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IAChD,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;CAC9D,CAAA"}
|
package/common.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=common.mjs.map
|
package/common.mjs.map
ADDED
package/date-param.cjs
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var date_param_exports = {};
|
|
21
|
+
__export(date_param_exports, {
|
|
22
|
+
dateParamHandler: () => dateParamHandler,
|
|
23
|
+
isDateParam: () => isDateParam,
|
|
24
|
+
parseDateArg: () => parseDateArg
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(date_param_exports);
|
|
27
|
+
var import_foundation = require("@rickosborne/foundation");
|
|
28
|
+
var import_label_for_param = require("./label-for-param.cjs");
|
|
29
|
+
const parseDateArg = /* @__PURE__ */ __name((text, param) => {
|
|
30
|
+
const date = (0, import_foundation.parseLocalDate)(text, param);
|
|
31
|
+
if (param.minimum != null && date < param.minimum) {
|
|
32
|
+
throw new RangeError(`${(0, import_label_for_param.labelForParam)(param)}: minimum=${param.minimum.toISOString()}`);
|
|
33
|
+
}
|
|
34
|
+
if (param.maximum != null && date > param.maximum) {
|
|
35
|
+
throw new RangeError(`${(0, import_label_for_param.labelForParam)(param)}: maximum=${param.maximum.toISOString()}`);
|
|
36
|
+
}
|
|
37
|
+
return date;
|
|
38
|
+
}, "parseDateArg");
|
|
39
|
+
const isDateParam = /* @__PURE__ */ __name((param) => {
|
|
40
|
+
return param.type === Date;
|
|
41
|
+
}, "isDateParam");
|
|
42
|
+
const dateParamHandler = {
|
|
43
|
+
matchesParam: isDateParam,
|
|
44
|
+
parseArg: parseDateArg,
|
|
45
|
+
placeholderForParam(param) {
|
|
46
|
+
return param.placeholder ?? param.time ? "(datetime)" : "(date)";
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=date-param.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/clamp/date-param.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,wBAA+B;AAE/B,6BAA8B;AAyBvB,MAAM,eAAe,wBAAC,MAAc,UAAkC;AAC5E,QAAM,WAAO,kCAAe,MAAM,KAAK;AACvC,MAAI,MAAM,WAAW,QAAQ,OAAO,MAAM,SAAS;AAClD,UAAM,IAAI,WAAW,OAAI,sCAAc,KAAK,CAAE,aAAc,MAAM,QAAQ,YAAY,CAAE,EAAE;AAAA,EAC3F;AACA,MAAI,MAAM,WAAW,QAAQ,OAAO,MAAM,SAAS;AAClD,UAAM,IAAI,WAAW,OAAI,sCAAc,KAAK,CAAE,aAAc,MAAM,QAAQ,YAAY,CAAE,EAAE;AAAA,EAC3F;AACA,SAAO;AACR,GAT4B;AAcrB,MAAM,cAAc,wBAAC,UAAwD;AACnF,SAAO,MAAM,SAAS;AACvB,GAF2B;AAOpB,MAAM,mBAAyD;AAAA,EACrE,cAAc;AAAA,EACd,UAAU;AAAA,EACV,oBAAoB,OAA6C;AAChE,WAAO,MAAM,eAAe,MAAM,OAAO,eAAe;AAAA,EACzD;AACD;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ParseLocalDateConfig } from "@rickosborne/foundation";
|
|
2
2
|
import type { CommandParamBase, ParamHandler, TypedCommandParam } from "./common.js";
|
|
3
3
|
/**
|
|
4
4
|
* Command-line parameter which can accept a date (and optionally time) value.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-param.d.ts","sourceRoot":"","sources":["../../../src/packages/clamp/date-param.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG;IACxE;;OAEG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACpE,IAAI,EAAE,OAAO,IAAI,CAAC;CAClB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,SAAS,gBAAgB,KAAG,IASpE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,UAAW,iBAAiB,KAAG,KAAK,IAAI,gBAE/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAMjE,CAAC"}
|
package/date-param.mjs
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { parseLocalDate } from "@rickosborne/foundation";
|
|
4
|
+
import { labelForParam } from "./label-for-param.mjs";
|
|
5
|
+
const parseDateArg = /* @__PURE__ */ __name((text, param) => {
|
|
6
|
+
const date = parseLocalDate(text, param);
|
|
7
|
+
if (param.minimum != null && date < param.minimum) {
|
|
8
|
+
throw new RangeError(`${labelForParam(param)}: minimum=${param.minimum.toISOString()}`);
|
|
9
|
+
}
|
|
10
|
+
if (param.maximum != null && date > param.maximum) {
|
|
11
|
+
throw new RangeError(`${labelForParam(param)}: maximum=${param.maximum.toISOString()}`);
|
|
12
|
+
}
|
|
13
|
+
return date;
|
|
14
|
+
}, "parseDateArg");
|
|
15
|
+
const isDateParam = /* @__PURE__ */ __name((param) => {
|
|
16
|
+
return param.type === Date;
|
|
17
|
+
}, "isDateParam");
|
|
18
|
+
const dateParamHandler = {
|
|
19
|
+
matchesParam: isDateParam,
|
|
20
|
+
parseArg: parseDateArg,
|
|
21
|
+
placeholderForParam(param) {
|
|
22
|
+
return param.placeholder ?? param.time ? "(datetime)" : "(date)";
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
export {
|
|
26
|
+
dateParamHandler,
|
|
27
|
+
isDateParam,
|
|
28
|
+
parseDateArg
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=date-param.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/packages/clamp/date-param.ts"],
|
|
4
|
+
"mappings": ";;AACA,SAAS,sBAAsB;AAE/B,SAAS,qBAAqB;AAyBvB,MAAM,eAAe,wBAAC,MAAc,UAAkC;AAC5E,QAAM,OAAO,eAAe,MAAM,KAAK;AACvC,MAAI,MAAM,WAAW,QAAQ,OAAO,MAAM,SAAS;AAClD,UAAM,IAAI,WAAW,GAAI,cAAc,KAAK,CAAE,aAAc,MAAM,QAAQ,YAAY,CAAE,EAAE;AAAA,EAC3F;AACA,MAAI,MAAM,WAAW,QAAQ,OAAO,MAAM,SAAS;AAClD,UAAM,IAAI,WAAW,GAAI,cAAc,KAAK,CAAE,aAAc,MAAM,QAAQ,YAAY,CAAE,EAAE;AAAA,EAC3F;AACA,SAAO;AACR,GAT4B;AAcrB,MAAM,cAAc,wBAAC,UAAwD;AACnF,SAAO,MAAM,SAAS;AACvB,GAF2B;AAOpB,MAAM,mBAAyD;AAAA,EACrE,cAAc;AAAA,EACd,UAAU;AAAA,EACV,oBAAoB,OAA6C;AAChE,WAAO,MAAM,eAAe,MAAM,OAAO,eAAe;AAAA,EACzD;AACD;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/file-param.cjs
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
var file_param_exports = {};
|
|
31
|
+
__export(file_param_exports, {
|
|
32
|
+
fileParamHandler: () => fileParamHandler,
|
|
33
|
+
isFileParam: () => isFileParam,
|
|
34
|
+
parseFileArg: () => parseFileArg
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(file_param_exports);
|
|
37
|
+
var import_term = require("@rickosborne/term");
|
|
38
|
+
var path = __toESM(require("node:path"));
|
|
39
|
+
const parseFileArg = /* @__PURE__ */ __name((text, param) => {
|
|
40
|
+
let filePath = text;
|
|
41
|
+
if (param.path != null && !filePath.startsWith(param.path)) {
|
|
42
|
+
filePath = path.join(param.path, filePath);
|
|
43
|
+
}
|
|
44
|
+
const stats = (0, import_term.statsForFile)(filePath);
|
|
45
|
+
const exists = stats != null;
|
|
46
|
+
if (param.existing !== void 0) {
|
|
47
|
+
if (exists !== param.existing) {
|
|
48
|
+
throw new Error(`File ${exists ? "exists" : "does not exist"}: ${filePath}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return { filePath, stats };
|
|
52
|
+
}, "parseFileArg");
|
|
53
|
+
const isFileParam = /* @__PURE__ */ __name((param) => {
|
|
54
|
+
return param.type === "file";
|
|
55
|
+
}, "isFileParam");
|
|
56
|
+
const fileParamHandler = {
|
|
57
|
+
matchesParam: isFileParam,
|
|
58
|
+
parseArg: parseFileArg,
|
|
59
|
+
placeholderForParam(param) {
|
|
60
|
+
return param.placeholder ?? "(path)";
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=file-param.cjs.map
|