diff --git a/package-lock.json b/package-lock.json index eba6c27..9ec0920 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "clipanion": "^4.0.0-rc.4", "slonik": "^46.0.0", + "slonik-interceptor-query-logging": "^47.3.2", "typanion": "^3.14.0" }, "bin": { @@ -1052,6 +1053,14 @@ "typanion": "*" } }, + "node_modules/crack-json": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/crack-json/-/crack-json-1.3.0.tgz", + "integrity": "sha512-JfZ9NPLsU9ejTYgZ7fM+5TIMfTwROTxpi2Twh597GxmiVDwIGZSjaor+zsQBKZ0mmCKOFb9EZZLVeKNf/5UaGg==", + "engines": { + "node": ">=8.0" + } + }, "node_modules/dotenv": { "version": "16.6.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", @@ -1226,6 +1235,14 @@ "https://opencollective.com/debug" ] }, + "node_modules/parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "engines": { + "node": ">=6" + } + }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -1501,6 +1518,20 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dependencies": { + "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/roarr": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/roarr/-/roarr-7.21.4.tgz", @@ -1616,6 +1647,22 @@ "zod": "^3" } }, + "node_modules/slonik-interceptor-query-logging": { + "version": "47.3.2", + "resolved": "https://registry.npmjs.org/slonik-interceptor-query-logging/-/slonik-interceptor-query-logging-47.3.2.tgz", + "integrity": "sha512-S9foYyUWznBBJ1mI21p4zl0cyoETWTlgW7POSlhE6ymwzUGBfA6JZsr9ehppWp9WBzOqQG7GW/I5a6sqwRZ1Eg==", + "dependencies": { + "crack-json": "^1.3.0", + "pretty-ms": "^7.0.1", + "serialize-error": "^8.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "slonik": ">=45.0.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", diff --git a/package.json b/package.json index c9c3362..f1b06e9 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "dependencies": { "clipanion": "^4.0.0-rc.4", "slonik": "^46.0.0", + "slonik-interceptor-query-logging": "^47.3.2", "typanion": "^3.14.0" }, "devDependencies": { diff --git a/src/pgslice.ts b/src/pgslice.ts index d019c5b..62848ce 100644 --- a/src/pgslice.ts +++ b/src/pgslice.ts @@ -5,6 +5,7 @@ import { DatabaseTransactionConnection, type DatabasePool, } from "slonik"; +import { createQueryLoggingInterceptor } from "slonik-interceptor-query-logging"; import type { AddPartitionsOptions, @@ -72,6 +73,8 @@ export class Pgslice { // Never retry queries. queryRetryLimit: 0, + + interceptors: [createQueryLoggingInterceptor()], }); const instance = new Pgslice(pool, options); return instance;