UNPKG

@aimee-blue/ab-service-kit

Version:
1 lines 3.19 kB
{"version":3,"sources":["../../src/setup/index.ts"],"names":["buildDeps","config","logger","d","Promise","resolve","deps","Object","assign","serviceSetup","server","params","spy","background","app","ws","mode","shouldLoadEnvFiles","envFile","reset"],"mappings":";;;;;;;AAQA;;AACA;;AACA;;AACA;;AACA;;AAGA,eAAeA,SAAf,CACEC,MADF,EAEEC,MAFF,EAG2B;AAAA;;AACzB,QAAMC,CAAS,GAAG,kDAAOF,MAAM,CAACD,SAAd,uDAAO,wBAAAC,MAAM,CAAb,iEAA+BG,OAAO,CAACC,OAAR,CAAgB,EAAhB,CAA/B,CAAlB;AACA,QAAMC,IAAI,GAAGC,MAAM,CAACC,MAAP,CACX;AACEN,IAAAA;AADF,GADW,EAIXC,CAJW,CAAb;AAMA,SAAOG,IAAP;AACD;;AAEM,eAAeG,YAAf,CACLC,MADK,EAELT,MAFK,EAGLU,MAHK,EAILT,MAJK,EAKqB;AAC1B,QAAMI,IAAI,GAAG,MAAMN,SAAS,CAACC,MAAD,EAASC,MAAT,CAA5B;AAEA,QAAMU,GAAG,GAAG,MAAM,mBAASX,MAAT,EAAiBK,IAAjB,CAAlB;AACA,QAAMO,UAAU,GAAG,MAAM,iCAAgBZ,MAAhB,EAAwBK,IAAxB,CAAzB;AACA,QAAMQ,GAAG,GAAG,MAAM,2BAAaJ,MAAb,EAAqBT,MAArB,EAA6BK,IAA7B,CAAlB;AACA,QAAMS,EAAE,GAAG,MAAM,2BAAaL,MAAb,EAAqBT,MAArB,EAA6BK,IAA7B,CAAjB;AAEA,SAAO,MAAMU,IAAN,IAAc;AACnB,UAAMD,EAAE,CAACC,IAAD,CAAR;AACA,UAAMF,GAAG,CAACE,IAAD,CAAT;AACA,UAAMH,UAAU,CAACG,IAAD,CAAhB;AACA,UAAMJ,GAAG,CAACI,IAAD,CAAT;;AAEA,QAAIA,IAAI,KAAK,YAAb,EAA2B;AACzB,YAAMC,kBAAkB,GACtB,OAAOhB,MAAM,CAACgB,kBAAd,KAAqC,SAArC,GACIhB,MAAM,CAACgB,kBADX,GAEI,IAHN;;AAKA,UAAIA,kBAAJ,EAAwB;AACtB,cAAM,kBAAQ;AACZC,UAAAA,OAAO,EAAEP,MAAM,CAACO,OADJ;AAEZC,UAAAA,KAAK,EAAE,IAFK;AAGZjB,UAAAA;AAHY,SAAR,CAAN;AAKD;AACF;AACF,GApBD;AAqBD","sourcesContent":["import * as http from 'http';\nimport * as https from 'https';\nimport {\n IServiceConfig,\n ICommandLineArgs,\n BasicLogger,\n ServiceDeps,\n} from '../shared';\nimport { setupSockets } from './sockets';\nimport { setupExpress } from './express';\nimport { setupSpy } from './spy';\nimport { loadEnv } from '../shared/env';\nimport { setupBackground } from './background';\nimport { TeardownHandler } from '../shared/teardown';\n\nasync function buildDeps<D extends Record<string, unknown>>(\n config: IServiceConfig<D>,\n logger: BasicLogger\n): Promise<ServiceDeps<D>> {\n const d: D | {} = await (config.buildDeps?.() ?? Promise.resolve({}));\n const deps = Object.assign(\n {\n logger,\n },\n d\n );\n return deps as ServiceDeps<D>;\n}\n\nexport async function serviceSetup<D extends Record<string, unknown> = {}>(\n server: http.Server | https.Server,\n config: IServiceConfig<D>,\n params: ICommandLineArgs,\n logger: BasicLogger\n): Promise<TeardownHandler> {\n const deps = await buildDeps(config, logger);\n\n const spy = await setupSpy(config, deps);\n const background = await setupBackground(config, deps);\n const app = await setupExpress(server, config, deps);\n const ws = await setupSockets(server, config, deps);\n\n return async mode => {\n await ws(mode);\n await app(mode);\n await background(mode);\n await spy(mode);\n\n if (mode === 'watch-mode') {\n const shouldLoadEnvFiles =\n typeof config.shouldLoadEnvFiles === 'boolean'\n ? config.shouldLoadEnvFiles\n : true;\n\n if (shouldLoadEnvFiles) {\n await loadEnv({\n envFile: params.envFile,\n reset: true,\n logger,\n });\n }\n }\n };\n}\n"],"file":"index.js"}