UNPKG

decline-ts

Version:

Composable command-line parser for TypeScript - a (partial) porting of Scala decline using fp-ts

24 lines (23 loc) 990 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.flag = exports.of = exports.URI = void 0; const fp_ts_1 = require("fp-ts"); const function_1 = require("fp-ts/function"); const Opts_1 = require("../../Opts"); const Result_1 = require("../../Result"); const Match_1 = require("../Match"); exports.URI = 'Flag'; const of = (names, values = 0) => ({ _tag: exports.URI, names, values, }); exports.of = of; exports.flag = { URI: exports.URI, parseOption: name => fa => fp_ts_1.readonlyArray.elem(Opts_1.Opts.Name.eq)(name, fa.names) ? fp_ts_1.option.some(Match_1.Match.matchFlag(exports.of(fa.names, fa.values + 1))) : fp_ts_1.option.none, parseSub: () => () => fp_ts_1.option.none, result: fa => function_1.pipe(fp_ts_1.readonlyArray.replicate(fa.values, undefined), fp_ts_1.readonlyNonEmptyArray.fromReadonlyArray, fp_ts_1.option.fold(() => Result_1.Result.missingFlag(fa.names[0]), Result_1.Result.success)), };