@jondotsoy/flags
Version:
A Javascript arguments processor
27 lines • 2.41 kB
JavaScript
export const flagMatchRefine = (_arg, index, args, _context, builder) => {
const matches = builder.spec.getMetadata("matches") ?? [];
const delimiter = builder.spec.getMetadata("delimiter") ?? "=";
// Check if current arg matches any of the aliases
for (const match of matches) {
// Check for exact match (e.g., "--verbose" or "foo-taz")
if (args[index] === match) {
// No value provided, return empty string
return {
args: args.slice(index, index + 1),
index,
value: "",
};
}
// Check for flag{delimiter}value format (e.g., "--verbose=foo" or "foo-taz:bar")
if (args[index].startsWith(`${match}${delimiter}`)) {
const value = args[index].substring(match.length + delimiter.length);
return {
args: args.slice(index, index + 1),
index,
value,
};
}
}
return null;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZ01hdGNoUmVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2J1aWxkZXJzL3JlZmluZXJzL2ZsYWdNYXRjaFJlZmluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQVcsQ0FDckMsSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLEVBQ0osUUFBUSxFQUNSLE9BQU8sRUFDUCxFQUFFO0lBQ0YsTUFBTSxPQUFPLEdBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQXVCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBUyxXQUFXLENBQUMsSUFBSSxHQUFHLENBQUM7SUFFdkUsa0RBQWtEO0lBQ2xELEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUIseURBQXlEO1FBQ3pELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzFCLHlDQUF5QztZQUN6QyxPQUFPO2dCQUNMLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNsQyxLQUFLO2dCQUNMLEtBQUssRUFBRSxFQUFFO2FBQ1YsQ0FBQztRQUNKLENBQUM7UUFFRCxpRkFBaUY7UUFDakYsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsS0FBSyxHQUFHLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNuRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JFLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLEtBQUs7Z0JBQ0wsS0FBSzthQUNOLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDIn0=