@forestadmin/datasource-toolkit
Version:
58 lines • 4.47 kB
JavaScript
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
;