/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ import type { Injectable, TentativeTuple } from "@ogre-tools/injectable"; import { getLegacyGlobalDiForExtensionApi } from "./legacy-global-di-for-extension-api"; type FactoryType = < TInjectable extends Injectable, TInstantiationParameter, TInstance extends (...args: unknown[]) => any, TFunction extends (...args: unknown[]) => any = Awaited< ReturnType >, >( injectableKey: TInjectable, ...instantiationParameter: TentativeTuple ) => (...args: Parameters) => ReturnType; export const asLegacyGlobalFunctionForExtensionApi: FactoryType = (injectableKey, ...instantiationParameter) => (...args) => { const injected = getLegacyGlobalDiForExtensionApi().inject( injectableKey, ...instantiationParameter, ); return injected(...args); };