UNPKG

@tsed/platform-http

Version:
25 lines (24 loc) 816 B
import { GlobalProviders, injector, refValue } from "@tsed/di"; import { PlatformAdapter } from "../services/PlatformAdapter.js"; const ADAPTER = "platform.adapter"; let globalAdapter; export function adapter(adapter, imports = []) { const ref = refValue(ADAPTER); if (adapter) { globalAdapter ||= adapter; imports?.forEach(({ token, useClass }) => { const provider = GlobalProviders.get(token); if (useClass && provider) { provider.useClass = useClass; injector().set(token, provider); } }); injector() .addProvider(PlatformAdapter, { useClass: adapter }) .alias(PlatformAdapter, "PlatformAdapter"); } ref.value ||= globalAdapter; return ref.value; }