Files
evento/node_modules/@mikro-orm/nestjs/mikro-orm.entities.storage.js
2026-03-18 14:55:56 -03:00

31 lines
1.0 KiB
JavaScript

export class MikroOrmEntitiesStorage {
static storage = new Map();
static shouldClear = false;
static addEntity(entity, contextName = 'default') {
if (this.shouldClear) {
this.clear(contextName);
this.shouldClear = false;
}
let set = this.storage.get(contextName);
if (!set) {
set = new Set();
this.storage.set(contextName, set);
}
set.add(entity);
}
static getEntities(contextName = 'default') {
return this.storage.get(contextName)?.values() || [];
}
static clear(contextName = 'default') {
this.storage.get(contextName)?.clear();
}
/**
* When the `addEntity` is called next, the storage will be cleared automatically before it.
* We want to keep the cache, as it's populated on require time, but sometimes (tests) the contexts could be cleared.
* This resolves both cases by deferring the `clear` call to the first `addEntity` call.
*/
static clearLater() {
this.shouldClear = true;
}
}