UNPKG

@jondotsoy/flags

Version:

A Javascript arguments processor

60 lines 6.95 kB
import { Builder } from "./Builder.js"; import { Spec, } from "./Spec.js"; import { transformRefine } from "./refiners/transformRefine.js"; import { flagMatchRefine } from "./refiners/flagMatchRefine.js"; import { numberFlagRefine } from "./refiners/numberFlagRefine.js"; import { notNaNRefine } from "./refiners/notNaNRefine.js"; import { numberMultipleOfRefine } from "./refiners/numberMultipleOfRefine.js"; import { numberNegativeRefine } from "./refiners/numberNegativeRefine.js"; import { numberPositiveRefine } from "./refiners/numberPositiveRefine.js"; import { numberLessThanOrEqualRefine } from "./refiners/numberLessThanOrEqualRefine.js"; import { numberLessThanRefine } from "./refiners/numberLessThanRefine.js"; import { numberGreaterThanOrEqualRefine } from "./refiners/numberGreaterThanOrEqualRefine.js"; import { numberGreaterThanRefine } from "./refiners/numberGreaterThanRefine.js"; export class NumberFlagBuilder extends Builder { initial(initial) { return new NumberFlagBuilder(this.spec.initial(initial)); } accumulate(accumulate) { return new NumberFlagBuilder(this.spec.accumulate(accumulate)); } refine(refine) { return new NumberFlagBuilder(this.spec.refine(refine)); } metadata(values) { return new NumberFlagBuilder(this.spec.metadata(values)); } delimiter(delimiter) { // Get the matches from metadata const 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 NumberFlagBuilder(specWithFlag.refine(numberFlagRefine)); } transform(transform) { return new NumberFlagBuilder(this.spec.refine(transformRefine(transform))); } default(value) { return this.initial(value); } describe(description) { return this.metadata({ description }); } required() { return this.metadata({ required: true }); } notNaN = () => new NumberFlagBuilder(this.spec.refine(notNaNRefine)); gt = (greaterThan) => this.greaterThan(greaterThan); gte = (greaterThanOrEqual) => this.greaterThanOrEqual(greaterThanOrEqual); lt = (lessThan) => this.lessThan(lessThan); lte = (lessThanOrEqual) => this.lessThanOrEqual(lessThanOrEqual); greaterThan = (greaterThan) => this.refine(numberGreaterThanRefine(greaterThan)); greaterThanOrEqual = (greaterThanOrEqual) => this.refine(numberGreaterThanOrEqualRefine(greaterThanOrEqual)); lessThan = (lessThan) => this.refine(numberLessThanRefine(lessThan)); lessThanOrEqual = (lessThanOrEqual) => this.refine(numberLessThanOrEqualRefine(lessThanOrEqual)); positive = () => this.refine(numberPositiveRefine); negative = () => this.refine(numberNegativeRefine); multipleOf = (multipleOf) => this.refine(numberMultipleOfRefine(multipleOf)); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTnVtYmVyRmxhZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbGRlcnMvTnVtYmVyRmxhZ0J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsSUFBSSxHQUtMLE1BQU0sV0FBVyxDQUFDO0FBR25CLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzlGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRWhGLE1BQU0sT0FBTyxpQkFBNEMsU0FBUSxPQUFVO0lBQ3pFLE9BQU8sQ0FBSSxPQUFVO1FBQ25CLE9BQU8sSUFBSSxpQkFBaUIsQ0FDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUErQixDQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxVQUFzQjtRQUMvQixPQUFPLElBQUksaUJBQWlCLENB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