Skip to content

DepsFromModules type

Home > @rimitive/core > DepsFromModules

Convert a tuple of modules to an object type with module names as keys and implementations as values.

Signature:

export type DepsFromModules<T extends readonly AnyModule[]> = T extends readonly [] ? Record<string, never> : {
[M in T[number] as ModuleName<M>]: ModuleImpl<M>;
};

References: AnyModule, ModuleName, ModuleImpl

type Deps = DepsFromModules<[typeof LoggerModule, typeof DatabaseModule]>;
// { logger: LoggerImpl, database: DatabaseImpl }