Files
Kristaps Fabians Geikins 4b06f42db7 chore(server): run TS files directly (no compilation) (#5134)
* sort of works

* type fixes

* added option to run old way too
2025-07-23 11:20:40 +02:00

22 lines
731 B
TypeScript

import type { RequestDataLoaders } from '@/modules/core/loaders'
import type { MaybeAsync } from '@speckle/shared'
import type { 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()
}