@jondotsoy/flags
Version:
A Javascript arguments processor
39 lines • 3.57 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 { booleanFlagRefine } from "./refiners/booleanFlagRefine.js";
export class BooleanFlagBuilder extends Builder {
initial(initial) {
return new BooleanFlagBuilder(this.spec.initial(initial));
}
accumulate(accumulate) {
return new BooleanFlagBuilder(this.spec.accumulate(accumulate));
}
refine(refine) {
return new BooleanFlagBuilder(this.spec.refine(refine));
}
metadata(values) {
return new BooleanFlagBuilder(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);
return new BooleanFlagBuilder(specWithFlag.refine(booleanFlagRefine));
}
transform(transform) {
return new BooleanFlagBuilder(this.spec.refine(transformRefine(transform)));
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbGVhbkZsYWdCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1aWxkZXJzL0Jvb2xlYW5GbGFnQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxJQUFJLEdBSUwsTUFBTSxXQUFXLENBQUM7QUFHbkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxNQUFNLE9BQU8sa0JBQTZDLFNBQVEsT0FBVTtJQUMxRSxPQUFPLENBQUksT0FBVTtRQUNuQixPQUFPLElBQUksa0JBQWtCLENBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBK0IsQ0FDekQsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBc0I7UUFDL0IsT0FBTyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBTSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE1BQU0sQ0FBSSxNQUFjO1FBQ3RCLE9BQU8sSUFBSSxrQkFBa0IsQ0FDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUE4QixDQUN0RCxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUEyQjtRQUNsQyxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFNLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsUUFBUSxDQUFDLFdBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWlCO1FBQ3pCLGdDQUFnQztRQUNoQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDOUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFXLFNBQVMsQ0FBQztZQUM1QyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsMkNBQTJDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvRCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsU0FBUyxDQUFJLFNBQWtEO1FBQzdELE9BQU8sSUFBSSxrQkFBa0IsQ0FDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQ2hELENBQUM7SUFDSixDQUFDO0NBQ0YifQ==