@tsed/platform-http
Version:
A TypeScript Framework on top of Express
25 lines (24 loc) • 816 B
JavaScript
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;
}