UNPKG

@forestadmin/datasource-toolkit

Version:
34 lines 3.06 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const _1 = __importDefault(require(".")); const index_1 = require("../../../index"); class ProjectionFactory { static all(collection) { const schemaFields = collection.schema.fields; const projectionFields = Object.entries(schemaFields).reduce((memo, [columnName, column]) => { if (column.type === 'Column') { return [...memo, columnName]; } if (column.type === 'OneToOne' || column.type === 'ManyToOne') { const relation = collection.dataSource.getCollection(column.foreignCollection); const relationFields = relation.schema.fields; return [ ...memo, ...Object.keys(relationFields) .filter(relColumnName => relationFields[relColumnName].type === 'Column') .map(relColumnName => `${columnName}:${relColumnName}`), ]; } return memo; }, []); return new _1.default(...projectionFields); } static columns(collection) { return new _1.default(...index_1.SchemaUtils.getColumnNames(collection.schema)); } } exports.default = ProjectionFactory; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbnRlcmZhY2VzL3F1ZXJ5L3Byb2plY3Rpb24vZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlDQUEyQjtBQUMzQiwwQ0FBNkM7QUFHN0MsTUFBcUIsaUJBQWlCO0lBQ3BDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBc0I7UUFDL0IsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDOUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQzFGLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQzVCLE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQzthQUM5QjtZQUVELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUU7Z0JBQzdELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUMvRSxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFFOUMsT0FBTztvQkFDTCxHQUFHLElBQUk7b0JBQ1AsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQzt5QkFDM0IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7eUJBQ3hFLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxJQUFJLGFBQWEsRUFBRSxDQUFDO2lCQUMxRCxDQUFDO2FBQ0g7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsRUFBRSxFQUFjLENBQUMsQ0FBQztRQUVuQixPQUFPLElBQUksVUFBVSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFzQjtRQUNuQyxPQUFPLElBQUksVUFBVSxDQUFDLEdBQUcsbUJBQVcsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGO0FBN0JELG9DQTZCQyJ9