promptOptions.ts 1.1 KB

12345678910111213141516171819202122232425262728
  1. import { ApiParamsOptions, ApiMethodNamedArgs, ApiParamOptions, ApiMethodArg } from '../Types'
  2. import { Validator } from 'inquirer';
  3. export function setDefaults(promptOptions: ApiParamsOptions, defaultValues: ApiMethodNamedArgs) {
  4. for (const defaultValue of defaultValues) {
  5. const { name: paramName, value: paramValue } = defaultValue;
  6. const paramOptions = promptOptions[paramName];
  7. if (paramOptions && paramOptions.value) {
  8. paramOptions.value.default = paramValue;
  9. }
  10. else if (paramOptions) {
  11. promptOptions[paramName].value = { default: paramValue };
  12. }
  13. else {
  14. promptOptions[paramName] = { value: { default: paramValue } };
  15. }
  16. }
  17. }
  18. // Temporary(?) helper for easier creation of common ApiParamOptions
  19. export function createParamOptions(forcedName?: string, defaultValue?: ApiMethodArg | undefined, validator?: Validator): ApiParamOptions {
  20. const paramOptions: ApiParamOptions = { forcedName, validator };
  21. if (defaultValue) {
  22. paramOptions.value = { default: defaultValue };
  23. }
  24. return paramOptions;
  25. }