UNPKG

@forestadmin/datasource-toolkit

Version:
58 lines 4.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /* eslint-disable @typescript-eslint/no-unused-vars */ const index_1 = require("./index"); class BaseCollection { constructor(name, datasource, nativeDriver = null) { this.dataSource = datasource; this.name = name; this.nativeDriver = nativeDriver; this.schema = { actions: {}, charts: [], countable: false, fields: {}, searchable: false, segments: [], }; } addAction(name, schema) { const action = this.schema.actions[name]; if (action !== undefined) throw new Error(`Action "${name}" already defined in collection`); this.schema.actions[name] = schema; } addChart(name) { if (this.schema.charts.includes(name)) { throw new Error(`Chart "${name}" already defined in collection`); } this.schema.charts.push(name); } addField(name, schema) { index_1.SchemaUtils.throwIfAlreadyDefinedField(this.schema, name, this.name); this.schema.fields[name] = schema; } addFields(fields) { Object.entries(fields).forEach(([fieldName, fieldSchema]) => this.addField(fieldName, fieldSchema)); } addSegments(segments) { this.schema.segments.push(...segments); } enableCount() { this.schema.countable = true; } enableSearch() { this.schema.searchable = true; } async execute(caller, name, formValues, filter) { throw new Error(`Action ${name} is not implemented.`); } async getForm(caller, name, formValues, filter, metas) { return []; } async renderChart(caller, name, recordId) { throw new Error(`Chart ${name} is not implemented.`); } } exports.default = BaseCollection; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2UtY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNEQUFzRDtBQUN0RCxtQ0FBc0M7QUFZdEMsTUFBOEIsY0FBYztJQU0xQyxZQUFZLElBQVksRUFBRSxVQUFzQixFQUFFLGVBQXdCLElBQUk7UUFDNUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLE9BQU8sRUFBRSxFQUFFO1lBQ1gsTUFBTSxFQUFFLEVBQUU7WUFDVixTQUFTLEVBQUUsS0FBSztZQUNoQixNQUFNLEVBQUUsRUFBRTtZQUNWLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztJQUNKLENBQUM7SUFFUyxTQUFTLENBQUMsSUFBWSxFQUFFLE1BQW9CO1FBQ3BELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpDLElBQUksTUFBTSxLQUFLLFNBQVM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsSUFBSSxpQ0FBaUMsQ0FBQyxDQUFDO1FBRTVGLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUNyQyxDQUFDO0lBRVMsUUFBUSxDQUFDLElBQVk7UUFDN0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksaUNBQWlDLENBQUMsQ0FBQztTQUNsRTtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRVMsUUFBUSxDQUFDLElBQVksRUFBRSxNQUFtQjtRQUNsRCxtQkFBVyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDcEMsQ0FBQztJQUVTLFNBQVMsQ0FBQyxNQUE0QztRQUM5RCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQ3RDLENBQUM7SUFDSixDQUFDO0lBRVMsV0FBVyxDQUFDLFFBQWtCO1FBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFUyxXQUFXO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQXFCRCxLQUFLLENBQUMsT0FBTyxDQUNYLE1BQWMsRUFDZCxJQUFZLEVBQ1osVUFBc0IsRUFDdEIsTUFBZTtRQUVmLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLHNCQUFzQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQ1gsTUFBYyxFQUNkLElBQVksRUFDWixVQUF1QixFQUN2QixNQUFlLEVBQ2YsS0FBb0I7UUFFcEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBWSxFQUFFLFFBQXFCO1FBQ25FLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLHNCQUFzQixDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBckdELGlDQXFHQyJ9