@jondotsoy/flags
Version:
A Javascript arguments processor
70 lines • 6.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FlagBuilder = void 0;
const Builder_js_1 = require("./Builder.js");
const Spec_js_1 = require("./Spec.js");
const flagMatchRefine_js_1 = require("./refiners/flagMatchRefine.js");
const StringFlagBuilder_js_1 = require("./StringFlagBuilder.js");
const stringFlagRefine_js_1 = require("./refiners/stringFlagRefine.js");
const NumberFlagBuilder_js_1 = require("./NumberFlagBuilder.js");
const numberFlagRefine_js_1 = require("./refiners/numberFlagRefine.js");
const KeyValueFlagBuilder_js_1 = require("./KeyValueFlagBuilder.js");
const keyValueFlagRefine_js_1 = require("./refiners/keyValueFlagRefine.js");
const keyValueAccumulate_js_1 = require("./accumulates/keyValueAccumulate.js");
const BooleanFlagBuilder_js_1 = require("./BooleanFlagBuilder.js");
const booleanFlagRefine_js_1 = require("./refiners/booleanFlagRefine.js");
const StringsFlagBuilder_js_1 = require("./StringsFlagBuilder.js");
const stringsFlagRefine_js_1 = require("./refiners/stringsFlagRefine.js");
const stringsAccumulate_js_1 = require("./accumulates/stringsAccumulate.js");
const restArgsRefine_js_1 = require("./refiners/restArgsRefine.js");
const RestArgsFlagBuilder_js_1 = require("./RestArgsFlagBuilder.js");
class FlagBuilder extends Builder_js_1.Builder {
initial(initial) {
return new FlagBuilder(this.spec.initial(initial));
}
accumulate(accumulate) {
return new FlagBuilder(this.spec.accumulate(accumulate));
}
refine(refine) {
return new FlagBuilder(this.spec.refine(refine));
}
metadata(values) {
return new FlagBuilder(this.spec.metadata(values));
}
describe(description) {
return this.metadata({ description });
}
required() {
return this.metadata({ required: true });
}
string() {
return new StringFlagBuilder_js_1.StringFlagBuilder(this.spec.initial(null).refine(stringFlagRefine_js_1.stringFlagRefine));
}
strings() {
const specWithRefine = this.spec
.initial([])
.refine(stringsFlagRefine_js_1.stringsFlagRefine);
return new StringsFlagBuilder_js_1.StringsFlagBuilder(specWithRefine.accumulate(stringsAccumulate_js_1.stringsAccumulate));
}
number() {
return new NumberFlagBuilder_js_1.NumberFlagBuilder(this.spec.initial(null).refine(numberFlagRefine_js_1.numberFlagRefine));
}
boolean() {
return new BooleanFlagBuilder_js_1.BooleanFlagBuilder(this.spec.initial(false).refine(booleanFlagRefine_js_1.booleanFlagRefine));
}
keyValue() {
return new KeyValueFlagBuilder_js_1.KeyValueFlagBuilder(this.spec
.refine(keyValueFlagRefine_js_1.keyValueFlagRefine)
.initial(null)
.accumulate(keyValueAccumulate_js_1.keyValueAccumulate));
}
restArgs() {
return new RestArgsFlagBuilder_js_1.RestArgsFlagBuilder(this.spec.initial(null).refine(restArgsRefine_js_1.restArgsRefine));
}
static create(...aliases) {
const spec = Spec_js_1.Spec.create().metadata({ matches: aliases });
return new FlagBuilder(spec.refine(flagMatchRefine_js_1.flagMatchRefine));
}
}
exports.FlagBuilder = FlagBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxhZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbGRlcnMvRmxhZ0J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVDO0FBQ3ZDLHVDQUltQjtBQUduQixzRUFBZ0U7QUFDaEUsaUVBQTJEO0FBQzNELHdFQUFrRTtBQUNsRSxpRUFBMkQ7QUFDM0Qsd0VBQWtFO0FBQ2xFLHFFQUErRDtBQUMvRCw0RUFBc0U7QUFDdEUsK0VBQXlFO0FBQ3pFLG1FQUE2RDtBQUM3RCwwRUFBb0U7QUFDcEUsbUVBQTZEO0FBQzdELDBFQUFvRTtBQUNwRSw2RUFBdUU7QUFDdkUsb0VBQThEO0FBQzlELHFFQUErRDtBQUUvRCxNQUFhLFdBQXNDLFNBQVEsb0JBQVU7SUFDbkUsT0FBTyxDQUFJLE9BQVU7UUFDbkIsT0FBTyxJQUFJLFdBQVcsQ0FDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUErQixDQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxVQUFzQjtRQUMvQixPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBTSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELE1BQU0sQ0FBSSxNQUFjO1FBQ3RCLE9BQU8sSUFBSSxXQUFXLENBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBOEIsQ0FDdEQsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBMkI7UUFDbEMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxRQUFRLENBQUMsV0FBbUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLHdDQUFpQixDQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBZ0IsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFTLHNDQUFnQixDQUFDLENBQ3hFLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJO2FBQzdCLE9BQU8sQ0FBVyxFQUFFLENBQUM7YUFDckIsTUFBTSxDQUFXLHdDQUFpQixDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLDBDQUFrQixDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsd0NBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLHdDQUFpQixDQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBZ0IsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFTLHNDQUFnQixDQUFDLENBQ3hFLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSwwQ0FBa0IsQ0FDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFVLHdDQUFpQixDQUFDLENBQzVELENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSw0Q0FBbUIsQ0FDNUIsSUFBSSxDQUFDLElBQUk7YUFDTixNQUFNLENBQXlCLDBDQUFrQixDQUFDO2FBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUM7YUFDYixVQUFVLENBQUMsMENBQWtCLENBQUMsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLDRDQUFtQixDQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBTyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQVcsa0NBQWMsQ0FBQyxDQUMvRCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFpQjtRQUNoQyxNQUFNLElBQUksR0FBRyxjQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDMUQsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG9DQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDRjtBQXpFRCxrQ0F5RUMifQ==