@jondotsoy/flags
Version:
A Javascript arguments processor
45 lines • 3.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.KeyValueFlagBuilder = void 0;
const Builder_js_1 = require("./Builder.js");
const Spec_js_1 = require("./Spec.js");
const transformRefine_js_1 = require("./refiners/transformRefine.js");
const flagMatchRefine_js_1 = require("./refiners/flagMatchRefine.js");
const keyValueFlagRefine_js_1 = require("./refiners/keyValueFlagRefine.js");
const keyValueAccumulate_js_1 = require("./accumulates/keyValueAccumulate.js");
class KeyValueFlagBuilder extends Builder_js_1.Builder {
initial(initial) {
return new KeyValueFlagBuilder(this.spec.initial(initial));
}
accumulate(accumulate) {
return new KeyValueFlagBuilder(this.spec.accumulate(accumulate));
}
refine(refine) {
return new KeyValueFlagBuilder(this.spec.refine(refine));
}
metadata(values) {
return new KeyValueFlagBuilder(this.spec.metadata(values));
}
describe(description) {
return this.metadata({ description });
}
required() {
return this.metadata({ required: true });
}
delimiter(delimiter) {
// Get the matches from metadata
const matches = this.spec.hasMetadata("matches")
? this.spec.getMetadata("matches")
: [];
// Re-create the builder with new delimiter
const newSpec = Spec_js_1.Spec.create().metadata({ delimiter, matches });
const specWithFlag = newSpec.refine(flagMatchRefine_js_1.flagMatchRefine);
const specWithKeyValue = specWithFlag.refine(keyValueFlagRefine_js_1.keyValueFlagRefine);
return new KeyValueFlagBuilder(specWithKeyValue.accumulate(keyValueAccumulate_js_1.keyValueAccumulate));
}
transform(transform) {
return new KeyValueFlagBuilder(this.spec.refine((0, transformRefine_js_1.transformRefine)(transform)));
}
}
exports.KeyValueFlagBuilder = KeyValueFlagBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5VmFsdWVGbGFnQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWlsZGVycy9LZXlWYWx1ZUZsYWdCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF1QztBQUN2Qyx1Q0FLbUI7QUFHbkIsc0VBQWdFO0FBQ2hFLHNFQUFnRTtBQUNoRSw0RUFBc0U7QUFDdEUsK0VBQXlFO0FBRXpFLE1BQWEsbUJBQThDLFNBQVEsb0JBQVU7SUFDM0UsT0FBTyxDQUFJLE9BQVU7UUFDbkIsT0FBTyxJQUFJLG1CQUFtQixDQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQStCLENBQ3pELENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFDLFVBQXNCO1FBQy9CLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQU0sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxNQUFNLENBQUksTUFBYztRQUN0QixPQUFPLElBQUksbUJBQW1CLENBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBOEIsQ0FDdEQsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBMkI7UUFDbEMsT0FBTyxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBTSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxXQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFpQjtRQUN6QixnQ0FBZ0M7UUFDaEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQzlDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBVyxTQUFTLENBQUM7WUFDNUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLDJDQUEyQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxjQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxvQ0FBZSxDQUFDLENBQUM7UUFDckQsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLDBDQUFrQixDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLG1CQUFtQixDQUM1QixnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsMENBQWtCLENBQUMsQ0FDaEQsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLENBQUksU0FBa0Q7UUFDN0QsT0FBTyxJQUFJLG1CQUFtQixDQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBSSxJQUFBLG9DQUFlLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FDaEQsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWpERCxrREFpREMifQ==