@jondotsoy/flags
Version:
A Javascript arguments processor
63 lines • 5.15 kB
JavaScript
;
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