mongoose-management
Version:
Mongoose schemas management tool
35 lines (34 loc) • 1.14 kB
JavaScript
;
/**
* This function converts old data structure into the new structure.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.converterSubType = (column) => {
if (column.subType) {
return [column.type, ...exports.converterSubType(column.subType)];
}
return [column.type];
};
exports.recursionSubType = (column) => {
if (column.type === 'arrayType' && column.subType) {
column.subTypes = exports.converterSubType(column.subType);
delete column.subType;
}
if (column.subColumns) {
column.subColumns.forEach(exports.recursionSubType);
}
};
exports.convertColumnIndex = (index) => {
if (typeof index.mode !== 'undefined' && typeof index.type !== 'undefined') {
index.name = index.name.replace(`-${index.mode}_`, '_');
delete index.mode;
delete index.type;
}
};
exports.converter = (data) => {
data.groups.forEach((v1) => v1.collections.forEach((v2) => {
v2.columns.forEach(exports.recursionSubType);
v2.indexes.forEach(exports.convertColumnIndex);
}));
};
exports.default = exports.converter;