@cloud-copilot/cli
Version:
A standardized library for CLI building TypeScript CLI applications
38 lines • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.arrayValueArgument = arrayValueArgument;
/**
* Creates an array value argument factory for a specific type
*/
function arrayValueArgument(validator, descriptionSuffix = '') {
function createArgument(options) {
return {
description: options.description + descriptionSuffix,
validateValues: async (current, values, isCurrentlyDefaulted) => {
if (values.length === 0) {
return { valid: false, message: 'at least one value is required' };
}
const validatedValues = [];
for (const rawValue of values) {
const result = await validator(rawValue);
if (!result.valid) {
return result;
}
validatedValues.push(result.value);
}
return { valid: true, value: validatedValues };
},
reduceValues: async (current, newValues, isCurrentlyDefaulted) => {
if (isCurrentlyDefaulted || !current) {
return newValues;
}
current.push(...newValues);
return current;
},
defaultValue: options.defaultValue,
acceptMultipleValues: () => true
};
}
return createArgument;
}
//# sourceMappingURL=arrayValueArgument.js.map