UNPKG

1.11 kBJavaScriptView Raw
1"use strict";
2// tslint:disable interface-over-type-literal
3Object.defineProperty(exports, "__esModule", { value: true });
4exports.defaultFlags = exports.string = exports.option = exports.integer = exports.boolean = exports.build = void 0;
5function build(defaults) {
6 return (options = {}) => {
7 return Object.assign(Object.assign(Object.assign({ parse: (i, _) => i }, defaults), options), { input: [], multiple: Boolean(options.multiple), type: 'option' });
8 };
9}
10exports.build = build;
11function boolean(options = {}) {
12 return Object.assign(Object.assign({ parse: (b, _) => b }, options), { allowNo: Boolean(options.allowNo), type: 'boolean' });
13}
14exports.boolean = boolean;
15exports.integer = build({
16 parse: input => {
17 if (!/^-?\d+$/.test(input))
18 throw new Error(`Expected an integer but received: ${input}`);
19 return parseInt(input, 10);
20 },
21});
22function option(options) {
23 return build(options)();
24}
25exports.option = option;
26const stringFlag = build({});
27exports.string = stringFlag;
28exports.defaultFlags = {
29 color: boolean({ allowNo: true }),
30};