export async function runWithDB<T>(
context: unstable_RouterContextProvider,
callback: (db: PostgresJsDatabase) => Promise<T>
): Promise<T> {
const { HYPERDRIVE } = getBindings(context);
const sql = postgres(HYPERDRIVE.connectionString, {
prepare: false,
max: 5,
fetch_types: false,
idle_timeout: 5,
connect_timeout: 5,
max_lifetime: 60,
});
try {
const db = drizzlePostgresJs(sql);
const result = await callback(db);
return result;
} catch (err) {
console.log('err', err);
throw err;
} finally {
const ctx = await getExecutionContext(context);
ctx.waitUntil(sql.end());
}
}
export async function runWithDB<T>(
context: unstable_RouterContextProvider,
callback: (db: PostgresJsDatabase) => Promise<T>
): Promise<T> {
const { HYPERDRIVE } = getBindings(context);
const sql = postgres(HYPERDRIVE.connectionString, {
prepare: false,
max: 5,
fetch_types: false,
idle_timeout: 5,
connect_timeout: 5,
max_lifetime: 60,
});
try {
const db = drizzlePostgresJs(sql);
const result = await callback(db);
return result;
} catch (err) {
console.log('err', err);
throw err;
} finally {
const ctx = await getExecutionContext(context);
ctx.waitUntil(sql.end());
}
}