mongoose-management
Version:
Mongoose schemas management tool
35 lines (34 loc) • 1.2 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const sort_1 = require("../helper/sort");
const abstract_1 = __importDefault(require("./abstract"));
class AbstractColumnsDataset extends abstract_1.default {
getColumns() {
return this.columns;
}
getColumn(name, withSubColumns = false) {
const columns = withSubColumns
? this.flatColumns().filter((c) => c.getFullname(false, false) === name)
: this.getColumns().filter((c) => c.getName() === name);
return columns.length === 1 ? columns[0] : undefined;
}
addColumn(column) {
this.columns.push(column);
this.sortColumns();
column.setReference();
return column;
}
flatColumns() {
return this.columns.reduce((p, c) => p.concat(c, c.flatColumns()), []);
}
removeColumn(column) {
this.columns = this.columns.filter((c) => c !== column);
}
sortColumns() {
this.columns.sort(sort_1.sortByName);
}
}
exports.default = AbstractColumnsDataset;