UNPKG

@jondotsoy/flags

Version:

A Javascript arguments processor

41 lines 3.86 kB
import { Builder } from "./Builder.js"; import { Spec, } from "./Spec.js"; import { transformRefine } from "./refiners/transformRefine.js"; import { flagMatchRefine } from "./refiners/flagMatchRefine.js"; import { stringsFlagRefine } from "./refiners/stringsFlagRefine.js"; import { stringsAccumulate } from "./accumulates/stringsAccumulate.js"; export class StringsFlagBuilder extends Builder { initial(initial) { return new StringsFlagBuilder(this.spec.initial(initial)); } accumulate(accumulate) { return new StringsFlagBuilder(this.spec.accumulate(accumulate)); } refine(refine) { return new StringsFlagBuilder(this.spec.refine(refine)); } metadata(values) { return new StringsFlagBuilder(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 specWithStrings = specWithFlag.refine(stringsFlagRefine); return new StringsFlagBuilder(specWithStrings.accumulate(stringsAccumulate)); } transform(transform) { return new StringsFlagBuilder(this.spec.refine(transformRefine(transform))); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RyaW5nc0ZsYWdCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1aWxkZXJzL1N0cmluZ3NGbGFnQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxJQUFJLEdBSUwsTUFBTSxXQUFXLENBQUM7QUFHbkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV2RSxNQUFNLE9BQU8sa0JBQTZDLFNBQVEsT0FBVTtJQUMxRSxPQUFPLENBQUksT0FBVTtRQUNuQixPQUFPLElBQUksa0JBQWtCLENBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBK0IsQ0FDekQsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBc0I7UUFDL0IsT0FBTyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBTSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE1BQU0sQ0FBSSxNQUFjO1FBQ3RCLE9BQU8sSUFBSSxrQkFBa0IsQ0FDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUE4QixDQUN0RCxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUEyQjtRQUNsQyxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFNLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsUUFBUSxDQUFDLFdBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWlCO1FBQ3pCLGdDQUFnQztRQUNoQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDOUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFXLFNBQVMsQ0FBQztZQUM1QyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsMkNBQTJDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvRCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvRCxPQUFPLElBQUksa0JBQWtCLENBQzNCLGVBQWUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLENBQUksU0FBa0Q7UUFDN0QsT0FBTyxJQUFJLGtCQUFrQixDQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDaEQsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9