MCPcopy
hub / github.com/prisma/prisma / bindTransaction

Function bindTransaction

packages/driver-adapter-utils/src/binder.ts:115–139  ·  view source on GitHub ↗
(errorRegistry: ErrorRegistryInternal, transaction: Transaction)

Source from the content-addressed store, hash-verified

113// *.bind(transaction) is required to preserve the `this` context of functions whose
114// execution is delegated to napi.rs.
115const bindTransaction = (errorRegistry: ErrorRegistryInternal, transaction: Transaction): ErrorCapturingTransaction => {
116 const boundTransaction: ErrorCapturingTransaction = {
117 adapterName: transaction.adapterName,
118 provider: transaction.provider,
119 options: transaction.options,
120 queryRaw: wrapAsync(errorRegistry, transaction.queryRaw.bind(transaction)),
121 executeRaw: wrapAsync(errorRegistry, transaction.executeRaw.bind(transaction)),
122 commit: wrapAsync(errorRegistry, transaction.commit.bind(transaction)),
123 rollback: wrapAsync(errorRegistry, transaction.rollback.bind(transaction)),
124 }
125
126 if (transaction.createSavepoint) {
127 boundTransaction.createSavepoint = wrapAsync(errorRegistry, transaction.createSavepoint.bind(transaction))
128 }
129
130 if (transaction.rollbackToSavepoint) {
131 boundTransaction.rollbackToSavepoint = wrapAsync(errorRegistry, transaction.rollbackToSavepoint.bind(transaction))
132 }
133
134 if (transaction.releaseSavepoint) {
135 boundTransaction.releaseSavepoint = wrapAsync(errorRegistry, transaction.releaseSavepoint.bind(transaction))
136 }
137
138 return boundTransaction
139}
140
141function wrapAsync<A extends unknown[], R>(
142 registry: ErrorRegistryInternal,

Callers 1

bindAdapterFunction · 0.85

Calls 1

wrapAsyncFunction · 0.85

Tested by

no test coverage detected