From a3fcfdced845b123774e3c48ac56e4ee6fc02aa0 Mon Sep 17 00:00:00 2001 From: bholmesdev Date: Thu, 29 Feb 2024 18:10:38 -0500 Subject: [PATCH] chore: remove db.batch() for now --- packages/db/src/runtime/db-client.ts | 61 +--------------------------- 1 file changed, 2 insertions(+), 59 deletions(-) diff --git a/packages/db/src/runtime/db-client.ts b/packages/db/src/runtime/db-client.ts index 48e7dc3f0d..5e4e43a727 100644 --- a/packages/db/src/runtime/db-client.ts +++ b/packages/db/src/runtime/db-client.ts @@ -3,7 +3,6 @@ import { createClient } from '@libsql/client'; import type { LibSQLDatabase } from 'drizzle-orm/libsql'; import { drizzle as drizzleLibsql } from 'drizzle-orm/libsql'; import { drizzle as drizzleProxy } from 'drizzle-orm/sqlite-proxy'; -import { AsyncLocalStorage } from 'node:async_hooks'; import { z } from 'zod'; const isWebContainer = !!process.versions?.webcontainer; @@ -77,64 +76,8 @@ export function createRemoteDatabaseClient(appToken: string, remoteDbURL: string return { rows: rowValues }; }); - const batchContext = new AsyncLocalStorage<{ queries: InStatement[] }>(); - (db as any).batch = (drizzleQueries: Array>) => { - return batchContext.run({ queries: [] }, async () => { - await Promise.all(drizzleQueries); - - const { queries } = batchContext.getStore()!; - const res = await fetch(url, { - method: 'POST', - headers: { - Authorization: `Bearer ${appToken}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify(queries), - }); - if (!res.ok) { - throw new Error( - `Failed to execute batch queries.\nFull error: ${res.status} ${await res.text()}}` - ); - } - - const queryResultSchema = z.array( - z.object({ - columns: z.array(z.string()), - columnTypes: z.array(z.string()), - rows: z.array(z.array(z.unknown())), - rowsAffected: z.number(), - lastInsertRowid: z.unknown().optional(), - }) - ); - - try { - const json = await res.json(); - const rawResults = queryResultSchema.parse(json); - let results: unknown[] = []; - for (const rawResult of rawResults) { - const ignoreReturning = rawResult.rows.length === 0 && rawResult.rowsAffected > 0; - if (ignoreReturning) { - results.push(rawResult); - continue; - } - const rows = rawResult.rows.map((row) => { - let obj: Record = {}; - for (const [idx, column] of rawResult.columns.entries()) { - obj[column] = row[idx]; - } - return obj; - }); - results.push(rows); - } - return results; - } catch (e) { - throw new Error( - `Failed to execute batch queries.\nFull error: Unexpected JSON response. ${ - e instanceof Error ? e.message : String(e) - }` - ); - } - }); + (db as any).batch = (_drizzleQueries: Array>) => { + throw new Error('db.batch() is not currently supported.'); }; return db; }