UNPKG

@jondotsoy/flags

Version:

A Javascript arguments processor

59 lines 5.11 kB
import { Builder } from "./Builder.js"; import { Spec } from "./Spec.js"; import { StringsArgumentBuilder } from "./StringsArgumentBuilder.js"; import { toListRefine } from "./refiners/toListRefine.js"; import { listAccumulate } from "./accumulates/listAccumulate.js"; import { NumberArgumentBuilder } from "./NumberArgumentBuilder.js"; import { toNumberRefine } from "./refiners/toNumberRefine.js"; import { transformRefine } from "./refiners/transformRefine.js"; import { regexMatchRefine } from "./refiners/regexMatchRefine.js"; import { RestArgsArgumentBuilder } from "./RestArgsArgumentBuilder.js"; import { restArgsRefine } from "./refiners/restArgsRefine.js"; export class ArgumentBuilder extends Builder { initial(initial) { return new ArgumentBuilder(this.spec.initial(initial)); } accumulate(accumulate) { return new ArgumentBuilder(this.spec.accumulate(accumulate)); } refine(refine) { return new ArgumentBuilder(this.spec.refine(refine)); } metadata(values) { return new ArgumentBuilder(this.spec.metadata(values)); } describe(description) { return this.metadata({ description }); } required() { return this.metadata({ required: true }); } string() { return this; } strings() { return new StringsArgumentBuilder(this.spec.refine(toListRefine).accumulate(listAccumulate)); } number() { return new NumberArgumentBuilder(this.spec.initial(null).refine(toNumberRefine)); } transform(transform) { return new ArgumentBuilder(this.spec.refine(transformRefine(transform))); } match(regex) { return new ArgumentBuilder(this.spec.refine(regexMatchRefine(regex))); } restArgs() { return new RestArgsArgumentBuilder(this.spec.initial(null).refine(restArgsRefine)); } static create() { return new ArgumentBuilder(Spec.create().refine((arg, index, args) => { return { args: args.slice(0, index + 1), index: index, value: arg, }; })); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJndW1lbnRCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1aWxkZXJzL0FyZ3VtZW50QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHakMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBT2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU5RCxNQUFNLE9BQU8sZUFBMEMsU0FBUSxPQUFVO0lBQ3ZFLE9BQU8sQ0FBSSxPQUFVO1FBQ25CLE9BQU8sSUFBSSxlQUFlLENBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBK0IsQ0FDekQsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBc0I7UUFDL0IsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQU0sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxNQUFNLENBQUksTUFBYztRQUN0QixPQUFPLElBQUksZUFBZSxDQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQThCLENBQ3RELENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQTJCO1FBQ2xDLE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFNLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsUUFBUSxDQUFDLFdBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksc0JBQXNCLENBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FDMUQsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLHFCQUFxQixDQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQVMsY0FBYyxDQUFDLENBQ3ZELENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxDQUFJLFNBQTJDO1FBQ3RELE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWE7UUFDakIsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksdUJBQXVCLENBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBVyxjQUFjLENBQUMsQ0FDekQsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTTtRQUNYLE9BQU8sSUFBSSxlQUFlLENBQ3hCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ2hELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQzlCLEtBQUssRUFBRSxLQUFLO2dCQUNaLEtBQUssRUFBRSxHQUFHO2FBQ1gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0YifQ==