diff --git a/src/lib/normalize-statement.ts b/src/lib/normalize-statement.ts index 400489d..7408968 100644 --- a/src/lib/normalize-statement.ts +++ b/src/lib/normalize-statement.ts @@ -1,4 +1,3 @@ -import { isSQLWrapper } from 'drizzle-orm'; import type { RunnableQuery as DrizzleQuery } from 'drizzle-orm/runnable-query'; import type { SqliteRemoteResult } from 'drizzle-orm/sqlite-proxy'; import type { StatementInput, Statement } from '../types.js'; @@ -10,7 +9,12 @@ function isDrizzleStatement( Result extends SqliteRemoteResult ? any : Result[], 'sqlite' > { - return isSQLWrapper(statement); + return ( + typeof statement === 'object' && + statement !== null && + 'getSQL' in statement && + typeof statement.getSQL === 'function' + ); } function isStatement(statement: unknown): statement is Statement { @@ -29,15 +33,16 @@ export function normalizeStatement(statement: StatementInput): Statement { } if (isDrizzleStatement(statement)) { - if ('toSQL' in statement && typeof statement.toSQL === 'function') { + try { + if (!('toSQL' in statement && typeof statement.toSQL === 'function')) { + throw 1; + } const drizzleStatement = statement.toSQL(); - - if (isStatement(drizzleStatement)) { - return drizzleStatement; - } else { - throw new Error('The passed Drizzle statement could not be parsed.'); + if (!isStatement(drizzleStatement)) { + throw 2; } - } else { + return drizzleStatement; + } catch { throw new Error('The passed statement could not be parsed.'); } }