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