UNPKG

@lakutata/cli

Version:
62 lines (61 loc) 2.48 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConvertDTO2Inquirer = void 0; const inquirer_1 = __importDefault(require("inquirer")); async function ConvertDTO2Inquirer(dto) { const jsonSchema = dto.toOpenAPIJsonSchema(); const prompts = []; for (const propertyName in jsonSchema.properties) { const propertyInfo = jsonSchema.properties[propertyName]; const propertyRequired = Array.isArray(jsonSchema.required) && jsonSchema.required.includes(propertyName); switch (propertyInfo.type) { case 'boolean': { prompts.push({ name: propertyName, type: 'confirm', message: propertyInfo.description || '', default: propertyInfo.default, required: propertyRequired }); } break; case 'string': default: { if (propertyInfo.enum) { const enums = propertyInfo.enum.filter(value => !!value); prompts.push({ name: propertyName, type: 'list', message: propertyInfo.description || '', required: propertyRequired, choices: enums.map((value) => ({ name: value, value: value })) }); } else { prompts.push({ name: propertyName, type: 'input', message: propertyInfo.description || '', default: propertyInfo.default, required: propertyRequired, validate: (input) => { if (propertyInfo.pattern) { return new RegExp(propertyInfo.pattern).test(input); } return true; } }); } } } } return inquirer_1.default.prompt(prompts); } exports.ConvertDTO2Inquirer = ConvertDTO2Inquirer;