feat: add new sern emitter event

This commit is contained in:
Jacob Nguyen
2023-05-18 21:34:39 -05:00
parent 47f58a9efa
commit 08e358b32d
2 changed files with 6 additions and 10 deletions

View File

@@ -8,6 +8,7 @@ import { catchError, finalize, merge } from 'rxjs';
import { handleError } from '../core/operators';
import { Services, useContainerRaw } from '../core/ioc';
import { Wrapper } from '../shared';
import { handleCrash } from './events/generic';
/**
* @since 1.0.0
@@ -34,8 +35,10 @@ export function init(wrapper: Wrapper) {
makeEventsHandler(dependencies, getFullPathTree(wrapper.events, mode));
}
startReadyEvent(dependencies, getFullPathTree(wrapper.commands, mode)).add(() => {
startReadyEvent(dependencies, getFullPathTree(wrapper.commands, mode))
.add(() => {
const time = ((performance.now() - startTime) / 1000).toFixed(2);
dependencies[0].emit('modulesLoaded');
logger?.info({
message: `sern: registered all modules in ${time} s`,
});
@@ -45,15 +48,7 @@ export function init(wrapper: Wrapper) {
const interactions$ = makeInteractionHandler(dependencies);
merge(messages$, interactions$)
.pipe(
catchError(handleError(errorHandler, logger)),
finalize(() => {
logger?.info({ message: 'A stream closed or reached end of lifetime' });
useContainerRaw()
?.disposeAll()
.then(() => logger?.info({ message: 'Cleaning container and crashing' }));
}),
)
.pipe(handleCrash(errorHandler, logger))
.subscribe();
}

View File

@@ -21,6 +21,7 @@ export interface SernEventsMapping {
'module.activate': [Payload];
error: [Payload];
warning: [Payload];
'modulesLoaded' : [];
}
export type Awaitable<T> = PromiseLike<T> | T;