UNPKG

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