1import type { Knex } from 'knex'2import { genContext } from "../genContextF.mts";3import { assertDefined } from "../../sharedF/assertsF/assertDefinedF.mts";4import type { DbHandles } from './dbTypesF.mts'6export const dbCtx = genContext<DbHandles>('dbCtx')8/**9 * Per-request AsyncLocalStorage for DataLoaders. Entered alongside dbCtx in10 * withDb so all resolvers within a GraphQL request share loader instances.11 * Populated lazily by getVideoSourceLoader/getImmutablesLoader/getSvesLoader12 * in stor2core.13 */14export const loadersCtx = genContext<Record<string, unknown>>('loadersCtx')17 const ret = dbCtx.getStore()18 assertDefined(ret)19 return ret20}22export const getReqKnex = (): Knex => {23 const {db} = getDb()24 assertDefined(db)25 return db as Knex26}