Files
speckle-server/packages/server/modules/loaders.ts
T
Kristaps Fabians Geikins b406d0e32d chore(server): node16 & export maps support for server (#4698)
* chore(server): node16 & export maps support for server

* moar cleanup

* lint fixc
2025-05-12 14:27:34 +03:00

22 lines
716 B
TypeScript

import { RequestDataLoaders } from '@/modules/core/loaders'
import { MaybeAsync } from '@speckle/shared'
import { AuthCheckContextLoaders } from '@speckle/shared/authz'
export type ServerLoadersContext = {
dataLoaders: RequestDataLoaders
}
// Inject extra argument to all loaders, e.g. for GQL dataloaders
export type ServerLoaders = Partial<{
[K in keyof AuthCheckContextLoaders]: AuthCheckContextLoaders[K] extends (
...args: infer A
) => infer R
? (...args: [...A, ctx: ServerLoadersContext]) => R
: never
}>
// define being an arg simplifes usage in export default calls
export const defineModuleLoaders = (define: () => MaybeAsync<ServerLoaders>) => {
return async () => await define()
}