decline-ts
Version:
Composable command-line parser for TypeScript - a (partial) porting of Scala decline using fp-ts
24 lines (23 loc) • 1.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.regular = 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 = 'Regular';
const of = (names, values = []) => ({
_tag: exports.URI,
names,
values,
});
exports.of = of;
exports.regular = {
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.matchOption(v => exports.of(fa.names, fp_ts_1.readonlyArray.cons(v, fa.values))))
: fp_ts_1.option.none,
parseSub: () => () => fp_ts_1.option.none,
result: fa => function_1.pipe(fa.values, fp_ts_1.readonlyArray.reverse, fp_ts_1.readonlyNonEmptyArray.fromReadonlyArray, fp_ts_1.option.map(Result_1.Result.success), fp_ts_1.option.getOrElse(() => Result_1.Result.fail)),
};