UNPKG

@jondotsoy/flags

Version:

A Javascript arguments processor

66 lines 6.12 kB
import { Builder } from "./Builder.js"; import { Spec, } from "./Spec.js"; import { flagMatchRefine } from "./refiners/flagMatchRefine.js"; import { StringFlagBuilder } from "./StringFlagBuilder.js"; import { stringFlagRefine } from "./refiners/stringFlagRefine.js"; import { NumberFlagBuilder } from "./NumberFlagBuilder.js"; import { numberFlagRefine } from "./refiners/numberFlagRefine.js"; import { KeyValueFlagBuilder } from "./KeyValueFlagBuilder.js"; import { keyValueFlagRefine } from "./refiners/keyValueFlagRefine.js"; import { keyValueAccumulate } from "./accumulates/keyValueAccumulate.js"; import { BooleanFlagBuilder } from "./BooleanFlagBuilder.js"; import { booleanFlagRefine } from "./refiners/booleanFlagRefine.js"; import { StringsFlagBuilder } from "./StringsFlagBuilder.js"; import { stringsFlagRefine } from "./refiners/stringsFlagRefine.js"; import { stringsAccumulate } from "./accumulates/stringsAccumulate.js"; import { restArgsRefine } from "./refiners/restArgsRefine.js"; import { RestArgsFlagBuilder } from "./RestArgsFlagBuilder.js"; export class FlagBuilder extends 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(this.spec.initial(null).refine(stringFlagRefine)); } strings() { const specWithRefine = this.spec .initial([]) .refine(stringsFlagRefine); return new StringsFlagBuilder(specWithRefine.accumulate(stringsAccumulate)); } number() { return new NumberFlagBuilder(this.spec.initial(null).refine(numberFlagRefine)); } boolean() { return new BooleanFlagBuilder(this.spec.initial(false).refine(booleanFlagRefine)); } keyValue() { return new KeyValueFlagBuilder(this.spec .refine(keyValueFlagRefine) .initial(null) .accumulate(keyValueAccumulate)); } restArgs() { return new RestArgsFlagBuilder(this.spec.initial(null).refine(restArgsRefine)); } static create(...aliases) { const spec = Spec.create().metadata({ matches: aliases }); return new FlagBuilder(spec.refine(flagMatchRefine)); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxhZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbGRlcnMvRmxhZ0J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsSUFBSSxHQUdMLE1BQU0sV0FBVyxDQUFDO0FBR25CLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFL0QsTUFBTSxPQUFPLFdBQXND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