diff --git a/packages/backend-plugin-api/src/services/system/types.ts b/packages/backend-plugin-api/src/services/system/types.ts index 4a9f91541a..579d7abaab 100644 --- a/packages/backend-plugin-api/src/services/system/types.ts +++ b/packages/backend-plugin-api/src/services/system/types.ts @@ -112,19 +112,13 @@ export function createServiceRef(options: { }; } -type OnlyRootScopeDependencies< - TDeps extends { [key in string]: ServiceRef }, -> = Pick< - TDeps, - { - [name in keyof TDeps]: TDeps[name]['scope'] extends 'root' ? name : never; - }[keyof TDeps] ->; - -type DependencyRefsToInstances< +type ServiceRefsToInstances< T extends { [key in string]: ServiceRef }, + TScope extends 'root' | 'plugin' = 'root' | 'plugin', > = { - [key in keyof T]: T[key] extends ServiceRef ? TImpl : never; + [key in keyof T]: T[key] extends ServiceRef + ? TImpl + : never; }; /** @@ -140,11 +134,11 @@ export function createServiceFactory< service: ServiceRef; deps: TDeps; factory( - deps: DependencyRefsToInstances>, + deps: ServiceRefsToInstances, options: TOpts, ): TScope extends 'root' ? Promise - : Promise<(deps: DependencyRefsToInstances) => Promise>; + : Promise<(deps: ServiceRefsToInstances) => Promise>; }): undefined extends TOpts ? (options?: TOpts) => ServiceFactory : (options: TOpts) => ServiceFactory { @@ -153,9 +147,7 @@ export function createServiceFactory< scope: config.service.scope, service: config.service, deps: config.deps, - factory( - deps: DependencyRefsToInstances>, - ) { + factory(deps: ServiceRefsToInstances) { return config.factory(deps, options!); }, } as ServiceFactory);