{"version":3,"file":"abstract.mjs","sources":["../../../src/context/factories/abstract.ts"],"sourcesContent":["import type { RegistriesFactory } from '../../registries';\nimport type { TimerFactory } from '../../utils';\n\nimport type { Context, ContextFactory, ContextOutput, PartialContext } from '../types';\n\nexport abstract class AbstractContextFactory implements ContextFactory {\n private readonly _registriesFactory: RegistriesFactory;\n\n private readonly _timerFactory: TimerFactory;\n\n protected constructor(registriesFactory: RegistriesFactory, timerFactory: TimerFactory) {\n this._registriesFactory = registriesFactory;\n this._timerFactory = timerFactory;\n }\n\n public create(context: PartialContext, defaultValue: T): Context {\n const { strapi, routes } = context;\n\n // Allow overrides to share registries and timer in case the context is used in sub-assemblers\n const timer = context.timer ?? this._timerFactory.create();\n const registries = context.registries ?? this._registriesFactory.createAll();\n\n // Default output initialized with the given default value\n const output = this.createDefaultOutput(defaultValue);\n\n return { strapi, routes, timer, registries, output };\n }\n\n protected createDefaultOutput(data: T): ContextOutput {\n return {\n stats: { time: { startTime: 0, endTime: 0, elapsedTime: 0 } },\n data,\n };\n }\n}\n"],"names":["AbstractContextFactory","create","context","defaultValue","strapi","routes","timer","_timerFactory","registries","_registriesFactory","createAll","output","createDefaultOutput","data","stats","time","startTime","endTime","elapsedTime","registriesFactory","timerFactory"],"mappings":"AAKO,MAAeA,sBAAAA,CAAAA;IAUbC,MAAAA,CAAOC,OAA0B,EAAEC,YAAe,EAAc;AACrE,QAAA,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGH,OAAAA;;QAG3B,MAAMI,KAAAA,GAAQJ,QAAQI,KAAK,IAAI,IAAI,CAACC,aAAa,CAACN,MAAM,EAAA;QACxD,MAAMO,UAAAA,GAAaN,QAAQM,UAAU,IAAI,IAAI,CAACC,kBAAkB,CAACC,SAAS,EAAA;;AAG1E,QAAA,MAAMC,MAAAA,GAAS,IAAI,CAACC,mBAAmB,CAACT,YAAAA,CAAAA;QAExC,OAAO;AAAEC,YAAAA,MAAAA;AAAQC,YAAAA,MAAAA;AAAQC,YAAAA,KAAAA;AAAOE,YAAAA,UAAAA;AAAYG,YAAAA;AAAO,SAAA;AACrD,IAAA;AAEUC,IAAAA,mBAAAA,CAAoBC,IAAO,EAAoB;QACvD,OAAO;YACLC,KAAAA,EAAO;gBAAEC,IAAAA,EAAM;oBAAEC,SAAAA,EAAW,CAAA;oBAAGC,OAAAA,EAAS,CAAA;oBAAGC,WAAAA,EAAa;AAAE;AAAE,aAAA;AAC5DL,YAAAA;AACF,SAAA;AACF,IAAA;IAvBA,WAAA,CAAsBM,iBAAoC,EAAEC,YAA0B,CAAE;QACtF,IAAI,CAACX,kBAAkB,GAAGU,iBAAAA;QAC1B,IAAI,CAACZ,aAAa,GAAGa,YAAAA;AACvB,IAAA;AAqBF;;;;"}