diff --git a/src/database/rawExecute.ts b/src/database/rawExecute.ts index 4d59156..4715126 100644 --- a/src/database/rawExecute.ts +++ b/src/database/rawExecute.ts @@ -5,6 +5,7 @@ import { parseResponse } from '../utils/parseResponse'; import { executeType, parseExecute } from '../utils/parseExecute'; import { scheduleTick } from '../utils/scheduleTick'; import { isServerConnected, waitForConnection } from '../database'; +import { setCallback } from '../utils/setCallback' export const rawExecute = async ( invokingResource: string, @@ -25,7 +26,9 @@ export const rawExecute = async ( const type = executeType(query); const placeholders = query.split('?').length - 1; - parameters = parameters ? parseExecute(placeholders, parameters) : []; + + cb = setCallback(parameters, cb); + parameters = parseExecute(placeholders, parameters); if (!isServerConnected) await waitForConnection(); diff --git a/src/database/rawQuery.ts b/src/database/rawQuery.ts index 22dc89a..5c603c8 100644 --- a/src/database/rawQuery.ts +++ b/src/database/rawQuery.ts @@ -1,5 +1,6 @@ import { pool, isServerConnected, waitForConnection } from '.'; import { parseArguments } from '../utils/parseArguments'; +import { setCallback } from '../utils/setCallback'; import { parseResponse } from '../utils/parseResponse'; import { logQuery, printError, runProfiler } from '../logger'; import type { CFXCallback, CFXParameters } from '../types'; @@ -24,7 +25,8 @@ export const rawQuery = async ( `Expected query to be a string but received ${typeof query} instead.` ); - [query, parameters, cb] = parseArguments(invokingResource, query, parameters, cb); + cb = setCallback(parameters, cb); + [query, parameters] = parseArguments(invokingResource, query, parameters); if (!isServerConnected) await waitForConnection(); diff --git a/src/database/rawTransaction.ts b/src/database/rawTransaction.ts index 3b4c713..7dcbf13 100644 --- a/src/database/rawTransaction.ts +++ b/src/database/rawTransaction.ts @@ -3,6 +3,7 @@ import { printError, profileBatchStatements, runProfiler } from '../logger'; import { CFXCallback, CFXParameters, TransactionQuery } from '../types'; import { parseTransaction } from '../utils/parseTransaction'; import { scheduleTick } from '../utils/scheduleTick'; +import { setCallback } from '../utils/setCallback'; const transactionError = (queries: { query: string; params?: CFXParameters }[], parameters: CFXParameters) => { `${queries.map((query) => `${query.query} ${JSON.stringify(query.params || [])}`).join('\n')}\n${JSON.stringify( @@ -14,14 +15,15 @@ export const rawTransaction = async ( invokingResource: string, queries: TransactionQuery, parameters: CFXParameters, - callback?: CFXCallback, + cb?: CFXCallback, isPromise?: boolean ) => { if (!isServerConnected) await waitForConnection(); scheduleTick(); - const { transactions, cb } = parseTransaction(invokingResource, queries, parameters, callback); + cb = setCallback(parameters, cb); + const transactions = parseTransaction(invokingResource, queries, parameters); const connection = await pool.getConnection(); const hasProfiler = await runProfiler(connection, invokingResource); let response = false;