UNPKG

@jondotsoy/flags

Version:

A Javascript arguments processor

63 lines 5.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ArgumentBuilder = void 0; const Builder_js_1 = require("./Builder.js"); const Spec_js_1 = require("./Spec.js"); const StringsArgumentBuilder_js_1 = require("./StringsArgumentBuilder.js"); const toListRefine_js_1 = require("./refiners/toListRefine.js"); const listAccumulate_js_1 = require("./accumulates/listAccumulate.js"); const NumberArgumentBuilder_js_1 = require("./NumberArgumentBuilder.js"); const toNumberRefine_js_1 = require("./refiners/toNumberRefine.js"); const transformRefine_js_1 = require("./refiners/transformRefine.js"); const regexMatchRefine_js_1 = require("./refiners/regexMatchRefine.js"); const RestArgsArgumentBuilder_js_1 = require("./RestArgsArgumentBuilder.js"); const restArgsRefine_js_1 = require("./refiners/restArgsRefine.js"); class ArgumentBuilder extends Builder_js_1.Builder { initial(initial) { return new ArgumentBuilder(this.spec.initial(initial)); } accumulate(accumulate) { return new ArgumentBuilder(this.spec.accumulate(accumulate)); } refine(refine) { return new ArgumentBuilder(this.spec.refine(refine)); } metadata(values) { return new ArgumentBuilder(this.spec.metadata(values)); } describe(description) { return this.metadata({ description }); } required() { return this.metadata({ required: true }); } string() { return this; } strings() { return new StringsArgumentBuilder_js_1.StringsArgumentBuilder(this.spec.refine(toListRefine_js_1.toListRefine).accumulate(listAccumulate_js_1.listAccumulate)); } number() { return new NumberArgumentBuilder_js_1.NumberArgumentBuilder(this.spec.initial(null).refine(toNumberRefine_js_1.toNumberRefine)); } transform(transform) { return new ArgumentBuilder(this.spec.refine((0, transformRefine_js_1.transformRefine)(transform))); } match(regex) { return new ArgumentBuilder(this.spec.refine((0, regexMatchRefine_js_1.regexMatchRefine)(regex))); } restArgs() { return new RestArgsArgumentBuilder_js_1.RestArgsArgumentBuilder(this.spec.initial(null).refine(restArgsRefine_js_1.restArgsRefine)); } static create() { return new ArgumentBuilder(Spec_js_1.Spec.create().refine((arg, index, args) => { return { args: args.slice(0, index + 1), index: index, value: arg, }; })); } } exports.ArgumentBuilder = ArgumentBuilder; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJndW1lbnRCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1aWxkZXJzL0FyZ3VtZW50QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBdUM7QUFDdkMsdUNBQWlDO0FBR2pDLDJFQUFxRTtBQUNyRSxnRUFBMEQ7QUFDMUQsdUVBQWlFO0FBQ2pFLHlFQUFtRTtBQUNuRSxvRUFBOEQ7QUFDOUQsc0VBQWdFO0FBT2hFLHdFQUFrRTtBQUNsRSw2RUFBdUU7QUFDdkUsb0VBQThEO0FBRTlELE1BQWEsZUFBMEMsU0FBUSxvQkFBVTtJQUN2RSxPQUFPLENBQUksT0FBVTtRQUNuQixPQUFPLElBQUksZUFBZSxDQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQStCLENBQ3pELENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFDLFVBQXNCO1FBQy9CLE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFNLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsTUFBTSxDQUFJLE1BQWM7UUFDdEIsT0FBTyxJQUFJLGVBQWUsQ0FDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUE4QixDQUN0RCxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUEyQjtRQUNsQyxPQUFPLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFFBQVEsQ0FBQyxXQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLGtEQUFzQixDQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyw4QkFBWSxDQUFDLENBQUMsVUFBVSxDQUFDLGtDQUFjLENBQUMsQ0FDMUQsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLGdEQUFxQixDQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQVMsa0NBQWMsQ0FBQyxDQUN2RCxDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBSSxTQUEyQztRQUN0RCxPQUFPLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFJLElBQUEsb0NBQWUsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFhO1FBQ2pCLE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBQSxzQ0FBZ0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksb0RBQXVCLENBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBVyxrQ0FBYyxDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU07UUFDWCxPQUFPLElBQUksZUFBZSxDQUN4QixjQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFTLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNoRCxPQUFPO2dCQUNMLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUM5QixLQUFLLEVBQUUsS0FBSztnQkFDWixLQUFLLEVBQUUsR0FBRzthQUNYLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBdEVELDBDQXNFQyJ9