3import type { Kysely, Transaction } from 'kysely' 8export const kyselyEnabledCtx = genContext<{enabled: boolean}>('kyselyEnabled') 10export const wrapKyselyTransact = async <T,>(fnc: () => Promise<T>): Promise<T> => { 12 return await (dbKys as Kysely<unknown>).transaction().execute(async (trx) => { 13 return await kyselyTransactCtx.run({dbKys: trx}, fnc) 17export const getTransactOrDbKys = <DB,>(): Kysely<DB> | Transaction<DB> => { 18 const transCtx = kyselyTransactCtx.getStore() 19 if (transCtx) return transCtx.dbKys as Transaction<DB> 20 return getDb().dbKys as Kysely<DB> 23export const getReqKyselyTransact = <DB,>(): Kysely<DB> => { 24 const store = kyselyTransactCtx.getStore() 26 return store.dbKys as Kysely<DB>