{"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,MAAOC,CAAAA,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,MAAS,GAAA,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;AAEUC,IAAAA,mBAAAA,CAAoBC,IAAO,EAAoB;QACvD,OAAO;YACLC,KAAO,EAAA;gBAAEC,IAAM,EAAA;oBAAEC,SAAW,EAAA,CAAA;oBAAGC,OAAS,EAAA,CAAA;oBAAGC,WAAa,EAAA;AAAE;AAAE,aAAA;AAC5DL,YAAAA;AACF,SAAA;AACF;IAvBA,WAAsBM,CAAAA,iBAAoC,EAAEC,YAA0B,CAAE;QACtF,IAAI,CAACX,kBAAkB,GAAGU,iBAAAA;QAC1B,IAAI,CAACZ,aAAa,GAAGa,YAAAA;AACvB;AAqBF;;;;"}