Files
speckle-server/packages/server/modules/shared/helpers/factory.ts
T
Kristaps Fabians Geikins 28b49107b7 feat(server): upgrade workspace seat type (#4158)
* feat(server): upgrade workspace seat type

* test/lint fixes
2025-03-11 12:41:18 +02:00

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