@cloud-copilot/cli
Version:
A standardized library for CLI building TypeScript CLI applications
32 lines • 1.3 kB
JavaScript
/**
* Creates a single value argument factory for a specific type
*/
export function singleValueArgument(validator, descriptionSuffix = '') {
function createArgument(options) {
return {
description: options.description + descriptionSuffix,
validateValues: async (currentValue, values, isCurrentlyDefaulted) => {
if (currentValue !== undefined && currentValue != options.defaultValue) {
return {
valid: false,
message: 'expects a single values but was set multiple times'
};
}
if (values.length == 0) {
return { valid: false, message: 'a value is required' };
}
if (values.length > 1) {
return {
valid: false,
message: 'expects a single value but received ' + values.join(', ')
};
}
return validator(values[0]);
},
reduceValues: async (current, newValue, isCurrentlyDefaulted) => newValue,
defaultValue: options.defaultValue
};
}
return createArgument;
}
//# sourceMappingURL=singleValueArgument.js.map