decline-ts
Version:
Composable command-line parser for TypeScript - a (partial) porting of Scala decline using fp-ts
19 lines (18 loc) • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validate = exports.of = exports.URI = void 0;
const fp_ts_1 = require("fp-ts");
const function_1 = require("fp-ts/function");
const Result_1 = require("../../Result");
const index_1 = require("../index");
const Match_1 = require("../Match");
exports.URI = 'Validate';
const of = (a, f) => ({ _tag: exports.URI, a, f });
exports.of = of;
exports.validate = {
URI: exports.URI,
parseOption: name => fa => function_1.pipe(fa.a, index_1.Accumulator.parseOption(name), fp_ts_1.option.map(Match_1.Match.map(a => exports.of(a, fa.f)))),
parseArg: arg => fa => function_1.pipe(fa.a, index_1.Accumulator.parseArg(arg), fp_ts_1.readonlyNonEmptyArray.map(fp_ts_1.either.bimap(index_1.Accumulator.mapValidated(fa.f), index_1.Accumulator.mapValidated(fa.f)))),
parseSub: command => fa => function_1.pipe(fa.a, index_1.Accumulator.parseSub(command), fp_ts_1.option.map(l => function_1.flow(l, fp_ts_1.either.map(Result_1.Result.mapValidated(fa.f))))),
result: fa => function_1.pipe(fa.a, index_1.Accumulator.result, Result_1.Result.mapValidated(fa.f)),
};