mirror of
https://github.com/sern-handler/handler
synced 2026-06-06 01:16:55 +00:00
feat: add new sern emitter event
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ export interface SernEventsMapping {
|
||||
'module.activate': [Payload];
|
||||
error: [Payload];
|
||||
warning: [Payload];
|
||||
'modulesLoaded' : [];
|
||||
}
|
||||
|
||||
export type Awaitable<T> = PromiseLike<T> | T;
|
||||
|
||||
Reference in New Issue
Block a user