mongoose-management
Version:
Mongoose schemas management tool
41 lines (40 loc) • 1.27 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const abstract_1 = __importDefault(require("./abstract"));
/**
*
*/
class ConverterArrayType extends abstract_1.default {
/**
*
* @param columns
*/
columnToTypes(column) {
if (!Array.isArray(column.subTypes)) {
throw new Error('SubType is not defined!');
}
const type = column.subTypes.reduceRight((p, t) => (t === 'arrayType' ? `${p}[]` : this.converter.converterCommon.columnToTypes(Object.assign({}, column, { type: t }))), '');
return `${type}[]`;
}
/**
*
* @param columns
*/
columnToDefinitions(column) {
if (!Array.isArray(column.subTypes)) {
throw new Error('SubType is not defined!');
}
const type = column.subTypes.reduceRight((p, t) => t === 'arrayType' ? `[${p}]` : this.converter.converterCommon.columnToDefinitions(Object.assign({}, column, { type: t })), '');
return `[${type}]`;
}
/**
*
*/
columnToVirtuals() {
return '';
}
}
exports.default = ConverterArrayType;