/
opt
/
canhelp
/
node_modules
/
better-auth
/
dist
/
db
/
/opt/canhelp/node_modules/better-auth/dist/db
mkdir
upload
Name
Size
Mode
Actions
adapter-base.d.mts
425
0644
edit
dl
rm
adapter-base.mjs
994
0644
edit
dl
rm
adapter-base.mjs.map
2020
0644
edit
dl
rm
adapter-kysely.d.mts
328
0644
edit
dl
rm
adapter-kysely.mjs
846
0644
edit
dl
rm
adapter-kysely.mjs.map
1501
0644
edit
dl
rm
field-converter.d.mts
444
0644
edit
dl
rm
field-converter.mjs
627
0644
edit
dl
rm
field-converter.mjs.map
1423
0644
edit
dl
rm
field.d.mts
3703
0644
edit
dl
rm
get-migration.d.mts
804
0644
edit
dl
rm
get-migration.mjs
12311
0644
edit
dl
rm
get-migration.mjs.map
26016
0644
edit
dl
rm
get-schema.d.mts
359
0644
edit
dl
rm
get-schema.mjs
996
0644
edit
dl
rm
get-schema.mjs.map
2029
0644
edit
dl
rm
index.d.mts
1215
0644
edit
dl
rm
index.mjs
1830
0644
edit
dl
rm
index.mjs.map
385
0644
edit
dl
rm
internal-adapter.d.mts
639
0644
edit
dl
rm
internal-adapter.mjs
21762
0644
edit
dl
rm
internal-adapter.mjs.map
51002
0644
edit
dl
rm
schema.d.mts
2586
0644
edit
dl
rm
schema.mjs
4983
0644
edit
dl
rm
schema.mjs.map
10377
0644
edit
dl
rm
to-zod.d.mts
1583
0644
edit
dl
rm
to-zod.mjs
865
0644
edit
dl
rm
to-zod.mjs.map
3401
0644
edit
dl
rm
verification-token-storage.mjs
1084
0644
edit
dl
rm
verification-token-storage.mjs.map
2179
0644
edit
dl
rm
with-hooks.d.mts
1730
0644
edit
dl
rm
with-hooks.mjs
7140
0644
edit
dl
rm
with-hooks.mjs.map
16287
0644
edit
dl
rm
Edit:
/opt/canhelp/node_modules/better-auth/dist/db/with-hooks.mjs
(7140B)
import { getCurrentAdapter, getCurrentAuthContext, queueAfterTransactionHook } from "@better-auth/core/context"; import { ATTR_CONTEXT, ATTR_DB_COLLECTION_NAME, ATTR_HOOK_TYPE, withSpan } from "@better-auth/core/instrumentation"; //#region src/db/with-hooks.ts function getWithHooks(adapter, ctx) { const hooksEntries = ctx.hooks; async function createWithHooks(data, model, customCreateFn) { const context = await getCurrentAuthContext().catch(() => null); let actualData = data; for (const { source, hooks } of hooksEntries) { const toRun = hooks[model]?.create?.before; if (toRun) { const result = await withSpan(`db create.before ${model}`, { [ATTR_HOOK_TYPE]: "create.before", [ATTR_DB_COLLECTION_NAME]: model, [ATTR_CONTEXT]: source }, () => toRun(actualData, context)); if (result === false) return null; if (typeof result === "object" && "data" in result) actualData = { ...actualData, ...result.data }; } } let created = null; if (!customCreateFn || customCreateFn.executeMainFn) created = await (await getCurrentAdapter(adapter)).create({ model, data: actualData, forceAllowId: true }); if (customCreateFn?.fn) created = await customCreateFn.fn(created ?? actualData); for (const { source, hooks } of hooksEntries) { const toRun = hooks[model]?.create?.after; if (toRun) await queueAfterTransactionHook(async () => { await withSpan(`db create.after ${model}`, { [ATTR_HOOK_TYPE]: "create.after", [ATTR_DB_COLLECTION_NAME]: model, [ATTR_CONTEXT]: source }, () => toRun(created, context)); }); } return created; } async function updateWithHooks(data, where, model, customUpdateFn) { const context = await getCurrentAuthContext().catch(() => null); let actualData = data; for (const { source, hooks } of hooksEntries) { const toRun = hooks[model]?.update?.before; if (toRun) { const result = await withSpan(`db update.before ${model}`, { [ATTR_HOOK_TYPE]: "update.before", [ATTR_DB_COLLECTION_NAME]: model, [ATTR_CONTEXT]: source }, () => toRun(data, context)); if (result === false) return null; if (typeof result === "object" && "data" in result) actualData = { ...actualData, ...result.data }; } } const customUpdated = customUpdateFn ? await customUpdateFn.fn(actualData) : null; const updated = !customUpdateFn || customUpdateFn.executeMainFn ? await (await getCurrentAdapter(adapter)).update({ model, update: actualData, where }) : customUpdated; for (const { source, hooks } of hooksEntries) { const toRun = hooks[model]?.update?.after; if (toRun) await queueAfterTransactionHook(async () => { await withSpan(`db update.after ${model}`, { [ATTR_HOOK_TYPE]: "update.after", [ATTR_DB_COLLECTION_NAME]: model, [ATTR_CONTEXT]: source }, () => toRun(updated, context)); }); } return updated; } async function updateManyWithHooks(data, where, model, customUpdateFn) { const context = await getCurrentAuthContext().catch(() => null); let actualData = data; for (const { source, hooks } of hooksEntries) { const toRun = hooks[model]?.update?.before; if (toRun) { const result = await withSpan(`db updateMany.before ${model}`, { [ATTR_HOOK_TYPE]: "updateMany.before", [ATTR_DB_COLLECTION_NAME]: model, [ATTR_CONTEXT]: source }, () => toRun(data, context)); if (result === false) return null; if (typeof result === "object" && "data" in result) actualData = { ...actualData, ...result.data }; } } const customUpdated = customUpdateFn ? await customUpdateFn.fn(actualData) : null; const updated = !customUpdateFn || customUpdateFn.executeMainFn ? await (await getCurrentAdapter(adapter)).updateMany({ model, update: actualData, where }) : customUpdated; for (const { source, hooks } of hooksEntries) { const toRun = hooks[model]?.update?.after; if (toRun) await queueAfterTransactionHook(async () => { await withSpan(`db updateMany.after ${model}`, { [ATTR_HOOK_TYPE]: "updateMany.after", [ATTR_DB_COLLECTION_NAME]: model, [ATTR_CONTEXT]: source }, () => toRun(updated, context)); }); } return updated; } async function deleteWithHooks(where, model, customDeleteFn) { const context = await getCurrentAuthContext().catch(() => null); let entityToDelete = null; try { entityToDelete = (await (await getCurrentAdapter(adapter)).findMany({ model, where, limit: 1 }))[0] || null; } catch {} if (entityToDelete) for (const { source, hooks } of hooksEntries) { const toRun = hooks[model]?.delete?.before; if (toRun) { if (await withSpan(`db delete.before ${model}`, { [ATTR_HOOK_TYPE]: "delete.before", [ATTR_DB_COLLECTION_NAME]: model, [ATTR_CONTEXT]: source }, () => toRun(entityToDelete, context)) === false) return null; } } const customDeleted = customDeleteFn ? await customDeleteFn.fn(where) : null; const deleted = (!customDeleteFn || customDeleteFn.executeMainFn) && entityToDelete ? await (await getCurrentAdapter(adapter)).delete({ model, where }) : customDeleted; if (entityToDelete) for (const { source, hooks } of hooksEntries) { const toRun = hooks[model]?.delete?.after; if (toRun) await queueAfterTransactionHook(async () => { await withSpan(`db delete.after ${model}`, { [ATTR_HOOK_TYPE]: "delete.after", [ATTR_DB_COLLECTION_NAME]: model, [ATTR_CONTEXT]: source }, () => toRun(entityToDelete, context)); }); } return deleted; } async function deleteManyWithHooks(where, model, customDeleteFn) { const context = await getCurrentAuthContext().catch(() => null); let entitiesToDelete = []; try { entitiesToDelete = await (await getCurrentAdapter(adapter)).findMany({ model, where }); } catch {} for (const entity of entitiesToDelete) for (const { source, hooks } of hooksEntries) { const toRun = hooks[model]?.delete?.before; if (toRun) { if (await withSpan(`db delete.before ${model}`, { [ATTR_HOOK_TYPE]: "delete.before", [ATTR_DB_COLLECTION_NAME]: model, [ATTR_CONTEXT]: source }, () => toRun(entity, context)) === false) return null; } } const customDeleted = customDeleteFn ? await customDeleteFn.fn(where) : null; const deleted = !customDeleteFn || customDeleteFn.executeMainFn ? await (await getCurrentAdapter(adapter)).deleteMany({ model, where }) : customDeleted; for (const entity of entitiesToDelete) for (const { source, hooks } of hooksEntries) { const toRun = hooks[model]?.delete?.after; if (toRun) await queueAfterTransactionHook(async () => { await withSpan(`db delete.after ${model}`, { [ATTR_HOOK_TYPE]: "delete.after", [ATTR_DB_COLLECTION_NAME]: model, [ATTR_CONTEXT]: source }, () => toRun(entity, context)); }); } return deleted; } return { createWithHooks, updateWithHooks, updateManyWithHooks, deleteWithHooks, deleteManyWithHooks }; } //#endregion export { getWithHooks }; //# sourceMappingURL=with-hooks.mjs.map
Save
cmd:
run