@jondotsoy/flags
Version:
A Javascript arguments processor
60 lines • 6.95 kB
JavaScript
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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