Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 1x 1x 1x 1x 1x 1x 1x | import { CoreDBCon, CoreKernelModule } from './classes';
import { InMemCache } from './modules';
import { BackgroundService } from './services';
import type { ICoreKernel, ICoreModule } from './lib';
import CoreDb from './database/CoreDb';
/**
* CoreModule is the primary module that orchestrates the core services of the application.
* It extends {@link CoreKernelModule} with specific type parameters and implements {@link ICoreModule}.
* The module is responsible for initializing the core database, setting up an in-memory cache,
* and registering essential background services.
*
* @extends CoreKernelModule<ICoreKernel<any>, CoreDb, null, InMemCache, null>
* @implements ICoreModule
*/
export default class CoreModule
extends CoreKernelModule<ICoreKernel<any>, CoreDb, null, InMemCache, null>
implements ICoreModule
{
cdb: CoreDBCon<any>;
/**
* @param kernel
* @param dbFunc
*/
constructor(
kernel: ICoreKernel<any>,
dbFunc: (mod: CoreModule) => CoreDBCon<any>,
) {
super('core', kernel);
this.addService(new BackgroundService(this));
this.cdb = dbFunc(this);
}
async initModule(): Promise<void> {
this.setCache(new InMemCache(this, 480000));
const db = new CoreDb(this.cdb);
db.setEntityCache(true);
this.setDb(db);
}
}
|