UNPKG

@paroicms/internal-server-lib

Version:

Common utilitaries for the paroicms server.

47 lines 1.54 kB
export function createSqlLogger({ logger, dbSchemaName, }) { let debugCount = 0; const knexLogger = { debug(message) { if (debugCount <= 0) return; --debugCount; logger.debug(`[${dbSchemaName}] ${formatSqlQuery(message.sql)}${message.bindings ? ` with bindings: ${message.bindings.map(parameterToString).join(", ")}` : ""}`); }, error(message) { logger.error(`[${dbSchemaName}] sql error:`, message); }, warn(message) { logger.warn(`[${dbSchemaName}] sql warning:`, message); }, deprecate(method, alternative) { logger.warn(`[${dbSchemaName}] deprecated method ${method}, use ${alternative} instead`); }, }; return { knexLogger, logNextQuery(count = 1) { debugCount += count; }, }; } function formatSqlQuery(sql) { return sql.replaceAll("`", ""); } function parameterToString(parameter) { if (parameter === undefined) return "undefined"; if (parameter === null) return "null"; const t = typeof parameter; if (t === "number" || t === "boolean" || t === "bigint") return parameter.toString(); if (t === "symbol") return parameter.toString(); if (t === "string") return JSON.stringify(parameter.length > 40 ? `${parameter.substring(0, 40)}…` : parameter); return t; // "object" or "function" } //# sourceMappingURL=sql-logger.js.map