UNPKG

@jondotsoy/flags

Version:

A Javascript arguments processor

41 lines 3.88 kB
import { Builder } from "./Builder.js"; import { Spec, } from "./Spec.js"; import { transformRefine } from "./refiners/transformRefine.js"; import { flagMatchRefine } from "./refiners/flagMatchRefine.js"; import { keyValueFlagRefine } from "./refiners/keyValueFlagRefine.js"; import { keyValueAccumulate } from "./accumulates/keyValueAccumulate.js"; export class KeyValueFlagBuilder extends 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.create().metadata({ delimiter, matches }); const specWithFlag = newSpec.refine(flagMatchRefine); const specWithKeyValue = specWithFlag.refine(keyValueFlagRefine); return new KeyValueFlagBuilder(specWithKeyValue.accumulate(keyValueAccumulate)); } transform(transform) { return new KeyValueFlagBuilder(this.spec.refine(transformRefine(transform))); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5VmFsdWVGbGFnQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWlsZGVycy9LZXlWYWx1ZUZsYWdCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUNMLElBQUksR0FJTCxNQUFNLFdBQVcsQ0FBQztBQUduQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpFLE1BQU0sT0FBTyxtQkFBOEMsU0FBUSxPQUFVO0lBQzNFLE9BQU8sQ0FBSSxPQUFVO1FBQ25CLE9BQU8sSUFBSSxtQkFBbUIsQ0FDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUErQixDQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxVQUFzQjtRQUMvQixPQUFPLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFNLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsTUFBTSxDQUFJLE1BQWM7UUFDdEIsT0FBTyxJQUFJLG1CQUFtQixDQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQThCLENBQ3RELENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQTJCO1FBQ2xDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQU0sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxRQUFRLENBQUMsV0FBbUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxTQUFTLENBQUMsU0FBaUI7UUFDekIsZ0NBQWdDO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztZQUM5QyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQVcsU0FBUyxDQUFDO1lBQzVDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFUCwyQ0FBMkM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckQsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLG1CQUFtQixDQUM1QixnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FDaEQsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLENBQUksU0FBa0Q7UUFDN0QsT0FBTyxJQUFJLG1CQUFtQixDQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDaEQsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9