This repository has been archived on 2025-03-10. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
wetsock/lib/WetSock/Models/Repository.js

25 lines
592 B
JavaScript
Raw Normal View History

2024-04-02 15:57:41 +00:00
export default class Repository {
#entityClass = undefined;
#actions = new Map();
constructor(config) {
this.#entityClass = config.entityClass;
}
create(entityData) {
return new this.#entityClass(entityData);
}
perform(entity, actionName, ...args) {
if(!this.#actions.has(actionName)) throw new Error(`Action '${actionName}' is not registered.`);
return this.#actions.get(actionName)(entity, ...args);
}
register(actionName, actionFn) {
this.#actions.set(actionName, actionFn);
}
getActions() {
return Array.from(this.#actions.keys());
}
}