mongoose-management
Version:
Mongoose schemas management tool
50 lines (49 loc) • 1.92 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const mongo_1 = require("../../mongo");
exports.call = (prompts, answersMain, column) => __awaiter(this, void 0, void 0, function* () {
if (answersMain.type !== 'arrayType') {
return [];
}
const answersSubType = [];
const subTypes = column ? [...column.getSubTypes()] : [];
let type;
do {
const questions = exports.getQuestions(subTypes.shift());
const answersSubTypePart = yield prompts.call(questions);
type = answersSubTypePart.type;
answersSubType.push(type);
} while (type === 'arrayType');
return answersSubType;
});
exports.getQuestions = (subType) => {
const typeValue = subType ? Object.keys(mongo_1.schemaTypesNormal).indexOf(subType) : undefined;
const typeValues = Object.entries(mongo_1.schemaTypesNormal).map(([key, value]) => ({
name: value.name,
value: key,
short: value.name,
}));
return [
{
type: 'list',
name: 'type',
message: 'Choose a SchemaSubType',
choices: typeValues,
default: typeValue,
},
];
};
exports.evaluation = (answers) => {
return (column) => {
column.setSubTypes(answers);
return column;
};
};