UNPKG

@aimee-blue/ab-service-kit

Version:
1 lines 2.49 kB
{"version":3,"sources":["../../src/setup/background.ts"],"names":["setupBackground","config","deps","useDefault","shouldUseDefaultBackgroundOperations","background","backgroundEpics","Promise","resolve","logger","epic","defaultBackground","result","pipe","subscription","subscribe","error","err","unsubscribe","noop"],"mappings":";;;;;;;AAAA;;AAOA;;AACA;;AACA;;AAEO,eAAeA,eAAf,CACLC,MADK,EAELC,IAFK,EAGqB;AAAA;;AAC1B,QAAMC,UAAU,4BAAGF,MAAM,CAACG,oCAAV,yEAAkD,IAAlE;;AACA,MAAIH,MAAM,CAACI,UAAP,IAAqBF,UAAzB,EAAqC;AAAA;;AACnC,UAAMG,eAAe,GAAG,oDAAOL,MAAM,CAACI,UAAd,wDAAO,yBAAAJ,MAAM,EAAcC,IAAd,CAAb,mEACtBK,OAAO,CAACC,OAAR,CAAgB,EAAhB,CADsB,CAAxB;AAGA,UAAMC,MAAM,GAAG,gCAAmB,EAAnB,EAAuBP,IAAI,CAACO,MAA5B,CAAf;AAEA,UAAMC,IAAI,GAAGP,UAAU,GACnB,kCAAqB,GAAGG,eAAxB,EAAyC,GAAGK,wBAA5C,CADmB,GAEnB,kCAAqB,GAAGL,eAAxB,CAFJ;AAIA,UAAMM,MAAM,GAAGF,IAAI,CAAC,6BAAD,EAAiB;AAAED,MAAAA;AAAF,KAAjB,CAAJ,CAAiCI,IAAjC,CAAsC,+BAAtC,CAAf;AAEA,UAAMC,YAAY,GAAGF,MAAM,CAACG,SAAP,CAAiB;AACpCC,MAAAA,KAAK,EAAEC,GAAG,IAAI;AACZ,mCAAcA,GAAd;AACAR,QAAAA,MAAM,CAACO,KAAP,CAAc,gDAAd,EAA+DC,GAA/D;AACD;AAJmC,KAAjB,CAArB;AAOA,WAAO,YAAY;AACjBH,MAAAA,YAAY,CAACI,WAAb;AACD,KAFD;AAGD,GAtBD,MAsBO;AACL,WAAOC,cAAP;AACD;AACF","sourcesContent":["import {\n IServiceConfig,\n registerError,\n mergeBackgroundEpics,\n ServiceDeps,\n createTaggedLogger,\n} from '../shared';\nimport { TeardownHandler, noop } from '../shared/teardown';\nimport { defaultBackground } from '../shared/epics';\nimport { fromEventBus, pushToEventBus } from '../shared/eventBus';\n\nexport async function setupBackground<D>(\n config: IServiceConfig<D>,\n deps: ServiceDeps<D>\n): Promise<TeardownHandler> {\n const useDefault = config.shouldUseDefaultBackgroundOperations ?? true;\n if (config.background || useDefault) {\n const backgroundEpics = await (config.background?.(deps) ??\n Promise.resolve([]));\n\n const logger = createTaggedLogger([], deps.logger);\n\n const epic = useDefault\n ? mergeBackgroundEpics(...backgroundEpics, ...defaultBackground)\n : mergeBackgroundEpics(...backgroundEpics);\n\n const result = epic(fromEventBus(), { logger }).pipe(pushToEventBus());\n\n const subscription = result.subscribe({\n error: err => {\n registerError(err);\n logger.error(`💥 CRITICAL! Background operations has failed`, err);\n },\n });\n\n return async () => {\n subscription.unsubscribe();\n };\n } else {\n return noop;\n }\n}\n"],"file":"background.js"}