28b49107b7
* feat(server): upgrade workspace seat type * test/lint fixes
19 lines
461 B
TypeScript
19 lines
461 B
TypeScript
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
export type Factory<
|
|
Deps extends object = any,
|
|
Args extends Array<any> = any,
|
|
ReturnType = any
|
|
> = (deps: Deps) => (...args: Args) => ReturnType
|
|
|
|
export type DependenciesOf<F extends Factory> = F extends Factory<infer Deps>
|
|
? Deps
|
|
: never
|
|
|
|
export type FactoryResultOf<F extends Factory> = F extends Factory<
|
|
any,
|
|
infer Args,
|
|
infer ReturnType
|
|
>
|
|
? (...args: Args) => ReturnType
|
|
: never
|