UNPKG

@jondotsoy/flags

Version:

A Javascript arguments processor

42 lines 3.73 kB
import { Builder } from "./Builder.js"; import { Spec, } from "./Spec.js"; import { transformRefine } from "./refiners/transformRefine.js"; import { flagMatchRefine } from "./refiners/flagMatchRefine.js"; import { stringFlagRefine } from "./refiners/stringFlagRefine.js"; export class StringFlagBuilder extends Builder { initial(initial) { return new StringFlagBuilder(this.spec.initial(initial)); } accumulate(accumulate) { return new StringFlagBuilder(this.spec.accumulate(accumulate)); } refine(refine) { return new StringFlagBuilder(this.spec.refine(refine)); } metadata(values) { return new StringFlagBuilder(this.spec.metadata(values)); } describe(description) { return this.metadata({ description }); } required() { return this.metadata({ required: true }); } default(value) { return this.initial(value); } 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); return new StringFlagBuilder(specWithFlag.refine(stringFlagRefine)); } transform(transform) { return new StringFlagBuilder(this.spec.refine(transformRefine(transform))); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RyaW5nRmxhZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbGRlcnMvU3RyaW5nRmxhZ0J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsSUFBSSxHQUtMLE1BQU0sV0FBVyxDQUFDO0FBR25CLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFbEUsTUFBTSxPQUFPLGlCQUE0QyxTQUFRLE9BQVU7SUFDekUsT0FBTyxDQUFJLE9BQVU7UUFDbkIsT0FBTyxJQUFJLGlCQUFpQixDQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQStCLENBQ3pELENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFDLFVBQXNCO1FBQy9CLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQU0sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxNQUFNLENBQUksTUFBYztRQUN0QixPQUFPLElBQUksaUJBQWlCLENBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBOEIsQ0FDdEQsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBMkI7UUFDbEMsT0FBTyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBTSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxXQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUF5QjtRQUMvQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFpQjtRQUN6QixnQ0FBZ0M7UUFDaEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQzlDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBVyxTQUFTLENBQUM7WUFDNUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLDJDQUEyQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNyRCxPQUFPLElBQUksaUJBQWlCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBTSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELFNBQVMsQ0FBSSxTQUFrRDtRQUM3RCxPQUFPLElBQUksaUJBQWlCLENBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUNoRCxDQUFDO0lBQ0osQ0FBQztDQUNGIn0=