All files / src/dev DevKernel.ts

100% Statements 19/19
100% Branches 0/0
100% Functions 7/7
100% Lines 19/19

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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75                          1x     1x 1x 1x 1x 1x 1x 1x   1x 1x   1x 1x   1x 2x   1x 1x   1x   1x                   1x                                                    
import CoreKernel from '../CoreKernel';
import { CoreCryptoClient } from '../modules';
import TestModule, { type TestFc } from './testClass/TestModule';
import BridgeTestModule from './testClass/BridgeTestModule';
import { CoreLogger, LogLevel } from '../classes';
import type { ICoreCClient } from '../lib';
import TestBaseModule from './testClass/TestBaseModule';
import TestExtension from './testClass/client/TestExtension';
 
export function setupDevKernel<E extends CoreKernel<any>>(
  kernel: E,
  res?: TestFc,
): E {
  kernel.setCryptoClient(
    new CoreCryptoClient(kernel, CoreCryptoClient.fromPW('testpw')),
  );
  const mod = new TestModule(kernel, res);
  kernel.setBaseModule(new TestBaseModule(kernel));
  kernel.addModule(mod);
  kernel.addExtension('test', new TestExtension('test', mod));
  kernel.addModule(new BridgeTestModule(kernel));
  kernel.on('pre', async () => {
    kernel.verbose('pre');
  });
  kernel.on('start', async () => {
    kernel.verbose('start');
  });
  kernel.on('stop', async () => {
    kernel.verbose('stop');
  });
  kernel.on('load', async () => {
    kernel.verbose('load');
  });
  kernel.on('core-load', async () => {
    kernel.verbose('core-load');
  });
  kernel.getLogger().setLogLevel(LogLevel.VERBOSE);
  // (kernel.getLogger() as DefaultLogger).setNoColor(true);
  return kernel;
}
 
export class TestKernel extends CoreKernel<ICoreCClient> {
  constructor(
    appName: string,
    appCode: string,
    envFilePath: string,
    logger?: (kernel: CoreKernel<any>) => CoreLogger,
  ) {
    super({
      appName,
      appCode,
      envFilePath,
      logger,
      loadFromLocalEnv: true,
      globalFolder: [
        {
          storeKey: 'dev',
          base: 'config',
          folderName: 'dev',
        },
        {
          storeKey: 'res',
          base: 'root',
          folderName: 'res',
        },
        {
          storeKey: 'res_image',
          base: 'root',
          folderName: 'res/image',
        },
      ],
    });
  }
}