UNPKG

sqlocal

Version:

SQLocal makes it easy to run SQLite3 in the browser, backed by the origin private file system.

44 lines 1.38 kB
import { sqlTag } from './sql-tag.js'; function isDrizzleStatement(statement) { return (typeof statement === 'object' && statement !== null && 'getSQL' in statement && typeof statement.getSQL === 'function'); } function isStatement(statement) { return (typeof statement === 'object' && statement !== null && 'sql' in statement === true && typeof statement.sql === 'string' && 'params' in statement === true); } export function normalizeStatement(statement) { if (typeof statement === 'function') { statement = statement(sqlTag); } if (isDrizzleStatement(statement)) { try { if (!('toSQL' in statement && typeof statement.toSQL === 'function')) { throw 1; } const drizzleStatement = statement.toSQL(); if (!isStatement(drizzleStatement)) { throw 2; } return drizzleStatement; } catch { throw new Error('The passed statement could not be parsed.'); } } const sql = statement.sql; let params = []; if ('params' in statement) { params = statement.params; } else if ('parameters' in statement) { params = statement.parameters; } return { sql, params }; } //# sourceMappingURL=normalize-statement.js.map