UNPKG

kysely

Version:
58 lines (57 loc) 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Log = exports.LOG_LEVELS = void 0; const object_utils_js_1 = require("./object-utils.js"); exports.LOG_LEVELS = (0, object_utils_js_1.freeze)(['query', 'error']); class Log { #levels; #logger; constructor(config) { if ((0, object_utils_js_1.isFunction)(config)) { this.#logger = config; this.#levels = (0, object_utils_js_1.freeze)({ query: true, error: true, }); } else { this.#logger = defaultLogger; this.#levels = (0, object_utils_js_1.freeze)({ query: config.includes('query'), error: config.includes('error'), }); } } isLevelEnabled(level) { return this.#levels[level]; } async query(getEvent) { if (this.#levels.query) { await this.#logger(getEvent()); } } async error(getEvent) { if (this.#levels.error) { await this.#logger(getEvent()); } } } exports.Log = Log; function defaultLogger(event) { if (event.level === 'query') { console.log(`kysely:query: ${event.query.sql}`); console.log(`kysely:query: duration: ${event.queryDurationMillis.toFixed(1)}ms`); } else if (event.level === 'error') { if (event.error instanceof Error) { console.error(`kysely:error: ${event.error.stack ?? event.error.message}`); } else { console.error(`kysely:error: ${JSON.stringify({ error: event.error, query: event.query.sql, queryDurationMillis: event.queryDurationMillis, })}`); } } }