in packages/redux-dynamic-modules-saga/src/SagaExtension.ts [16:63]
export function getSagaExtension<C>(
sagaContext?: C,
onError?: (error: Error) => void
): IExtension {
let sagaMonitor = undefined;
//@ts-ignore
if (process.env.NODE_ENV === "development" && typeof window !== "undefined") {
sagaMonitor = window["__SAGA_MONITOR_EXTENSION__"] || undefined;
}
// Setup the saga middleware
let sagaMiddleware: SagaMiddleware<C> = createSagaMiddleware<any>({
context: sagaContext,
sagaMonitor,
onError,
});
let _sagaManager: IItemManager<
ISagaRegistration<any>
> = getRefCountedManager(getSagaManager(sagaMiddleware), sagaEquals);
return {
middleware: [sagaMiddleware],
onModuleManagerCreated: (moduleManager: IModuleManager) => {
if (sagaContext) {
sagaContext["moduleManager"] = moduleManager;
}
},
onModuleAdded: (module: ISagaModule<any>): void => {
if (module.sagas) {
_sagaManager.add(module.sagas);
}
},
onModuleRemoved: (module: ISagaModule<any>): void => {
if (module.sagas) {
_sagaManager.remove(module.sagas);
}
},
dispose: () => {
_sagaManager.dispose();
},
};
}