drizzle-orm 0.43.1-b08434e → 0.43.1-e3d1c4f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/aws-data-api/pg/driver.cjs +7 -6
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.d.cts +4 -3
- package/aws-data-api/pg/driver.d.ts +4 -3
- package/aws-data-api/pg/driver.js +7 -6
- package/aws-data-api/pg/driver.js.map +1 -1
- package/aws-data-api/pg/session.cjs +26 -9
- package/aws-data-api/pg/session.cjs.map +1 -1
- package/aws-data-api/pg/session.d.cts +5 -4
- package/aws-data-api/pg/session.d.ts +5 -4
- package/aws-data-api/pg/session.js +26 -9
- package/aws-data-api/pg/session.js.map +1 -1
- package/better-sqlite3/driver.cjs.map +1 -1
- package/better-sqlite3/driver.d.cts +4 -3
- package/better-sqlite3/driver.d.ts +4 -3
- package/better-sqlite3/driver.js.map +1 -1
- package/better-sqlite3/session.cjs +5 -5
- package/better-sqlite3/session.cjs.map +1 -1
- package/better-sqlite3/session.d.cts +5 -5
- package/better-sqlite3/session.d.ts +5 -5
- package/better-sqlite3/session.js +5 -5
- package/better-sqlite3/session.js.map +1 -1
- package/bun-sql/driver.cjs +3 -2
- package/bun-sql/driver.cjs.map +1 -1
- package/bun-sql/driver.d.cts +4 -3
- package/bun-sql/driver.d.ts +4 -3
- package/bun-sql/driver.js +3 -2
- package/bun-sql/driver.js.map +1 -1
- package/bun-sql/session.cjs +20 -11
- package/bun-sql/session.cjs.map +1 -1
- package/bun-sql/session.d.cts +6 -5
- package/bun-sql/session.d.ts +6 -5
- package/bun-sql/session.js +20 -11
- package/bun-sql/session.js.map +1 -1
- package/bun-sqlite/driver.cjs.map +1 -1
- package/bun-sqlite/driver.d.cts +4 -3
- package/bun-sqlite/driver.d.ts +4 -3
- package/bun-sqlite/driver.js.map +1 -1
- package/bun-sqlite/session.cjs +5 -5
- package/bun-sqlite/session.cjs.map +1 -1
- package/bun-sqlite/session.d.cts +5 -5
- package/bun-sqlite/session.d.ts +5 -5
- package/bun-sqlite/session.js +5 -5
- package/bun-sqlite/session.js.map +1 -1
- package/column-builder.cjs.map +1 -1
- package/column-builder.d.cts +7 -2
- package/column-builder.d.ts +7 -2
- package/column-builder.js.map +1 -1
- package/column.cjs +2 -0
- package/column.cjs.map +1 -1
- package/column.d.cts +6 -0
- package/column.d.ts +6 -0
- package/column.js +2 -0
- package/column.js.map +1 -1
- package/d1/driver.cjs +3 -2
- package/d1/driver.cjs.map +1 -1
- package/d1/driver.d.cts +2 -1
- package/d1/driver.d.ts +2 -1
- package/d1/driver.js +3 -2
- package/d1/driver.js.map +1 -1
- package/d1/session.cjs +20 -11
- package/d1/session.cjs.map +1 -1
- package/d1/session.d.cts +8 -7
- package/d1/session.d.ts +8 -7
- package/d1/session.js +20 -11
- package/d1/session.js.map +1 -1
- package/durable-sqlite/driver.cjs.map +1 -1
- package/durable-sqlite/driver.d.cts +2 -1
- package/durable-sqlite/driver.d.ts +2 -1
- package/durable-sqlite/driver.js.map +1 -1
- package/durable-sqlite/session.cjs +5 -5
- package/durable-sqlite/session.cjs.map +1 -1
- package/durable-sqlite/session.d.cts +5 -5
- package/durable-sqlite/session.d.ts +5 -5
- package/durable-sqlite/session.js +5 -5
- package/durable-sqlite/session.js.map +1 -1
- package/expo-sqlite/driver.cjs.map +1 -1
- package/expo-sqlite/driver.d.cts +2 -1
- package/expo-sqlite/driver.d.ts +2 -1
- package/expo-sqlite/driver.js.map +1 -1
- package/expo-sqlite/session.cjs +5 -5
- package/expo-sqlite/session.cjs.map +1 -1
- package/expo-sqlite/session.d.cts +5 -5
- package/expo-sqlite/session.d.ts +5 -5
- package/expo-sqlite/session.js +5 -5
- package/expo-sqlite/session.js.map +1 -1
- package/extension-core/gel/index.cjs +33 -0
- package/extension-core/gel/index.cjs.map +1 -0
- package/extension-core/gel/index.d.cts +67 -0
- package/extension-core/gel/index.d.ts +67 -0
- package/extension-core/gel/index.js +9 -0
- package/extension-core/gel/index.js.map +1 -0
- package/extension-core/index.cjs +42 -0
- package/extension-core/index.cjs.map +1 -0
- package/extension-core/index.d.cts +9 -0
- package/extension-core/index.d.ts +9 -0
- package/extension-core/index.js +15 -0
- package/extension-core/index.js.map +1 -0
- package/extension-core/mysql/index.cjs +33 -0
- package/extension-core/mysql/index.cjs.map +1 -0
- package/extension-core/mysql/index.d.cts +69 -0
- package/extension-core/mysql/index.d.ts +69 -0
- package/extension-core/mysql/index.js +9 -0
- package/extension-core/mysql/index.js.map +1 -0
- package/extension-core/pg/index.cjs +33 -0
- package/extension-core/pg/index.cjs.map +1 -0
- package/extension-core/pg/index.d.cts +67 -0
- package/extension-core/pg/index.d.ts +67 -0
- package/extension-core/pg/index.js +9 -0
- package/extension-core/pg/index.js.map +1 -0
- package/extension-core/singlestore/index.cjs +33 -0
- package/extension-core/singlestore/index.cjs.map +1 -0
- package/extension-core/singlestore/index.d.cts +67 -0
- package/extension-core/singlestore/index.d.ts +67 -0
- package/extension-core/singlestore/index.js +9 -0
- package/extension-core/singlestore/index.js.map +1 -0
- package/extension-core/sqlite/index.cjs +33 -0
- package/extension-core/sqlite/index.cjs.map +1 -0
- package/extension-core/sqlite/index.d.cts +68 -0
- package/extension-core/sqlite/index.d.ts +68 -0
- package/extension-core/sqlite/index.js +9 -0
- package/extension-core/sqlite/index.js.map +1 -0
- package/extensions/hook/gel/index.cjs +47 -0
- package/extensions/hook/gel/index.cjs.map +1 -0
- package/extensions/hook/gel/index.d.cts +11 -0
- package/extensions/hook/gel/index.d.ts +11 -0
- package/extensions/hook/gel/index.js +22 -0
- package/extensions/hook/gel/index.js.map +1 -0
- package/extensions/hook/mysql/index.cjs +47 -0
- package/extensions/hook/mysql/index.cjs.map +1 -0
- package/extensions/hook/mysql/index.d.cts +11 -0
- package/extensions/hook/mysql/index.d.ts +11 -0
- package/extensions/hook/mysql/index.js +22 -0
- package/extensions/hook/mysql/index.js.map +1 -0
- package/extensions/hook/pg/index.cjs +47 -0
- package/extensions/hook/pg/index.cjs.map +1 -0
- package/extensions/hook/pg/index.d.cts +11 -0
- package/extensions/hook/pg/index.d.ts +11 -0
- package/extensions/hook/pg/index.js +22 -0
- package/extensions/hook/pg/index.js.map +1 -0
- package/extensions/hook/singlestore/index.cjs +47 -0
- package/extensions/hook/singlestore/index.cjs.map +1 -0
- package/extensions/hook/singlestore/index.d.cts +11 -0
- package/extensions/hook/singlestore/index.d.ts +11 -0
- package/extensions/hook/singlestore/index.js +22 -0
- package/extensions/hook/singlestore/index.js.map +1 -0
- package/extensions/hook/sqlite/index.cjs +47 -0
- package/extensions/hook/sqlite/index.cjs.map +1 -0
- package/extensions/hook/sqlite/index.d.cts +11 -0
- package/extensions/hook/sqlite/index.d.ts +11 -0
- package/extensions/hook/sqlite/index.js +22 -0
- package/extensions/hook/sqlite/index.js.map +1 -0
- package/extensions/s3-file/common.cjs +321 -0
- package/extensions/s3-file/common.cjs.map +1 -0
- package/extensions/s3-file/common.d.cts +88 -0
- package/extensions/s3-file/common.d.ts +88 -0
- package/extensions/s3-file/common.js +288 -0
- package/extensions/s3-file/common.js.map +1 -0
- package/extensions/s3-file/gel/column.cjs +124 -0
- package/extensions/s3-file/gel/column.cjs.map +1 -0
- package/extensions/s3-file/gel/column.d.cts +105 -0
- package/extensions/s3-file/gel/column.d.ts +105 -0
- package/extensions/s3-file/gel/column.js +103 -0
- package/extensions/s3-file/gel/column.js.map +1 -0
- package/extensions/s3-file/gel/extension.cjs +271 -0
- package/extensions/s3-file/gel/extension.cjs.map +1 -0
- package/extensions/s3-file/gel/extension.d.cts +18 -0
- package/extensions/s3-file/gel/extension.d.ts +18 -0
- package/extensions/s3-file/gel/extension.js +257 -0
- package/extensions/s3-file/gel/extension.js.map +1 -0
- package/extensions/s3-file/gel/index.cjs +25 -0
- package/extensions/s3-file/gel/index.cjs.map +1 -0
- package/extensions/s3-file/gel/index.d.cts +2 -0
- package/extensions/s3-file/gel/index.d.ts +2 -0
- package/extensions/s3-file/gel/index.js +3 -0
- package/extensions/s3-file/gel/index.js.map +1 -0
- package/extensions/s3-file/index.cjs +23 -0
- package/extensions/s3-file/index.cjs.map +1 -0
- package/extensions/s3-file/index.d.cts +1 -0
- package/extensions/s3-file/index.d.ts +1 -0
- package/extensions/s3-file/index.js +2 -0
- package/extensions/s3-file/index.js.map +1 -0
- package/extensions/s3-file/mysql/column.cjs +121 -0
- package/extensions/s3-file/mysql/column.cjs.map +1 -0
- package/extensions/s3-file/mysql/column.d.cts +63 -0
- package/extensions/s3-file/mysql/column.d.ts +63 -0
- package/extensions/s3-file/mysql/column.js +97 -0
- package/extensions/s3-file/mysql/column.js.map +1 -0
- package/extensions/s3-file/mysql/extension.cjs +250 -0
- package/extensions/s3-file/mysql/extension.cjs.map +1 -0
- package/extensions/s3-file/mysql/extension.d.cts +18 -0
- package/extensions/s3-file/mysql/extension.d.ts +18 -0
- package/extensions/s3-file/mysql/extension.js +236 -0
- package/extensions/s3-file/mysql/extension.js.map +1 -0
- package/extensions/s3-file/mysql/index.cjs +25 -0
- package/extensions/s3-file/mysql/index.cjs.map +1 -0
- package/extensions/s3-file/mysql/index.d.cts +2 -0
- package/extensions/s3-file/mysql/index.d.ts +2 -0
- package/extensions/s3-file/mysql/index.js +3 -0
- package/extensions/s3-file/mysql/index.js.map +1 -0
- package/extensions/s3-file/pg/column.cjs +124 -0
- package/extensions/s3-file/pg/column.cjs.map +1 -0
- package/extensions/s3-file/pg/column.d.cts +105 -0
- package/extensions/s3-file/pg/column.d.ts +105 -0
- package/extensions/s3-file/pg/column.js +103 -0
- package/extensions/s3-file/pg/column.js.map +1 -0
- package/extensions/s3-file/pg/extension.cjs +272 -0
- package/extensions/s3-file/pg/extension.cjs.map +1 -0
- package/extensions/s3-file/pg/extension.d.cts +18 -0
- package/extensions/s3-file/pg/extension.d.ts +18 -0
- package/extensions/s3-file/pg/extension.js +258 -0
- package/extensions/s3-file/pg/extension.js.map +1 -0
- package/extensions/s3-file/pg/index.cjs +25 -0
- package/extensions/s3-file/pg/index.cjs.map +1 -0
- package/extensions/s3-file/pg/index.d.cts +2 -0
- package/extensions/s3-file/pg/index.d.ts +2 -0
- package/extensions/s3-file/pg/index.js +3 -0
- package/extensions/s3-file/pg/index.js.map +1 -0
- package/extensions/s3-file/singlestore/column.cjs +121 -0
- package/extensions/s3-file/singlestore/column.cjs.map +1 -0
- package/extensions/s3-file/singlestore/column.d.cts +63 -0
- package/extensions/s3-file/singlestore/column.d.ts +63 -0
- package/extensions/s3-file/singlestore/column.js +97 -0
- package/extensions/s3-file/singlestore/column.js.map +1 -0
- package/extensions/s3-file/singlestore/extension.cjs +247 -0
- package/extensions/s3-file/singlestore/extension.cjs.map +1 -0
- package/extensions/s3-file/singlestore/extension.d.cts +18 -0
- package/extensions/s3-file/singlestore/extension.d.ts +18 -0
- package/extensions/s3-file/singlestore/extension.js +233 -0
- package/extensions/s3-file/singlestore/extension.js.map +1 -0
- package/extensions/s3-file/singlestore/index.cjs +25 -0
- package/extensions/s3-file/singlestore/index.cjs.map +1 -0
- package/extensions/s3-file/singlestore/index.d.cts +2 -0
- package/extensions/s3-file/singlestore/index.d.ts +2 -0
- package/extensions/s3-file/singlestore/index.js +3 -0
- package/extensions/s3-file/singlestore/index.js.map +1 -0
- package/extensions/s3-file/sqlite/column.cjs +121 -0
- package/extensions/s3-file/sqlite/column.cjs.map +1 -0
- package/extensions/s3-file/sqlite/column.d.cts +63 -0
- package/extensions/s3-file/sqlite/column.d.ts +63 -0
- package/extensions/s3-file/sqlite/column.js +97 -0
- package/extensions/s3-file/sqlite/column.js.map +1 -0
- package/extensions/s3-file/sqlite/extension.cjs +250 -0
- package/extensions/s3-file/sqlite/extension.cjs.map +1 -0
- package/extensions/s3-file/sqlite/extension.d.cts +18 -0
- package/extensions/s3-file/sqlite/extension.d.ts +18 -0
- package/extensions/s3-file/sqlite/extension.js +236 -0
- package/extensions/s3-file/sqlite/extension.js.map +1 -0
- package/extensions/s3-file/sqlite/index.cjs +25 -0
- package/extensions/s3-file/sqlite/index.cjs.map +1 -0
- package/extensions/s3-file/sqlite/index.d.cts +2 -0
- package/extensions/s3-file/sqlite/index.d.ts +2 -0
- package/extensions/s3-file/sqlite/index.js +3 -0
- package/extensions/s3-file/sqlite/index.js.map +1 -0
- package/gel/driver.cjs +6 -4
- package/gel/driver.cjs.map +1 -1
- package/gel/driver.d.cts +6 -4
- package/gel/driver.d.ts +6 -4
- package/gel/driver.js +6 -4
- package/gel/driver.js.map +1 -1
- package/gel/session.cjs +12 -9
- package/gel/session.cjs.map +1 -1
- package/gel/session.d.cts +5 -4
- package/gel/session.d.ts +5 -4
- package/gel/session.js +12 -9
- package/gel/session.js.map +1 -1
- package/gel-core/columns/common.cjs +8 -0
- package/gel-core/columns/common.cjs.map +1 -1
- package/gel-core/columns/common.d.cts +2 -0
- package/gel-core/columns/common.d.ts +2 -0
- package/gel-core/columns/common.js +8 -0
- package/gel-core/columns/common.js.map +1 -1
- package/gel-core/db.cjs +5 -3
- package/gel-core/db.cjs.map +1 -1
- package/gel-core/db.d.cts +3 -1
- package/gel-core/db.d.ts +3 -1
- package/gel-core/db.js +5 -3
- package/gel-core/db.js.map +1 -1
- package/gel-core/dialect.cjs +25 -19
- package/gel-core/dialect.cjs.map +1 -1
- package/gel-core/dialect.d.cts +7 -6
- package/gel-core/dialect.d.ts +7 -6
- package/gel-core/dialect.js +26 -20
- package/gel-core/dialect.js.map +1 -1
- package/gel-core/query-builders/delete.cjs +7 -2
- package/gel-core/query-builders/delete.cjs.map +1 -1
- package/gel-core/query-builders/delete.js +7 -2
- package/gel-core/query-builders/delete.js.map +1 -1
- package/gel-core/query-builders/insert.cjs +32 -6
- package/gel-core/query-builders/insert.cjs.map +1 -1
- package/gel-core/query-builders/insert.js +34 -8
- package/gel-core/query-builders/insert.js.map +1 -1
- package/gel-core/query-builders/query.cjs +12 -1
- package/gel-core/query-builders/query.cjs.map +1 -1
- package/gel-core/query-builders/query.js +12 -1
- package/gel-core/query-builders/query.js.map +1 -1
- package/gel-core/query-builders/select.cjs +9 -2
- package/gel-core/query-builders/select.cjs.map +1 -1
- package/gel-core/query-builders/select.js +9 -2
- package/gel-core/query-builders/select.js.map +1 -1
- package/gel-core/query-builders/update.cjs +8 -3
- package/gel-core/query-builders/update.cjs.map +1 -1
- package/gel-core/query-builders/update.js +8 -3
- package/gel-core/query-builders/update.js.map +1 -1
- package/gel-core/session.cjs +48 -4
- package/gel-core/session.cjs.map +1 -1
- package/gel-core/session.d.cts +11 -5
- package/gel-core/session.d.ts +11 -5
- package/gel-core/session.js +48 -4
- package/gel-core/session.js.map +1 -1
- package/libsql/driver-core.cjs +3 -2
- package/libsql/driver-core.cjs.map +1 -1
- package/libsql/driver-core.js +3 -2
- package/libsql/driver-core.js.map +1 -1
- package/libsql/driver.cjs +4 -1
- package/libsql/driver.cjs.map +1 -1
- package/libsql/driver.d.cts +4 -3
- package/libsql/driver.d.ts +4 -3
- package/libsql/driver.js +4 -1
- package/libsql/driver.js.map +1 -1
- package/libsql/http/index.cjs +4 -1
- package/libsql/http/index.cjs.map +1 -1
- package/libsql/http/index.d.cts +4 -3
- package/libsql/http/index.d.ts +4 -3
- package/libsql/http/index.js +4 -1
- package/libsql/http/index.js.map +1 -1
- package/libsql/node/index.cjs +4 -1
- package/libsql/node/index.cjs.map +1 -1
- package/libsql/node/index.d.cts +4 -3
- package/libsql/node/index.d.ts +4 -3
- package/libsql/node/index.js +4 -1
- package/libsql/node/index.js.map +1 -1
- package/libsql/session.cjs +29 -12
- package/libsql/session.cjs.map +1 -1
- package/libsql/session.d.cts +8 -7
- package/libsql/session.d.ts +8 -7
- package/libsql/session.js +29 -12
- package/libsql/session.js.map +1 -1
- package/libsql/sqlite3/index.cjs +4 -1
- package/libsql/sqlite3/index.cjs.map +1 -1
- package/libsql/sqlite3/index.d.cts +4 -3
- package/libsql/sqlite3/index.d.ts +4 -3
- package/libsql/sqlite3/index.js +4 -1
- package/libsql/sqlite3/index.js.map +1 -1
- package/libsql/wasm/index.cjs +4 -1
- package/libsql/wasm/index.cjs.map +1 -1
- package/libsql/wasm/index.d.cts +4 -3
- package/libsql/wasm/index.d.ts +4 -3
- package/libsql/wasm/index.js +4 -1
- package/libsql/wasm/index.js.map +1 -1
- package/libsql/web/index.cjs +4 -1
- package/libsql/web/index.cjs.map +1 -1
- package/libsql/web/index.d.cts +4 -3
- package/libsql/web/index.d.ts +4 -3
- package/libsql/web/index.js +4 -1
- package/libsql/web/index.js.map +1 -1
- package/libsql/ws/index.cjs +4 -1
- package/libsql/ws/index.cjs.map +1 -1
- package/libsql/ws/index.d.cts +4 -3
- package/libsql/ws/index.d.ts +4 -3
- package/libsql/ws/index.js +4 -1
- package/libsql/ws/index.js.map +1 -1
- package/mysql-core/db.cjs +5 -3
- package/mysql-core/db.cjs.map +1 -1
- package/mysql-core/db.d.cts +3 -1
- package/mysql-core/db.d.ts +3 -1
- package/mysql-core/db.js +5 -3
- package/mysql-core/db.js.map +1 -1
- package/mysql-core/dialect.cjs +30 -23
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.d.cts +8 -7
- package/mysql-core/dialect.d.ts +8 -7
- package/mysql-core/dialect.js +31 -24
- package/mysql-core/dialect.js.map +1 -1
- package/mysql-core/query-builders/delete.cjs +8 -2
- package/mysql-core/query-builders/delete.cjs.map +1 -1
- package/mysql-core/query-builders/delete.js +8 -2
- package/mysql-core/query-builders/delete.js.map +1 -1
- package/mysql-core/query-builders/insert.cjs +29 -5
- package/mysql-core/query-builders/insert.cjs.map +1 -1
- package/mysql-core/query-builders/insert.js +31 -7
- package/mysql-core/query-builders/insert.js.map +1 -1
- package/mysql-core/query-builders/query.cjs +14 -2
- package/mysql-core/query-builders/query.cjs.map +1 -1
- package/mysql-core/query-builders/query.js +14 -2
- package/mysql-core/query-builders/query.js.map +1 -1
- package/mysql-core/query-builders/select.cjs +12 -4
- package/mysql-core/query-builders/select.cjs.map +1 -1
- package/mysql-core/query-builders/select.js +12 -4
- package/mysql-core/query-builders/select.js.map +1 -1
- package/mysql-core/query-builders/update.cjs +15 -3
- package/mysql-core/query-builders/update.cjs.map +1 -1
- package/mysql-core/query-builders/update.js +15 -3
- package/mysql-core/query-builders/update.js.map +1 -1
- package/mysql-core/session.cjs +45 -3
- package/mysql-core/session.cjs.map +1 -1
- package/mysql-core/session.d.cts +13 -4
- package/mysql-core/session.d.ts +13 -4
- package/mysql-core/session.js +45 -3
- package/mysql-core/session.js.map +1 -1
- package/mysql-proxy/driver.cjs +3 -2
- package/mysql-proxy/driver.cjs.map +1 -1
- package/mysql-proxy/driver.d.cts +2 -1
- package/mysql-proxy/driver.d.ts +2 -1
- package/mysql-proxy/driver.js +3 -2
- package/mysql-proxy/driver.js.map +1 -1
- package/mysql-proxy/session.cjs +8 -8
- package/mysql-proxy/session.cjs.map +1 -1
- package/mysql-proxy/session.d.cts +5 -6
- package/mysql-proxy/session.d.ts +5 -6
- package/mysql-proxy/session.js +8 -8
- package/mysql-proxy/session.js.map +1 -1
- package/mysql2/driver.cjs +6 -4
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.d.cts +4 -2
- package/mysql2/driver.d.ts +4 -2
- package/mysql2/driver.js +6 -4
- package/mysql2/driver.js.map +1 -1
- package/mysql2/session.cjs +14 -10
- package/mysql2/session.cjs.map +1 -1
- package/mysql2/session.d.cts +5 -5
- package/mysql2/session.d.ts +5 -5
- package/mysql2/session.js +14 -10
- package/mysql2/session.js.map +1 -1
- package/neon-http/driver.cjs +5 -3
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.d.cts +6 -4
- package/neon-http/driver.d.ts +6 -4
- package/neon-http/driver.js +5 -3
- package/neon-http/driver.js.map +1 -1
- package/neon-http/session.cjs +8 -6
- package/neon-http/session.cjs.map +1 -1
- package/neon-http/session.d.cts +5 -4
- package/neon-http/session.d.ts +5 -4
- package/neon-http/session.js +8 -6
- package/neon-http/session.js.map +1 -1
- package/neon-serverless/driver.cjs +6 -4
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.d.cts +6 -4
- package/neon-serverless/driver.d.ts +6 -4
- package/neon-serverless/driver.js +6 -4
- package/neon-serverless/driver.js.map +1 -1
- package/neon-serverless/session.cjs +23 -9
- package/neon-serverless/session.cjs.map +1 -1
- package/neon-serverless/session.d.cts +5 -4
- package/neon-serverless/session.d.ts +5 -4
- package/neon-serverless/session.js +23 -9
- package/neon-serverless/session.js.map +1 -1
- package/node-postgres/driver.cjs +6 -4
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.d.cts +6 -4
- package/node-postgres/driver.d.ts +6 -4
- package/node-postgres/driver.js +6 -4
- package/node-postgres/driver.js.map +1 -1
- package/node-postgres/session.cjs +18 -9
- package/node-postgres/session.cjs.map +1 -1
- package/node-postgres/session.d.cts +5 -4
- package/node-postgres/session.d.ts +5 -4
- package/node-postgres/session.js +18 -9
- package/node-postgres/session.js.map +1 -1
- package/op-sqlite/driver.cjs.map +1 -1
- package/op-sqlite/driver.d.cts +2 -1
- package/op-sqlite/driver.d.ts +2 -1
- package/op-sqlite/driver.js.map +1 -1
- package/op-sqlite/session.cjs +5 -5
- package/op-sqlite/session.cjs.map +1 -1
- package/op-sqlite/session.d.cts +5 -5
- package/op-sqlite/session.d.ts +5 -5
- package/op-sqlite/session.js +5 -5
- package/op-sqlite/session.js.map +1 -1
- package/package.json +347 -1
- package/pg-core/columns/common.cjs +2 -0
- package/pg-core/columns/common.cjs.map +1 -1
- package/pg-core/columns/common.js +2 -0
- package/pg-core/columns/common.js.map +1 -1
- package/pg-core/db.cjs +5 -3
- package/pg-core/db.cjs.map +1 -1
- package/pg-core/db.d.cts +3 -1
- package/pg-core/db.d.ts +3 -1
- package/pg-core/db.js +5 -3
- package/pg-core/db.js.map +1 -1
- package/pg-core/dialect.cjs +26 -19
- package/pg-core/dialect.cjs.map +1 -1
- package/pg-core/dialect.d.cts +7 -6
- package/pg-core/dialect.d.ts +7 -6
- package/pg-core/dialect.js +27 -20
- package/pg-core/dialect.js.map +1 -1
- package/pg-core/query-builders/delete.cjs +7 -2
- package/pg-core/query-builders/delete.cjs.map +1 -1
- package/pg-core/query-builders/delete.d.cts +1 -1
- package/pg-core/query-builders/delete.d.ts +1 -1
- package/pg-core/query-builders/delete.js +7 -2
- package/pg-core/query-builders/delete.js.map +1 -1
- package/pg-core/query-builders/insert.cjs +37 -6
- package/pg-core/query-builders/insert.cjs.map +1 -1
- package/pg-core/query-builders/insert.js +39 -8
- package/pg-core/query-builders/insert.js.map +1 -1
- package/pg-core/query-builders/query.cjs +12 -1
- package/pg-core/query-builders/query.cjs.map +1 -1
- package/pg-core/query-builders/query.js +12 -1
- package/pg-core/query-builders/query.js.map +1 -1
- package/pg-core/query-builders/select.cjs +11 -4
- package/pg-core/query-builders/select.cjs.map +1 -1
- package/pg-core/query-builders/select.js +11 -4
- package/pg-core/query-builders/select.js.map +1 -1
- package/pg-core/query-builders/update.cjs +8 -3
- package/pg-core/query-builders/update.cjs.map +1 -1
- package/pg-core/query-builders/update.d.cts +2 -2
- package/pg-core/query-builders/update.d.ts +2 -2
- package/pg-core/query-builders/update.js +9 -8
- package/pg-core/query-builders/update.js.map +1 -1
- package/pg-core/session.cjs +49 -4
- package/pg-core/session.cjs.map +1 -1
- package/pg-core/session.d.cts +11 -5
- package/pg-core/session.d.ts +11 -5
- package/pg-core/session.js +49 -4
- package/pg-core/session.js.map +1 -1
- package/pg-proxy/driver.cjs +3 -2
- package/pg-proxy/driver.cjs.map +1 -1
- package/pg-proxy/driver.d.cts +2 -1
- package/pg-proxy/driver.d.ts +2 -1
- package/pg-proxy/driver.js +3 -2
- package/pg-proxy/driver.js.map +1 -1
- package/pg-proxy/session.cjs +8 -6
- package/pg-proxy/session.cjs.map +1 -1
- package/pg-proxy/session.d.cts +5 -4
- package/pg-proxy/session.d.ts +5 -4
- package/pg-proxy/session.js +8 -6
- package/pg-proxy/session.js.map +1 -1
- package/pglite/driver.cjs +6 -4
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.d.cts +6 -4
- package/pglite/driver.d.ts +6 -4
- package/pglite/driver.js +6 -4
- package/pglite/driver.js.map +1 -1
- package/pglite/session.cjs +19 -9
- package/pglite/session.cjs.map +1 -1
- package/pglite/session.d.cts +5 -4
- package/pglite/session.d.ts +5 -4
- package/pglite/session.js +19 -9
- package/pglite/session.js.map +1 -1
- package/planetscale-serverless/driver.cjs +3 -2
- package/planetscale-serverless/driver.cjs.map +1 -1
- package/planetscale-serverless/driver.d.cts +4 -3
- package/planetscale-serverless/driver.d.ts +4 -3
- package/planetscale-serverless/driver.js +3 -2
- package/planetscale-serverless/driver.js.map +1 -1
- package/planetscale-serverless/session.cjs +23 -13
- package/planetscale-serverless/session.cjs.map +1 -1
- package/planetscale-serverless/session.d.cts +6 -7
- package/planetscale-serverless/session.d.ts +6 -7
- package/planetscale-serverless/session.js +23 -13
- package/planetscale-serverless/session.js.map +1 -1
- package/postgres-js/driver.cjs +3 -2
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.d.cts +4 -3
- package/postgres-js/driver.d.ts +4 -3
- package/postgres-js/driver.js +3 -2
- package/postgres-js/driver.js.map +1 -1
- package/postgres-js/session.cjs +27 -16
- package/postgres-js/session.cjs.map +1 -1
- package/postgres-js/session.d.cts +6 -5
- package/postgres-js/session.d.ts +6 -5
- package/postgres-js/session.js +27 -16
- package/postgres-js/session.js.map +1 -1
- package/prisma/mysql/driver.cjs +3 -3
- package/prisma/mysql/driver.cjs.map +1 -1
- package/prisma/mysql/driver.d.cts +3 -2
- package/prisma/mysql/driver.d.ts +3 -2
- package/prisma/mysql/driver.js +3 -3
- package/prisma/mysql/driver.js.map +1 -1
- package/prisma/mysql/session.cjs +10 -11
- package/prisma/mysql/session.cjs.map +1 -1
- package/prisma/mysql/session.d.cts +7 -6
- package/prisma/mysql/session.d.ts +7 -6
- package/prisma/mysql/session.js +10 -11
- package/prisma/mysql/session.js.map +1 -1
- package/prisma/pg/driver.cjs +3 -3
- package/prisma/pg/driver.cjs.map +1 -1
- package/prisma/pg/driver.d.cts +2 -1
- package/prisma/pg/driver.d.ts +2 -1
- package/prisma/pg/driver.js +3 -3
- package/prisma/pg/driver.js.map +1 -1
- package/prisma/pg/session.cjs +7 -7
- package/prisma/pg/session.cjs.map +1 -1
- package/prisma/pg/session.d.cts +6 -5
- package/prisma/pg/session.d.ts +6 -5
- package/prisma/pg/session.js +7 -7
- package/prisma/pg/session.js.map +1 -1
- package/prisma/sqlite/driver.cjs +7 -1
- package/prisma/sqlite/driver.cjs.map +1 -1
- package/prisma/sqlite/driver.d.cts +2 -1
- package/prisma/sqlite/driver.d.ts +2 -1
- package/prisma/sqlite/driver.js +7 -1
- package/prisma/sqlite/driver.js.map +1 -1
- package/prisma/sqlite/session.cjs +6 -6
- package/prisma/sqlite/session.cjs.map +1 -1
- package/prisma/sqlite/session.d.cts +6 -5
- package/prisma/sqlite/session.d.ts +6 -5
- package/prisma/sqlite/session.js +6 -6
- package/prisma/sqlite/session.js.map +1 -1
- package/singlestore/driver.cjs +28 -19
- package/singlestore/driver.cjs.map +1 -1
- package/singlestore/driver.d.cts +4 -2
- package/singlestore/driver.d.ts +4 -2
- package/singlestore/driver.js +28 -19
- package/singlestore/driver.js.map +1 -1
- package/singlestore/session.cjs +14 -10
- package/singlestore/session.cjs.map +1 -1
- package/singlestore/session.d.cts +5 -5
- package/singlestore/session.d.ts +5 -5
- package/singlestore/session.js +14 -10
- package/singlestore/session.js.map +1 -1
- package/singlestore-core/db.cjs +5 -3
- package/singlestore-core/db.cjs.map +1 -1
- package/singlestore-core/db.d.cts +3 -1
- package/singlestore-core/db.d.ts +3 -1
- package/singlestore-core/db.js +5 -3
- package/singlestore-core/db.js.map +1 -1
- package/singlestore-core/dialect.cjs +25 -18
- package/singlestore-core/dialect.cjs.map +1 -1
- package/singlestore-core/dialect.d.cts +7 -6
- package/singlestore-core/dialect.d.ts +7 -6
- package/singlestore-core/dialect.js +26 -19
- package/singlestore-core/dialect.js.map +1 -1
- package/singlestore-core/query-builders/delete.cjs +8 -2
- package/singlestore-core/query-builders/delete.cjs.map +1 -1
- package/singlestore-core/query-builders/delete.js +8 -2
- package/singlestore-core/query-builders/delete.js.map +1 -1
- package/singlestore-core/query-builders/insert.cjs +29 -5
- package/singlestore-core/query-builders/insert.cjs.map +1 -1
- package/singlestore-core/query-builders/insert.js +31 -7
- package/singlestore-core/query-builders/insert.js.map +1 -1
- package/singlestore-core/query-builders/query.cjs +12 -1
- package/singlestore-core/query-builders/query.cjs.map +1 -1
- package/singlestore-core/query-builders/query.js +12 -1
- package/singlestore-core/query-builders/query.js.map +1 -1
- package/singlestore-core/query-builders/select.cjs +12 -4
- package/singlestore-core/query-builders/select.cjs.map +1 -1
- package/singlestore-core/query-builders/select.js +12 -4
- package/singlestore-core/query-builders/select.js.map +1 -1
- package/singlestore-core/query-builders/update.cjs +9 -3
- package/singlestore-core/query-builders/update.cjs.map +1 -1
- package/singlestore-core/query-builders/update.js +9 -3
- package/singlestore-core/query-builders/update.js.map +1 -1
- package/singlestore-core/session.cjs +45 -3
- package/singlestore-core/session.cjs.map +1 -1
- package/singlestore-core/session.d.cts +13 -4
- package/singlestore-core/session.d.ts +13 -4
- package/singlestore-core/session.js +45 -3
- package/singlestore-core/session.js.map +1 -1
- package/singlestore-proxy/driver.cjs +3 -2
- package/singlestore-proxy/driver.cjs.map +1 -1
- package/singlestore-proxy/driver.d.cts +2 -1
- package/singlestore-proxy/driver.d.ts +2 -1
- package/singlestore-proxy/driver.js +3 -2
- package/singlestore-proxy/driver.js.map +1 -1
- package/singlestore-proxy/session.cjs +8 -8
- package/singlestore-proxy/session.cjs.map +1 -1
- package/singlestore-proxy/session.d.cts +5 -6
- package/singlestore-proxy/session.d.ts +5 -6
- package/singlestore-proxy/session.js +8 -8
- package/singlestore-proxy/session.js.map +1 -1
- package/sql/sql.cjs +24 -2
- package/sql/sql.cjs.map +1 -1
- package/sql/sql.d.cts +12 -0
- package/sql/sql.d.ts +12 -0
- package/sql/sql.js +23 -2
- package/sql/sql.js.map +1 -1
- package/sql-js/driver.cjs.map +1 -1
- package/sql-js/driver.d.cts +2 -1
- package/sql-js/driver.d.ts +2 -1
- package/sql-js/driver.js.map +1 -1
- package/sql-js/session.cjs +4 -4
- package/sql-js/session.cjs.map +1 -1
- package/sql-js/session.d.cts +4 -4
- package/sql-js/session.d.ts +4 -4
- package/sql-js/session.js +4 -4
- package/sql-js/session.js.map +1 -1
- package/sqlite-core/db.cjs +5 -3
- package/sqlite-core/db.cjs.map +1 -1
- package/sqlite-core/db.d.cts +3 -1
- package/sqlite-core/db.d.ts +3 -1
- package/sqlite-core/db.js +5 -3
- package/sqlite-core/db.js.map +1 -1
- package/sqlite-core/dialect.cjs +30 -19
- package/sqlite-core/dialect.cjs.map +1 -1
- package/sqlite-core/dialect.d.cts +7 -6
- package/sqlite-core/dialect.d.ts +7 -6
- package/sqlite-core/dialect.js +31 -20
- package/sqlite-core/dialect.js.map +1 -1
- package/sqlite-core/query-builders/delete.cjs +8 -2
- package/sqlite-core/query-builders/delete.cjs.map +1 -1
- package/sqlite-core/query-builders/delete.js +8 -2
- package/sqlite-core/query-builders/delete.js.map +1 -1
- package/sqlite-core/query-builders/insert.cjs +28 -5
- package/sqlite-core/query-builders/insert.cjs.map +1 -1
- package/sqlite-core/query-builders/insert.js +35 -7
- package/sqlite-core/query-builders/insert.js.map +1 -1
- package/sqlite-core/query-builders/query.cjs +12 -1
- package/sqlite-core/query-builders/query.cjs.map +1 -1
- package/sqlite-core/query-builders/query.js +12 -1
- package/sqlite-core/query-builders/query.js.map +1 -1
- package/sqlite-core/query-builders/select.cjs +15 -6
- package/sqlite-core/query-builders/select.cjs.map +1 -1
- package/sqlite-core/query-builders/select.js +15 -6
- package/sqlite-core/query-builders/select.js.map +1 -1
- package/sqlite-core/query-builders/update.cjs +9 -3
- package/sqlite-core/query-builders/update.cjs.map +1 -1
- package/sqlite-core/query-builders/update.js +9 -3
- package/sqlite-core/query-builders/update.js.map +1 -1
- package/sqlite-core/session.cjs +80 -6
- package/sqlite-core/session.cjs.map +1 -1
- package/sqlite-core/session.d.cts +19 -9
- package/sqlite-core/session.d.ts +19 -9
- package/sqlite-core/session.js +80 -6
- package/sqlite-core/session.js.map +1 -1
- package/sqlite-proxy/driver.cjs +4 -3
- package/sqlite-proxy/driver.cjs.map +1 -1
- package/sqlite-proxy/driver.d.cts +3 -2
- package/sqlite-proxy/driver.d.ts +3 -2
- package/sqlite-proxy/driver.js +4 -3
- package/sqlite-proxy/driver.js.map +1 -1
- package/sqlite-proxy/session.cjs +20 -11
- package/sqlite-proxy/session.cjs.map +1 -1
- package/sqlite-proxy/session.d.cts +8 -7
- package/sqlite-proxy/session.d.ts +8 -7
- package/sqlite-proxy/session.js +20 -11
- package/sqlite-proxy/session.js.map +1 -1
- package/tidb-serverless/driver.cjs +9 -2
- package/tidb-serverless/driver.cjs.map +1 -1
- package/tidb-serverless/driver.d.cts +4 -3
- package/tidb-serverless/driver.d.ts +4 -3
- package/tidb-serverless/driver.js +9 -2
- package/tidb-serverless/driver.js.map +1 -1
- package/tidb-serverless/session.cjs +23 -13
- package/tidb-serverless/session.cjs.map +1 -1
- package/tidb-serverless/session.d.cts +6 -7
- package/tidb-serverless/session.d.ts +6 -7
- package/tidb-serverless/session.js +23 -13
- package/tidb-serverless/session.js.map +1 -1
- package/tracing.cjs.map +1 -1
- package/tracing.js.map +1 -1
- package/utils.cjs +34 -2
- package/utils.cjs.map +1 -1
- package/utils.d.cts +5 -1
- package/utils.d.ts +5 -1
- package/utils.js +35 -4
- package/utils.js.map +1 -1
- package/vercel-postgres/driver.cjs +10 -5
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.d.cts +6 -4
- package/vercel-postgres/driver.d.ts +6 -4
- package/vercel-postgres/driver.js +10 -5
- package/vercel-postgres/driver.js.map +1 -1
- package/vercel-postgres/session.cjs +18 -9
- package/vercel-postgres/session.cjs.map +1 -1
- package/vercel-postgres/session.d.cts +5 -4
- package/vercel-postgres/session.d.ts +5 -4
- package/vercel-postgres/session.js +18 -9
- package/vercel-postgres/session.js.map +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/xata-http/driver.cjs +7 -4
- package/xata-http/driver.cjs.map +1 -1
- package/xata-http/driver.d.cts +4 -2
- package/xata-http/driver.d.ts +4 -2
- package/xata-http/driver.js +7 -4
- package/xata-http/driver.js.map +1 -1
- package/xata-http/session.cjs +8 -6
- package/xata-http/session.cjs.map +1 -1
- package/xata-http/session.d.cts +5 -4
- package/xata-http/session.d.ts +5 -4
- package/xata-http/session.js +8 -6
- package/xata-http/session.js.map +1 -1
package/pg-proxy/session.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/pg-proxy/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery as PreparedQueryBase, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { QueryWithTypings } from '~/sql/sql.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\nimport type { RemoteCallback } from './driver.ts';\n\nexport interface PgRemoteSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PgRemoteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<PgRemoteQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgRemoteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: PgRemoteSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig>(\n\t\tquery: QueryWithTypings,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PreparedQuery<T> {\n\t\treturn new PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tquery.typings,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\t_transaction: (tx: PgProxyTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\t_config?: PgTransactionConfig,\n\t): Promise<T> {\n\t\tthrow new Error('Transactions are not supported by the Postgres Proxy driver');\n\t}\n}\n\nexport class PgProxyTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<PgRemoteQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgProxyTransaction';\n\n\toverride async transaction<T>(\n\t\t_transaction: (tx: PgProxyTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tthrow new Error('Transactions are not supported by the Postgres Proxy driver');\n\t}\n}\n\nexport class PreparedQuery<T extends PreparedQueryConfig> extends PreparedQueryBase<T> {\n\tstatic override readonly [entityKind]: string = 'PgProxyPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate typings: any[] | undefined,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t}\n\n\tasync
|
|
1
|
+
{"version":3,"sources":["../../src/pg-proxy/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { BlankPgHookContext, DrizzlePgExtension } from '~/extension-core/pg/index.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery as PreparedQueryBase, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { QueryWithTypings } from '~/sql/sql.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\nimport type { RemoteCallback } from './driver.ts';\n\nexport interface PgRemoteSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PgRemoteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<PgRemoteQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgRemoteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: PgRemoteSessionOptions = {},\n\t\textensions?: DrizzlePgExtension[],\n\t) {\n\t\tsuper(dialect, extensions);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig>(\n\t\tquery: QueryWithTypings,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\thookContext?: BlankPgHookContext,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PreparedQuery<T> {\n\t\treturn new PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tquery.typings,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tthis.extensions,\n\t\t\thookContext,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\t_transaction: (tx: PgProxyTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\t_config?: PgTransactionConfig,\n\t): Promise<T> {\n\t\tthrow new Error('Transactions are not supported by the Postgres Proxy driver');\n\t}\n}\n\nexport class PgProxyTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<PgRemoteQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgProxyTransaction';\n\n\toverride async transaction<T>(\n\t\t_transaction: (tx: PgProxyTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tthrow new Error('Transactions are not supported by the Postgres Proxy driver');\n\t}\n}\n\nexport class PreparedQuery<T extends PreparedQueryConfig> extends PreparedQueryBase<T> {\n\tstatic override readonly [entityKind]: string = 'PgProxyPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate typings: any[] | undefined,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\textensions?: DrizzlePgExtension[],\n\t\thookContext?: BlankPgHookContext,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params }, extensions, hookContext);\n\t}\n\n\tasync _execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tconst { fields, client, queryString, joinsNotNullableMap, customResultMapper, logger, typings } = this;\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tlogger.logQuery(queryString, params);\n\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async () => {\n\t\t\t\t\tconst { rows } = await client(queryString, params as any[], 'execute', typings);\n\n\t\t\t\t\treturn rows;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', async () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\tconst { rows } = await client(queryString, params as any[], 'all', typings);\n\n\t\t\t\treturn rows;\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(rows)\n\t\t\t\t\t: rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tasync all() {\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface PgRemoteQueryResultHKT extends PgQueryResultHKT {\n\ttype: Assume<this['row'], {\n\t\t[column: string]: any;\n\t}>[];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAG3B,oBAA2B;AAE3B,qBAA8B;AAG9B,qBAAgE;AAGhE,iBAAiC;AACjC,qBAAuB;AACvB,mBAA0C;AAOnC,MAAM,wBAGH,yBAAwD;AAAA,EAKjE,YACS,QACR,SACQ,QACR,UAAkC,CAAC,GACnC,YACC;AACD,UAAM,SAAS,UAAU;AANjB;AAEA;AAKR,SAAK,SAAS,QAAQ,UAAU,IAAI,yBAAW;AAAA,EAChD;AAAA,EAbA,QAA0B,wBAAU,IAAY;AAAA,EAExC;AAAA,EAaR,aACC,OACA,QACA,MACA,uBACA,aACA,oBACmB;AACnB,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAe,YACd,cACA,SACa;AACb,UAAM,IAAI,MAAM,6DAA6D;AAAA,EAC9E;AACD;AAEO,MAAM,2BAGH,6BAA4D;AAAA,EACrE,QAA0B,wBAAU,IAAY;AAAA,EAEhD,MAAe,YACd,cACa;AACb,UAAM,IAAI,MAAM,6DAA6D;AAAA,EAC9E;AACD;AAEO,MAAM,sBAAqD,eAAAA,gBAAqB;AAAA,EAGtF,YACS,QACA,aACA,QACA,SACA,QACA,QACA,wBACR,YACA,aACQ,oBACP;AACD,UAAM,EAAE,KAAK,aAAa,OAAO,GAAG,YAAY,WAAW;AAXnD;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAAA,EAGT;AAAA,EAfA,QAA0B,wBAAU,IAAY;AAAA,EAiBhD,MAAM,SAAS,oBAAyD,CAAC,GAA0B;AAClG,WAAO,sBAAO,gBAAgB,mBAAmB,OAAO,SAAS;AAChE,YAAM,aAAS,6BAAiB,KAAK,QAAQ,iBAAiB;AAC9D,YAAM,EAAE,QAAQ,QAAQ,aAAa,qBAAqB,oBAAoB,QAAQ,QAAQ,IAAI;AAElG,YAAM,cAAc;AAAA,QACnB,sBAAsB;AAAA,QACtB,wBAAwB,KAAK,UAAU,MAAM;AAAA,MAC9C,CAAC;AAED,aAAO,SAAS,aAAa,MAAM;AAEnC,UAAI,CAAC,UAAU,CAAC,oBAAoB;AACnC,eAAO,sBAAO,gBAAgB,0BAA0B,YAAY;AACnE,gBAAM,EAAE,MAAAC,MAAK,IAAI,MAAM,OAAO,aAAa,QAAiB,WAAW,OAAO;AAE9E,iBAAOA;AAAA,QACR,CAAC;AAAA,MACF;AAEA,YAAM,OAAO,MAAM,sBAAO,gBAAgB,0BAA0B,YAAY;AAC/E,cAAM,cAAc;AAAA,UACnB,sBAAsB;AAAA,UACtB,wBAAwB,KAAK,UAAU,MAAM;AAAA,QAC9C,CAAC;AAED,cAAM,EAAE,MAAAA,MAAK,IAAI,MAAM,OAAO,aAAa,QAAiB,OAAO,OAAO;AAE1E,eAAOA;AAAA,MACR,CAAC;AAED,aAAO,sBAAO,gBAAgB,uBAAuB,MAAM;AAC1D,eAAO,qBACJ,mBAAmB,IAAI,IACvB,KAAK,IAAI,CAAC,YAAQ,2BAA2B,QAAS,KAAK,mBAAmB,CAAC;AAAA,MACnF,CAAC;AAAA,IACF,CAAC;AAAA,EACF;AAAA,EAEA,MAAM,MAAM;AAAA,EACZ;AAAA;AAAA,EAGA,wBAAiC;AAChC,WAAO,KAAK;AAAA,EACb;AACD;","names":["PreparedQueryBase","rows"]}
|
package/pg-proxy/session.d.cts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { entityKind } from "../entity.cjs";
|
|
2
|
+
import type { BlankPgHookContext, DrizzlePgExtension } from "../extension-core/pg/index.cjs";
|
|
2
3
|
import type { Logger } from "../logger.cjs";
|
|
3
4
|
import type { PgDialect } from "../pg-core/dialect.cjs";
|
|
4
5
|
import { PgTransaction } from "../pg-core/index.cjs";
|
|
@@ -17,8 +18,8 @@ export declare class PgRemoteSession<TFullSchema extends Record<string, unknown>
|
|
|
17
18
|
private schema;
|
|
18
19
|
static readonly [entityKind]: string;
|
|
19
20
|
private logger;
|
|
20
|
-
constructor(client: RemoteCallback, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: PgRemoteSessionOptions);
|
|
21
|
-
prepareQuery<T extends PreparedQueryConfig>(query: QueryWithTypings, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute']): PreparedQuery<T>;
|
|
21
|
+
constructor(client: RemoteCallback, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: PgRemoteSessionOptions, extensions?: DrizzlePgExtension[]);
|
|
22
|
+
prepareQuery<T extends PreparedQueryConfig>(query: QueryWithTypings, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, hookContext?: BlankPgHookContext, customResultMapper?: (rows: unknown[][]) => T['execute']): PreparedQuery<T>;
|
|
22
23
|
transaction<T>(_transaction: (tx: PgProxyTransaction<TFullSchema, TSchema>) => Promise<T>, _config?: PgTransactionConfig): Promise<T>;
|
|
23
24
|
}
|
|
24
25
|
export declare class PgProxyTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgTransaction<PgRemoteQueryResultHKT, TFullSchema, TSchema> {
|
|
@@ -35,8 +36,8 @@ export declare class PreparedQuery<T extends PreparedQueryConfig> extends Prepar
|
|
|
35
36
|
private _isResponseInArrayMode;
|
|
36
37
|
private customResultMapper?;
|
|
37
38
|
static readonly [entityKind]: string;
|
|
38
|
-
constructor(client: RemoteCallback, queryString: string, params: unknown[], typings: any[] | undefined, logger: Logger, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
|
|
39
|
-
|
|
39
|
+
constructor(client: RemoteCallback, queryString: string, params: unknown[], typings: any[] | undefined, logger: Logger, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, extensions?: DrizzlePgExtension[], hookContext?: BlankPgHookContext, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
|
|
40
|
+
_execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
|
|
40
41
|
all(): Promise<void>;
|
|
41
42
|
}
|
|
42
43
|
export interface PgRemoteQueryResultHKT extends PgQueryResultHKT {
|
package/pg-proxy/session.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { entityKind } from "../entity.js";
|
|
2
|
+
import type { BlankPgHookContext, DrizzlePgExtension } from "../extension-core/pg/index.js";
|
|
2
3
|
import type { Logger } from "../logger.js";
|
|
3
4
|
import type { PgDialect } from "../pg-core/dialect.js";
|
|
4
5
|
import { PgTransaction } from "../pg-core/index.js";
|
|
@@ -17,8 +18,8 @@ export declare class PgRemoteSession<TFullSchema extends Record<string, unknown>
|
|
|
17
18
|
private schema;
|
|
18
19
|
static readonly [entityKind]: string;
|
|
19
20
|
private logger;
|
|
20
|
-
constructor(client: RemoteCallback, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: PgRemoteSessionOptions);
|
|
21
|
-
prepareQuery<T extends PreparedQueryConfig>(query: QueryWithTypings, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute']): PreparedQuery<T>;
|
|
21
|
+
constructor(client: RemoteCallback, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: PgRemoteSessionOptions, extensions?: DrizzlePgExtension[]);
|
|
22
|
+
prepareQuery<T extends PreparedQueryConfig>(query: QueryWithTypings, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, hookContext?: BlankPgHookContext, customResultMapper?: (rows: unknown[][]) => T['execute']): PreparedQuery<T>;
|
|
22
23
|
transaction<T>(_transaction: (tx: PgProxyTransaction<TFullSchema, TSchema>) => Promise<T>, _config?: PgTransactionConfig): Promise<T>;
|
|
23
24
|
}
|
|
24
25
|
export declare class PgProxyTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgTransaction<PgRemoteQueryResultHKT, TFullSchema, TSchema> {
|
|
@@ -35,8 +36,8 @@ export declare class PreparedQuery<T extends PreparedQueryConfig> extends Prepar
|
|
|
35
36
|
private _isResponseInArrayMode;
|
|
36
37
|
private customResultMapper?;
|
|
37
38
|
static readonly [entityKind]: string;
|
|
38
|
-
constructor(client: RemoteCallback, queryString: string, params: unknown[], typings: any[] | undefined, logger: Logger, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
|
|
39
|
-
|
|
39
|
+
constructor(client: RemoteCallback, queryString: string, params: unknown[], typings: any[] | undefined, logger: Logger, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, extensions?: DrizzlePgExtension[], hookContext?: BlankPgHookContext, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
|
|
40
|
+
_execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
|
|
40
41
|
all(): Promise<void>;
|
|
41
42
|
}
|
|
42
43
|
export interface PgRemoteQueryResultHKT extends PgQueryResultHKT {
|
package/pg-proxy/session.js
CHANGED
|
@@ -6,15 +6,15 @@ import { fillPlaceholders } from "../sql/sql.js";
|
|
|
6
6
|
import { tracer } from "../tracing.js";
|
|
7
7
|
import { mapResultRow } from "../utils.js";
|
|
8
8
|
class PgRemoteSession extends PgSession {
|
|
9
|
-
constructor(client, dialect, schema, options = {}) {
|
|
10
|
-
super(dialect);
|
|
9
|
+
constructor(client, dialect, schema, options = {}, extensions) {
|
|
10
|
+
super(dialect, extensions);
|
|
11
11
|
this.client = client;
|
|
12
12
|
this.schema = schema;
|
|
13
13
|
this.logger = options.logger ?? new NoopLogger();
|
|
14
14
|
}
|
|
15
15
|
static [entityKind] = "PgRemoteSession";
|
|
16
16
|
logger;
|
|
17
|
-
prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper) {
|
|
17
|
+
prepareQuery(query, fields, name, isResponseInArrayMode, hookContext, customResultMapper) {
|
|
18
18
|
return new PreparedQuery(
|
|
19
19
|
this.client,
|
|
20
20
|
query.sql,
|
|
@@ -23,6 +23,8 @@ class PgRemoteSession extends PgSession {
|
|
|
23
23
|
this.logger,
|
|
24
24
|
fields,
|
|
25
25
|
isResponseInArrayMode,
|
|
26
|
+
this.extensions,
|
|
27
|
+
hookContext,
|
|
26
28
|
customResultMapper
|
|
27
29
|
);
|
|
28
30
|
}
|
|
@@ -37,8 +39,8 @@ class PgProxyTransaction extends PgTransaction {
|
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
class PreparedQuery extends PreparedQueryBase {
|
|
40
|
-
constructor(client, queryString, params, typings, logger, fields, _isResponseInArrayMode, customResultMapper) {
|
|
41
|
-
super({ sql: queryString, params });
|
|
42
|
+
constructor(client, queryString, params, typings, logger, fields, _isResponseInArrayMode, extensions, hookContext, customResultMapper) {
|
|
43
|
+
super({ sql: queryString, params }, extensions, hookContext);
|
|
42
44
|
this.client = client;
|
|
43
45
|
this.queryString = queryString;
|
|
44
46
|
this.params = params;
|
|
@@ -49,7 +51,7 @@ class PreparedQuery extends PreparedQueryBase {
|
|
|
49
51
|
this.customResultMapper = customResultMapper;
|
|
50
52
|
}
|
|
51
53
|
static [entityKind] = "PgProxyPreparedQuery";
|
|
52
|
-
async
|
|
54
|
+
async _execute(placeholderValues = {}) {
|
|
53
55
|
return tracer.startActiveSpan("drizzle.execute", async (span) => {
|
|
54
56
|
const params = fillPlaceholders(this.params, placeholderValues);
|
|
55
57
|
const { fields, client, queryString, joinsNotNullableMap, customResultMapper, logger, typings } = this;
|
package/pg-proxy/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/pg-proxy/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery as PreparedQueryBase, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { QueryWithTypings } from '~/sql/sql.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\nimport type { RemoteCallback } from './driver.ts';\n\nexport interface PgRemoteSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PgRemoteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<PgRemoteQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgRemoteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: PgRemoteSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig>(\n\t\tquery: QueryWithTypings,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PreparedQuery<T> {\n\t\treturn new PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tquery.typings,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\t_transaction: (tx: PgProxyTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\t_config?: PgTransactionConfig,\n\t): Promise<T> {\n\t\tthrow new Error('Transactions are not supported by the Postgres Proxy driver');\n\t}\n}\n\nexport class PgProxyTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<PgRemoteQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgProxyTransaction';\n\n\toverride async transaction<T>(\n\t\t_transaction: (tx: PgProxyTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tthrow new Error('Transactions are not supported by the Postgres Proxy driver');\n\t}\n}\n\nexport class PreparedQuery<T extends PreparedQueryConfig> extends PreparedQueryBase<T> {\n\tstatic override readonly [entityKind]: string = 'PgProxyPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate typings: any[] | undefined,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t}\n\n\tasync
|
|
1
|
+
{"version":3,"sources":["../../src/pg-proxy/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { BlankPgHookContext, DrizzlePgExtension } from '~/extension-core/pg/index.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery as PreparedQueryBase, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { QueryWithTypings } from '~/sql/sql.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\nimport type { RemoteCallback } from './driver.ts';\n\nexport interface PgRemoteSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PgRemoteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<PgRemoteQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgRemoteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: PgRemoteSessionOptions = {},\n\t\textensions?: DrizzlePgExtension[],\n\t) {\n\t\tsuper(dialect, extensions);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig>(\n\t\tquery: QueryWithTypings,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\thookContext?: BlankPgHookContext,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PreparedQuery<T> {\n\t\treturn new PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tquery.typings,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tthis.extensions,\n\t\t\thookContext,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\t_transaction: (tx: PgProxyTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\t_config?: PgTransactionConfig,\n\t): Promise<T> {\n\t\tthrow new Error('Transactions are not supported by the Postgres Proxy driver');\n\t}\n}\n\nexport class PgProxyTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<PgRemoteQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgProxyTransaction';\n\n\toverride async transaction<T>(\n\t\t_transaction: (tx: PgProxyTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tthrow new Error('Transactions are not supported by the Postgres Proxy driver');\n\t}\n}\n\nexport class PreparedQuery<T extends PreparedQueryConfig> extends PreparedQueryBase<T> {\n\tstatic override readonly [entityKind]: string = 'PgProxyPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate typings: any[] | undefined,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\textensions?: DrizzlePgExtension[],\n\t\thookContext?: BlankPgHookContext,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params }, extensions, hookContext);\n\t}\n\n\tasync _execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tconst { fields, client, queryString, joinsNotNullableMap, customResultMapper, logger, typings } = this;\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tlogger.logQuery(queryString, params);\n\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async () => {\n\t\t\t\t\tconst { rows } = await client(queryString, params as any[], 'execute', typings);\n\n\t\t\t\t\treturn rows;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', async () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\tconst { rows } = await client(queryString, params as any[], 'all', typings);\n\n\t\t\t\treturn rows;\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(rows)\n\t\t\t\t\t: rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tasync all() {\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface PgRemoteQueryResultHKT extends PgQueryResultHKT {\n\ttype: Assume<this['row'], {\n\t\t[column: string]: any;\n\t}>[];\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAG3B,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAG9B,SAAS,mBAAmB,mBAAmB,iBAAiB;AAGhE,SAAS,wBAAwB;AACjC,SAAS,cAAc;AACvB,SAAsB,oBAAoB;AAOnC,MAAM,wBAGH,UAAwD;AAAA,EAKjE,YACS,QACR,SACQ,QACR,UAAkC,CAAC,GACnC,YACC;AACD,UAAM,SAAS,UAAU;AANjB;AAEA;AAKR,SAAK,SAAS,QAAQ,UAAU,IAAI,WAAW;AAAA,EAChD;AAAA,EAbA,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA,EAaR,aACC,OACA,QACA,MACA,uBACA,aACA,oBACmB;AACnB,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAe,YACd,cACA,SACa;AACb,UAAM,IAAI,MAAM,6DAA6D;AAAA,EAC9E;AACD;AAEO,MAAM,2BAGH,cAA4D;AAAA,EACrE,QAA0B,UAAU,IAAY;AAAA,EAEhD,MAAe,YACd,cACa;AACb,UAAM,IAAI,MAAM,6DAA6D;AAAA,EAC9E;AACD;AAEO,MAAM,sBAAqD,kBAAqB;AAAA,EAGtF,YACS,QACA,aACA,QACA,SACA,QACA,QACA,wBACR,YACA,aACQ,oBACP;AACD,UAAM,EAAE,KAAK,aAAa,OAAO,GAAG,YAAY,WAAW;AAXnD;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAAA,EAGT;AAAA,EAfA,QAA0B,UAAU,IAAY;AAAA,EAiBhD,MAAM,SAAS,oBAAyD,CAAC,GAA0B;AAClG,WAAO,OAAO,gBAAgB,mBAAmB,OAAO,SAAS;AAChE,YAAM,SAAS,iBAAiB,KAAK,QAAQ,iBAAiB;AAC9D,YAAM,EAAE,QAAQ,QAAQ,aAAa,qBAAqB,oBAAoB,QAAQ,QAAQ,IAAI;AAElG,YAAM,cAAc;AAAA,QACnB,sBAAsB;AAAA,QACtB,wBAAwB,KAAK,UAAU,MAAM;AAAA,MAC9C,CAAC;AAED,aAAO,SAAS,aAAa,MAAM;AAEnC,UAAI,CAAC,UAAU,CAAC,oBAAoB;AACnC,eAAO,OAAO,gBAAgB,0BAA0B,YAAY;AACnE,gBAAM,EAAE,MAAAA,MAAK,IAAI,MAAM,OAAO,aAAa,QAAiB,WAAW,OAAO;AAE9E,iBAAOA;AAAA,QACR,CAAC;AAAA,MACF;AAEA,YAAM,OAAO,MAAM,OAAO,gBAAgB,0BAA0B,YAAY;AAC/E,cAAM,cAAc;AAAA,UACnB,sBAAsB;AAAA,UACtB,wBAAwB,KAAK,UAAU,MAAM;AAAA,QAC9C,CAAC;AAED,cAAM,EAAE,MAAAA,MAAK,IAAI,MAAM,OAAO,aAAa,QAAiB,OAAO,OAAO;AAE1E,eAAOA;AAAA,MACR,CAAC;AAED,aAAO,OAAO,gBAAgB,uBAAuB,MAAM;AAC1D,eAAO,qBACJ,mBAAmB,IAAI,IACvB,KAAK,IAAI,CAAC,QAAQ,aAA2B,QAAS,KAAK,mBAAmB,CAAC;AAAA,MACnF,CAAC;AAAA,IACF,CAAC;AAAA,EACF;AAAA,EAEA,MAAM,MAAM;AAAA,EACZ;AAAA;AAAA,EAGA,wBAAiC;AAChC,WAAO,KAAK;AAAA,EACb;AACD;","names":["rows"]}
|
package/pglite/driver.cjs
CHANGED
|
@@ -32,14 +32,15 @@ var import_relations = require("../relations.cjs");
|
|
|
32
32
|
var import_utils = require("../utils.cjs");
|
|
33
33
|
var import_session = require("./session.cjs");
|
|
34
34
|
class PgliteDriver {
|
|
35
|
-
constructor(client, dialect, options = {}) {
|
|
35
|
+
constructor(client, dialect, options = {}, extensions) {
|
|
36
36
|
this.client = client;
|
|
37
37
|
this.dialect = dialect;
|
|
38
38
|
this.options = options;
|
|
39
|
+
this.extensions = extensions;
|
|
39
40
|
}
|
|
40
41
|
static [import_entity.entityKind] = "PgliteDriver";
|
|
41
42
|
createSession(schema) {
|
|
42
|
-
return new import_session.PgliteSession(this.client, this.dialect, schema, { logger: this.options.logger });
|
|
43
|
+
return new import_session.PgliteSession(this.client, this.dialect, schema, { logger: this.options.logger }, this.extensions);
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
46
|
class PgliteDatabase extends import_db.PgDatabase {
|
|
@@ -65,9 +66,10 @@ function construct(client, config = {}) {
|
|
|
65
66
|
tableNamesMap: tablesConfig.tableNamesMap
|
|
66
67
|
};
|
|
67
68
|
}
|
|
68
|
-
const
|
|
69
|
+
const extensions = config.extensions;
|
|
70
|
+
const driver = new PgliteDriver(client, dialect, { logger }, extensions);
|
|
69
71
|
const session = driver.createSession(schema);
|
|
70
|
-
const db = new PgliteDatabase(dialect, session, schema);
|
|
72
|
+
const db = new PgliteDatabase(dialect, session, schema, extensions);
|
|
71
73
|
db.$client = client;
|
|
72
74
|
return db;
|
|
73
75
|
}
|
package/pglite/driver.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/pglite/driver.ts"],"sourcesContent":["import { PGlite, type PGliteOptions } from '@electric-sql/pglite';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { PgliteClient, PgliteQueryResultHKT } from './session.ts';\nimport { PgliteSession } from './session.ts';\n\nexport interface PgDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class PgliteDriver {\n\tstatic readonly [entityKind]: string = 'PgliteDriver';\n\n\tconstructor(\n\t\tprivate client: PgliteClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: PgDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): PgliteSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new PgliteSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n}\n\nexport class PgliteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<PgliteQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgliteDatabase';\n}\n\nfunction construct<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: PgliteClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): PgliteDatabase<TSchema> & {\n\t$client: PgliteClient;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new PgliteDriver(client, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\tconst db = new PgliteDatabase(dialect, session, schema as any) as PgliteDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends PGlite = PGlite,\n>(\n\t...params:\n\t\t| []\n\t\t| [\n\t\t\tTClient | string,\n\t\t]\n\t\t| [\n\t\t\tTClient | string,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection?: (PGliteOptions & { dataDir?: string }) | string;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): PgliteDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (params[0] === undefined || typeof params[0] === 'string') {\n\t\tconst instance = new PGlite(params[0]);\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as {\n\t\t\tconnection?: PGliteOptions & { dataDir: string };\n\t\t\tclient?: TClient;\n\t\t} & DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tif (typeof connection === 'object') {\n\t\t\tconst { dataDir, ...options } = connection;\n\n\t\t\tconst instance = new PGlite(dataDir, options);\n\n\t\t\treturn construct(instance, drizzleConfig) as any;\n\t\t}\n\n\t\tconst instance = new PGlite(connection);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): PgliteDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2C;AAC3C,oBAA2B;
|
|
1
|
+
{"version":3,"sources":["../../src/pglite/driver.ts"],"sourcesContent":["import { PGlite, type PGliteOptions } from '@electric-sql/pglite';\nimport { entityKind } from '~/entity.ts';\nimport type { DrizzlePgExtension } from '~/extension-core/pg/index.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { PgliteClient, PgliteQueryResultHKT } from './session.ts';\nimport { PgliteSession } from './session.ts';\n\nexport interface PgDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class PgliteDriver {\n\tstatic readonly [entityKind]: string = 'PgliteDriver';\n\n\tconstructor(\n\t\tprivate client: PgliteClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: PgDriverOptions = {},\n\t\tprivate extensions?: DrizzlePgExtension[],\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): PgliteSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new PgliteSession(this.client, this.dialect, schema, { logger: this.options.logger }, this.extensions);\n\t}\n}\n\nexport class PgliteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<PgliteQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgliteDatabase';\n}\n\nfunction construct<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: PgliteClient,\n\tconfig: DrizzleConfig<TSchema, DrizzlePgExtension> = {},\n): PgliteDatabase<TSchema> & {\n\t$client: PgliteClient;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst extensions = config.extensions;\n\tconst driver = new PgliteDriver(client, dialect, { logger }, extensions);\n\tconst session = driver.createSession(schema);\n\tconst db = new PgliteDatabase(dialect, session, schema as any, extensions) as PgliteDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends PGlite = PGlite,\n>(\n\t...params:\n\t\t| []\n\t\t| [\n\t\t\tTClient | string,\n\t\t]\n\t\t| [\n\t\t\tTClient | string,\n\t\t\tDrizzleConfig<TSchema, DrizzlePgExtension>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema, DrizzlePgExtension>\n\t\t\t\t& ({\n\t\t\t\t\tconnection?: (PGliteOptions & { dataDir?: string }) | string;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): PgliteDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (params[0] === undefined || typeof params[0] === 'string') {\n\t\tconst instance = new PGlite(params[0]);\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as {\n\t\t\tconnection?: PGliteOptions & { dataDir: string };\n\t\t\tclient?: TClient;\n\t\t} & DrizzleConfig<TSchema, DrizzlePgExtension>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tif (typeof connection === 'object') {\n\t\t\tconst { dataDir, ...options } = connection;\n\n\t\t\tconst instance = new PGlite(dataDir, options);\n\n\t\t\treturn construct(instance, drizzleConfig) as any;\n\t\t}\n\n\t\tconst instance = new PGlite(connection);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema, DrizzlePgExtension> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema, DrizzlePgExtension>,\n\t): PgliteDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2C;AAC3C,oBAA2B;AAG3B,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAC1B,uBAKO;AACP,mBAA6C;AAE7C,qBAA8B;AAMvB,MAAM,aAAa;AAAA,EAGzB,YACS,QACA,SACA,UAA2B,CAAC,GAC5B,YACP;AAJO;AACA;AACA;AACA;AAAA,EAET;AAAA,EARA,QAAiB,wBAAU,IAAY;AAAA,EAUvC,cACC,QACiE;AACjE,WAAO,IAAI,6BAAc,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,GAAG,KAAK,UAAU;AAAA,EAC7G;AACD;AAEO,MAAM,uBAEH,qBAA0C;AAAA,EACnD,QAA0B,wBAAU,IAAY;AACjD;AAEA,SAAS,UACR,QACA,SAAqD,CAAC,GAGrD;AACD,QAAM,UAAU,IAAI,yBAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,aAAa,OAAO;AAC1B,QAAM,SAAS,IAAI,aAAa,QAAQ,SAAS,EAAE,OAAO,GAAG,UAAU;AACvE,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,QAAe,UAAU;AACzE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAEO,SAAS,WAIZ,QAqBF;AACD,MAAI,OAAO,CAAC,MAAM,UAAa,OAAO,OAAO,CAAC,MAAM,UAAU;AAC7D,UAAM,WAAW,IAAI,qBAAO,OAAO,CAAC,CAAC;AACrC,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,QAAI,OAAO,eAAe,UAAU;AACnC,YAAM,EAAE,SAAS,GAAG,QAAQ,IAAI;AAEhC,YAAMA,YAAW,IAAI,qBAAO,SAAS,OAAO;AAE5C,aAAO,UAAUA,WAAU,aAAa;AAAA,IACzC;AAEA,UAAM,WAAW,IAAI,qBAAO,UAAU;AAEtC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAA2D;AAC3G;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["instance","drizzle"]}
|
package/pglite/driver.d.cts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PGlite, type PGliteOptions } from '@electric-sql/pglite';
|
|
2
2
|
import { entityKind } from "../entity.cjs";
|
|
3
|
+
import type { DrizzlePgExtension } from "../extension-core/pg/index.cjs";
|
|
3
4
|
import type { Logger } from "../logger.cjs";
|
|
4
5
|
import { PgDatabase } from "../pg-core/db.cjs";
|
|
5
6
|
import { PgDialect } from "../pg-core/dialect.cjs";
|
|
@@ -14,8 +15,9 @@ export declare class PgliteDriver {
|
|
|
14
15
|
private client;
|
|
15
16
|
private dialect;
|
|
16
17
|
private options;
|
|
18
|
+
private extensions?;
|
|
17
19
|
static readonly [entityKind]: string;
|
|
18
|
-
constructor(client: PgliteClient, dialect: PgDialect, options?: PgDriverOptions);
|
|
20
|
+
constructor(client: PgliteClient, dialect: PgDialect, options?: PgDriverOptions, extensions?: DrizzlePgExtension[] | undefined);
|
|
19
21
|
createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): PgliteSession<Record<string, unknown>, TablesRelationalConfig>;
|
|
20
22
|
}
|
|
21
23
|
export declare class PgliteDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<PgliteQueryResultHKT, TSchema> {
|
|
@@ -25,9 +27,9 @@ export declare function drizzle<TSchema extends Record<string, unknown> = Record
|
|
|
25
27
|
TClient | string
|
|
26
28
|
] | [
|
|
27
29
|
TClient | string,
|
|
28
|
-
DrizzleConfig<TSchema>
|
|
30
|
+
DrizzleConfig<TSchema, DrizzlePgExtension>
|
|
29
31
|
] | [
|
|
30
|
-
(DrizzleConfig<TSchema> & ({
|
|
32
|
+
(DrizzleConfig<TSchema, DrizzlePgExtension> & ({
|
|
31
33
|
connection?: (PGliteOptions & {
|
|
32
34
|
dataDir?: string;
|
|
33
35
|
}) | string;
|
|
@@ -38,7 +40,7 @@ export declare function drizzle<TSchema extends Record<string, unknown> = Record
|
|
|
38
40
|
$client: TClient;
|
|
39
41
|
};
|
|
40
42
|
export declare namespace drizzle {
|
|
41
|
-
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): PgliteDatabase<TSchema> & {
|
|
43
|
+
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema, DrizzlePgExtension>): PgliteDatabase<TSchema> & {
|
|
42
44
|
$client: '$client is not available on drizzle.mock()';
|
|
43
45
|
};
|
|
44
46
|
}
|
package/pglite/driver.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PGlite, type PGliteOptions } from '@electric-sql/pglite';
|
|
2
2
|
import { entityKind } from "../entity.js";
|
|
3
|
+
import type { DrizzlePgExtension } from "../extension-core/pg/index.js";
|
|
3
4
|
import type { Logger } from "../logger.js";
|
|
4
5
|
import { PgDatabase } from "../pg-core/db.js";
|
|
5
6
|
import { PgDialect } from "../pg-core/dialect.js";
|
|
@@ -14,8 +15,9 @@ export declare class PgliteDriver {
|
|
|
14
15
|
private client;
|
|
15
16
|
private dialect;
|
|
16
17
|
private options;
|
|
18
|
+
private extensions?;
|
|
17
19
|
static readonly [entityKind]: string;
|
|
18
|
-
constructor(client: PgliteClient, dialect: PgDialect, options?: PgDriverOptions);
|
|
20
|
+
constructor(client: PgliteClient, dialect: PgDialect, options?: PgDriverOptions, extensions?: DrizzlePgExtension[] | undefined);
|
|
19
21
|
createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): PgliteSession<Record<string, unknown>, TablesRelationalConfig>;
|
|
20
22
|
}
|
|
21
23
|
export declare class PgliteDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<PgliteQueryResultHKT, TSchema> {
|
|
@@ -25,9 +27,9 @@ export declare function drizzle<TSchema extends Record<string, unknown> = Record
|
|
|
25
27
|
TClient | string
|
|
26
28
|
] | [
|
|
27
29
|
TClient | string,
|
|
28
|
-
DrizzleConfig<TSchema>
|
|
30
|
+
DrizzleConfig<TSchema, DrizzlePgExtension>
|
|
29
31
|
] | [
|
|
30
|
-
(DrizzleConfig<TSchema> & ({
|
|
32
|
+
(DrizzleConfig<TSchema, DrizzlePgExtension> & ({
|
|
31
33
|
connection?: (PGliteOptions & {
|
|
32
34
|
dataDir?: string;
|
|
33
35
|
}) | string;
|
|
@@ -38,7 +40,7 @@ export declare function drizzle<TSchema extends Record<string, unknown> = Record
|
|
|
38
40
|
$client: TClient;
|
|
39
41
|
};
|
|
40
42
|
export declare namespace drizzle {
|
|
41
|
-
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): PgliteDatabase<TSchema> & {
|
|
43
|
+
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema, DrizzlePgExtension>): PgliteDatabase<TSchema> & {
|
|
42
44
|
$client: '$client is not available on drizzle.mock()';
|
|
43
45
|
};
|
|
44
46
|
}
|
package/pglite/driver.js
CHANGED
|
@@ -10,14 +10,15 @@ import {
|
|
|
10
10
|
import { isConfig } from "../utils.js";
|
|
11
11
|
import { PgliteSession } from "./session.js";
|
|
12
12
|
class PgliteDriver {
|
|
13
|
-
constructor(client, dialect, options = {}) {
|
|
13
|
+
constructor(client, dialect, options = {}, extensions) {
|
|
14
14
|
this.client = client;
|
|
15
15
|
this.dialect = dialect;
|
|
16
16
|
this.options = options;
|
|
17
|
+
this.extensions = extensions;
|
|
17
18
|
}
|
|
18
19
|
static [entityKind] = "PgliteDriver";
|
|
19
20
|
createSession(schema) {
|
|
20
|
-
return new PgliteSession(this.client, this.dialect, schema, { logger: this.options.logger });
|
|
21
|
+
return new PgliteSession(this.client, this.dialect, schema, { logger: this.options.logger }, this.extensions);
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
class PgliteDatabase extends PgDatabase {
|
|
@@ -43,9 +44,10 @@ function construct(client, config = {}) {
|
|
|
43
44
|
tableNamesMap: tablesConfig.tableNamesMap
|
|
44
45
|
};
|
|
45
46
|
}
|
|
46
|
-
const
|
|
47
|
+
const extensions = config.extensions;
|
|
48
|
+
const driver = new PgliteDriver(client, dialect, { logger }, extensions);
|
|
47
49
|
const session = driver.createSession(schema);
|
|
48
|
-
const db = new PgliteDatabase(dialect, session, schema);
|
|
50
|
+
const db = new PgliteDatabase(dialect, session, schema, extensions);
|
|
49
51
|
db.$client = client;
|
|
50
52
|
return db;
|
|
51
53
|
}
|
package/pglite/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/pglite/driver.ts"],"sourcesContent":["import { PGlite, type PGliteOptions } from '@electric-sql/pglite';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { PgliteClient, PgliteQueryResultHKT } from './session.ts';\nimport { PgliteSession } from './session.ts';\n\nexport interface PgDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class PgliteDriver {\n\tstatic readonly [entityKind]: string = 'PgliteDriver';\n\n\tconstructor(\n\t\tprivate client: PgliteClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: PgDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): PgliteSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new PgliteSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n}\n\nexport class PgliteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<PgliteQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgliteDatabase';\n}\n\nfunction construct<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: PgliteClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): PgliteDatabase<TSchema> & {\n\t$client: PgliteClient;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new PgliteDriver(client, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\tconst db = new PgliteDatabase(dialect, session, schema as any) as PgliteDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends PGlite = PGlite,\n>(\n\t...params:\n\t\t| []\n\t\t| [\n\t\t\tTClient | string,\n\t\t]\n\t\t| [\n\t\t\tTClient | string,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection?: (PGliteOptions & { dataDir?: string }) | string;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): PgliteDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (params[0] === undefined || typeof params[0] === 'string') {\n\t\tconst instance = new PGlite(params[0]);\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as {\n\t\t\tconnection?: PGliteOptions & { dataDir: string };\n\t\t\tclient?: TClient;\n\t\t} & DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tif (typeof connection === 'object') {\n\t\t\tconst { dataDir, ...options } = connection;\n\n\t\t\tconst instance = new PGlite(dataDir, options);\n\n\t\t\treturn construct(instance, drizzleConfig) as any;\n\t\t}\n\n\t\tconst instance = new PGlite(connection);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): PgliteDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,SAAS,cAAkC;AAC3C,SAAS,kBAAkB;
|
|
1
|
+
{"version":3,"sources":["../../src/pglite/driver.ts"],"sourcesContent":["import { PGlite, type PGliteOptions } from '@electric-sql/pglite';\nimport { entityKind } from '~/entity.ts';\nimport type { DrizzlePgExtension } from '~/extension-core/pg/index.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { PgliteClient, PgliteQueryResultHKT } from './session.ts';\nimport { PgliteSession } from './session.ts';\n\nexport interface PgDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class PgliteDriver {\n\tstatic readonly [entityKind]: string = 'PgliteDriver';\n\n\tconstructor(\n\t\tprivate client: PgliteClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: PgDriverOptions = {},\n\t\tprivate extensions?: DrizzlePgExtension[],\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): PgliteSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new PgliteSession(this.client, this.dialect, schema, { logger: this.options.logger }, this.extensions);\n\t}\n}\n\nexport class PgliteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<PgliteQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgliteDatabase';\n}\n\nfunction construct<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: PgliteClient,\n\tconfig: DrizzleConfig<TSchema, DrizzlePgExtension> = {},\n): PgliteDatabase<TSchema> & {\n\t$client: PgliteClient;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst extensions = config.extensions;\n\tconst driver = new PgliteDriver(client, dialect, { logger }, extensions);\n\tconst session = driver.createSession(schema);\n\tconst db = new PgliteDatabase(dialect, session, schema as any, extensions) as PgliteDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends PGlite = PGlite,\n>(\n\t...params:\n\t\t| []\n\t\t| [\n\t\t\tTClient | string,\n\t\t]\n\t\t| [\n\t\t\tTClient | string,\n\t\t\tDrizzleConfig<TSchema, DrizzlePgExtension>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema, DrizzlePgExtension>\n\t\t\t\t& ({\n\t\t\t\t\tconnection?: (PGliteOptions & { dataDir?: string }) | string;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): PgliteDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (params[0] === undefined || typeof params[0] === 'string') {\n\t\tconst instance = new PGlite(params[0]);\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as {\n\t\t\tconnection?: PGliteOptions & { dataDir: string };\n\t\t\tclient?: TClient;\n\t\t} & DrizzleConfig<TSchema, DrizzlePgExtension>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tif (typeof connection === 'object') {\n\t\t\tconst { dataDir, ...options } = connection;\n\n\t\t\tconst instance = new PGlite(dataDir, options);\n\n\t\t\treturn construct(instance, drizzleConfig) as any;\n\t\t}\n\n\t\tconst instance = new PGlite(connection);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema, DrizzlePgExtension> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema, DrizzlePgExtension>,\n\t): PgliteDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,SAAS,cAAkC;AAC3C,SAAS,kBAAkB;AAG3B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AACP,SAA6B,gBAAgB;AAE7C,SAAS,qBAAqB;AAMvB,MAAM,aAAa;AAAA,EAGzB,YACS,QACA,SACA,UAA2B,CAAC,GAC5B,YACP;AAJO;AACA;AACA;AACA;AAAA,EAET;AAAA,EARA,QAAiB,UAAU,IAAY;AAAA,EAUvC,cACC,QACiE;AACjE,WAAO,IAAI,cAAc,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,GAAG,KAAK,UAAU;AAAA,EAC7G;AACD;AAEO,MAAM,uBAEH,WAA0C;AAAA,EACnD,QAA0B,UAAU,IAAY;AACjD;AAEA,SAAS,UACR,QACA,SAAqD,CAAC,GAGrD;AACD,QAAM,UAAU,IAAI,UAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,aAAa,OAAO;AAC1B,QAAM,SAAS,IAAI,aAAa,QAAQ,SAAS,EAAE,OAAO,GAAG,UAAU;AACvE,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,QAAe,UAAU;AACzE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAEO,SAAS,WAIZ,QAqBF;AACD,MAAI,OAAO,CAAC,MAAM,UAAa,OAAO,OAAO,CAAC,MAAM,UAAU;AAC7D,UAAM,WAAW,IAAI,OAAO,OAAO,CAAC,CAAC;AACrC,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,QAAI,OAAO,eAAe,UAAU;AACnC,YAAM,EAAE,SAAS,GAAG,QAAQ,IAAI;AAEhC,YAAMA,YAAW,IAAI,OAAO,SAAS,OAAO;AAE5C,aAAO,UAAUA,WAAU,aAAa;AAAA,IACzC;AAEA,UAAM,WAAW,IAAI,OAAO,UAAU;AAEtC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAA2D;AAC3G;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["instance","drizzle"]}
|
package/pglite/session.cjs
CHANGED
|
@@ -31,8 +31,8 @@ var import_sql = require("../sql/sql.cjs");
|
|
|
31
31
|
var import_utils = require("../utils.cjs");
|
|
32
32
|
var import_pglite = require("@electric-sql/pglite");
|
|
33
33
|
class PglitePreparedQuery extends import_session.PgPreparedQuery {
|
|
34
|
-
constructor(client, queryString, params, logger, fields, name, _isResponseInArrayMode, customResultMapper) {
|
|
35
|
-
super({ sql: queryString, params });
|
|
34
|
+
constructor(client, queryString, params, logger, fields, name, _isResponseInArrayMode, extensions, hookContext, customResultMapper) {
|
|
35
|
+
super({ sql: queryString, params }, extensions, hookContext);
|
|
36
36
|
this.client = client;
|
|
37
37
|
this.queryString = queryString;
|
|
38
38
|
this.params = params;
|
|
@@ -82,7 +82,7 @@ class PglitePreparedQuery extends import_session.PgPreparedQuery {
|
|
|
82
82
|
static [import_entity.entityKind] = "PglitePreparedQuery";
|
|
83
83
|
rawQueryConfig;
|
|
84
84
|
queryConfig;
|
|
85
|
-
async
|
|
85
|
+
async _execute(placeholderValues = {}) {
|
|
86
86
|
const params = (0, import_sql.fillPlaceholders)(this.params, placeholderValues);
|
|
87
87
|
this.logger.logQuery(this.queryString, params);
|
|
88
88
|
const { fields, rawQueryConfig, client, queryConfig, joinsNotNullableMap, customResultMapper, queryString } = this;
|
|
@@ -103,8 +103,8 @@ class PglitePreparedQuery extends import_session.PgPreparedQuery {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
class PgliteSession extends import_session.PgSession {
|
|
106
|
-
constructor(client, dialect, schema, options = {}) {
|
|
107
|
-
super(dialect);
|
|
106
|
+
constructor(client, dialect, schema, options = {}, extensions) {
|
|
107
|
+
super(dialect, extensions);
|
|
108
108
|
this.client = client;
|
|
109
109
|
this.schema = schema;
|
|
110
110
|
this.options = options;
|
|
@@ -112,7 +112,7 @@ class PgliteSession extends import_session.PgSession {
|
|
|
112
112
|
}
|
|
113
113
|
static [import_entity.entityKind] = "PgliteSession";
|
|
114
114
|
logger;
|
|
115
|
-
prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper) {
|
|
115
|
+
prepareQuery(query, fields, name, isResponseInArrayMode, hookContext, customResultMapper) {
|
|
116
116
|
return new PglitePreparedQuery(
|
|
117
117
|
this.client,
|
|
118
118
|
query.sql,
|
|
@@ -121,6 +121,8 @@ class PgliteSession extends import_session.PgSession {
|
|
|
121
121
|
fields,
|
|
122
122
|
name,
|
|
123
123
|
isResponseInArrayMode,
|
|
124
|
+
this.extensions,
|
|
125
|
+
hookContext,
|
|
124
126
|
customResultMapper
|
|
125
127
|
);
|
|
126
128
|
}
|
|
@@ -130,9 +132,16 @@ class PgliteSession extends import_session.PgSession {
|
|
|
130
132
|
client,
|
|
131
133
|
this.dialect,
|
|
132
134
|
this.schema,
|
|
133
|
-
this.options
|
|
135
|
+
this.options,
|
|
136
|
+
this.extensions
|
|
137
|
+
);
|
|
138
|
+
const tx = new PgliteTransaction(
|
|
139
|
+
this.dialect,
|
|
140
|
+
session,
|
|
141
|
+
this.schema,
|
|
142
|
+
void 0,
|
|
143
|
+
this.extensions
|
|
134
144
|
);
|
|
135
|
-
const tx = new PgliteTransaction(this.dialect, session, this.schema);
|
|
136
145
|
if (config) {
|
|
137
146
|
await tx.setTransaction(config);
|
|
138
147
|
}
|
|
@@ -154,7 +163,8 @@ class PgliteTransaction extends import_pg_core.PgTransaction {
|
|
|
154
163
|
this.dialect,
|
|
155
164
|
this.session,
|
|
156
165
|
this.schema,
|
|
157
|
-
this.nestedIndex + 1
|
|
166
|
+
this.nestedIndex + 1,
|
|
167
|
+
this._.extensions
|
|
158
168
|
);
|
|
159
169
|
await tx.execute(import_sql.sql.raw(`savepoint ${savepointName}`));
|
|
160
170
|
try {
|
package/pglite/session.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/pglite/session.ts"],"sourcesContent":["import type { PGlite, QueryOptions, Results, Row, Transaction } from '@electric-sql/pglite';\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nimport { types } from '@electric-sql/pglite';\n\nexport type PgliteClient = PGlite;\n\nexport class PglitePreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'PglitePreparedQuery';\n\n\tprivate rawQueryConfig: QueryOptions;\n\tprivate queryConfig: QueryOptions;\n\n\tconstructor(\n\t\tprivate client: PgliteClient | Transaction,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t\tthis.rawQueryConfig = {\n\t\t\trowMode: 'object',\n\t\t\tparsers: {\n\t\t\t\t[types.TIMESTAMP]: (value) => value,\n\t\t\t\t[types.TIMESTAMPTZ]: (value) => value,\n\t\t\t\t[types.INTERVAL]: (value) => value,\n\t\t\t\t[types.DATE]: (value) => value,\n\t\t\t\t// numeric[]\n\t\t\t\t[1231]: (value) => value,\n\t\t\t\t// timestamp[]\n\t\t\t\t[1115]: (value) => value,\n\t\t\t\t// timestamp with timezone[]\n\t\t\t\t[1185]: (value) => value,\n\t\t\t\t// interval[]\n\t\t\t\t[1187]: (value) => value,\n\t\t\t\t// date[]\n\t\t\t\t[1182]: (value) => value,\n\t\t\t},\n\t\t};\n\t\tthis.queryConfig = {\n\t\t\trowMode: 'array',\n\t\t\tparsers: {\n\t\t\t\t[types.TIMESTAMP]: (value) => value,\n\t\t\t\t[types.TIMESTAMPTZ]: (value) => value,\n\t\t\t\t[types.INTERVAL]: (value) => value,\n\t\t\t\t[types.DATE]: (value) => value,\n\t\t\t\t// numeric[]\n\t\t\t\t[1231]: (value) => value,\n\t\t\t\t// timestamp[]\n\t\t\t\t[1115]: (value) => value,\n\t\t\t\t// timestamp with timezone[]\n\t\t\t\t[1185]: (value) => value,\n\t\t\t\t// interval[]\n\t\t\t\t[1187]: (value) => value,\n\t\t\t\t// date[]\n\t\t\t\t[1182]: (value) => value,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\tconst { fields, rawQueryConfig, client, queryConfig, joinsNotNullableMap, customResultMapper, queryString } = this;\n\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn client.query<any[]>(queryString, params, rawQueryConfig);\n\t\t}\n\n\t\tconst result = await client.query<any[][]>(queryString, params, queryConfig);\n\n\t\treturn customResultMapper\n\t\t\t? customResultMapper(result.rows)\n\t\t\t: result.rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tthis.logger.logQuery(this.queryString, params);\n\t\treturn this.client.query(this.queryString, params, this.rawQueryConfig).then((result) => result.rows);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface PgliteSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PgliteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<PgliteQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgliteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: PgliteClient | Transaction,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: PgliteSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new PglitePreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: PgliteTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig | undefined,\n\t): Promise<T> {\n\t\treturn (this.client as PgliteClient).transaction(async (client) => {\n\t\t\tconst session = new PgliteSession<TFullSchema, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t);\n\t\t\tconst tx = new PgliteTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\t\tif (config) {\n\t\t\t\tawait tx.setTransaction(config);\n\t\t\t}\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n}\n\nexport class PgliteTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<PgliteQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgliteTransaction';\n\n\toverride async transaction<T>(transaction: (tx: PgliteTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new PgliteTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface PgliteQueryResultHKT extends PgQueryResultHKT {\n\ttype: Results<Assume<this['row'], Row>>;\n}\n"],"mappings":"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","names":["sql"]}
|
|
1
|
+
{"version":3,"sources":["../../src/pglite/session.ts"],"sourcesContent":["import type { PGlite, QueryOptions, Results, Row, Transaction } from '@electric-sql/pglite';\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nimport { types } from '@electric-sql/pglite';\nimport type { BlankPgHookContext, DrizzlePgExtension } from '~/extension-core/pg/index.ts';\n\nexport type PgliteClient = PGlite;\n\nexport class PglitePreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'PglitePreparedQuery';\n\n\tprivate rawQueryConfig: QueryOptions;\n\tprivate queryConfig: QueryOptions;\n\n\tconstructor(\n\t\tprivate client: PgliteClient | Transaction,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\textensions?: DrizzlePgExtension[],\n\t\thookContext?: BlankPgHookContext,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params }, extensions, hookContext);\n\t\tthis.rawQueryConfig = {\n\t\t\trowMode: 'object',\n\t\t\tparsers: {\n\t\t\t\t[types.TIMESTAMP]: (value) => value,\n\t\t\t\t[types.TIMESTAMPTZ]: (value) => value,\n\t\t\t\t[types.INTERVAL]: (value) => value,\n\t\t\t\t[types.DATE]: (value) => value,\n\t\t\t\t// numeric[]\n\t\t\t\t[1231]: (value) => value,\n\t\t\t\t// timestamp[]\n\t\t\t\t[1115]: (value) => value,\n\t\t\t\t// timestamp with timezone[]\n\t\t\t\t[1185]: (value) => value,\n\t\t\t\t// interval[]\n\t\t\t\t[1187]: (value) => value,\n\t\t\t\t// date[]\n\t\t\t\t[1182]: (value) => value,\n\t\t\t},\n\t\t};\n\t\tthis.queryConfig = {\n\t\t\trowMode: 'array',\n\t\t\tparsers: {\n\t\t\t\t[types.TIMESTAMP]: (value) => value,\n\t\t\t\t[types.TIMESTAMPTZ]: (value) => value,\n\t\t\t\t[types.INTERVAL]: (value) => value,\n\t\t\t\t[types.DATE]: (value) => value,\n\t\t\t\t// numeric[]\n\t\t\t\t[1231]: (value) => value,\n\t\t\t\t// timestamp[]\n\t\t\t\t[1115]: (value) => value,\n\t\t\t\t// timestamp with timezone[]\n\t\t\t\t[1185]: (value) => value,\n\t\t\t\t// interval[]\n\t\t\t\t[1187]: (value) => value,\n\t\t\t\t// date[]\n\t\t\t\t[1182]: (value) => value,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync _execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\tconst { fields, rawQueryConfig, client, queryConfig, joinsNotNullableMap, customResultMapper, queryString } = this;\n\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn client.query<any[]>(queryString, params, rawQueryConfig);\n\t\t}\n\n\t\tconst result = await client.query<any[][]>(queryString, params, queryConfig);\n\n\t\treturn customResultMapper\n\t\t\t? customResultMapper(result.rows)\n\t\t\t: result.rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tthis.logger.logQuery(this.queryString, params);\n\t\treturn this.client.query(this.queryString, params, this.rawQueryConfig).then((result) => result.rows);\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface PgliteSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class PgliteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgSession<PgliteQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgliteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: PgliteClient | Transaction,\n\t\tdialect: PgDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: PgliteSessionOptions = {},\n\t\textensions?: DrizzlePgExtension[],\n\t) {\n\t\tsuper(dialect, extensions);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\thookContext?: BlankPgHookContext,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new PglitePreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tisResponseInArrayMode,\n\t\t\tthis.extensions,\n\t\t\thookContext,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: PgliteTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig | undefined,\n\t): Promise<T> {\n\t\treturn (this.client as PgliteClient).transaction(async (client) => {\n\t\t\tconst session = new PgliteSession<TFullSchema, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t\tthis.extensions,\n\t\t\t);\n\t\t\tconst tx = new PgliteTransaction<TFullSchema, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession,\n\t\t\t\tthis.schema,\n\t\t\t\tundefined,\n\t\t\t\tthis.extensions,\n\t\t\t);\n\t\t\tif (config) {\n\t\t\t\tawait tx.setTransaction(config);\n\t\t\t}\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n}\n\nexport class PgliteTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends PgTransaction<PgliteQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'PgliteTransaction';\n\n\toverride async transaction<T>(transaction: (tx: PgliteTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new PgliteTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t\tthis._.extensions,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface PgliteQueryResultHKT extends PgQueryResultHKT {\n\ttype: Results<Assume<this['row'], Row>>;\n}\n"],"mappings":"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","names":["sql"]}
|
package/pglite/session.d.cts
CHANGED
|
@@ -9,6 +9,7 @@ import { PgPreparedQuery, PgSession } from "../pg-core/session.cjs";
|
|
|
9
9
|
import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
|
|
10
10
|
import { type Query, type SQL } from "../sql/sql.cjs";
|
|
11
11
|
import { type Assume } from "../utils.cjs";
|
|
12
|
+
import type { BlankPgHookContext, DrizzlePgExtension } from "../extension-core/pg/index.cjs";
|
|
12
13
|
export type PgliteClient = PGlite;
|
|
13
14
|
export declare class PglitePreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {
|
|
14
15
|
private client;
|
|
@@ -21,8 +22,8 @@ export declare class PglitePreparedQuery<T extends PreparedQueryConfig> extends
|
|
|
21
22
|
static readonly [entityKind]: string;
|
|
22
23
|
private rawQueryConfig;
|
|
23
24
|
private queryConfig;
|
|
24
|
-
constructor(client: PgliteClient | Transaction, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
|
|
25
|
-
|
|
25
|
+
constructor(client: PgliteClient | Transaction, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, _isResponseInArrayMode: boolean, extensions?: DrizzlePgExtension[], hookContext?: BlankPgHookContext, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
|
|
26
|
+
_execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
|
|
26
27
|
all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
|
|
27
28
|
}
|
|
28
29
|
export interface PgliteSessionOptions {
|
|
@@ -34,8 +35,8 @@ export declare class PgliteSession<TFullSchema extends Record<string, unknown>,
|
|
|
34
35
|
private options;
|
|
35
36
|
static readonly [entityKind]: string;
|
|
36
37
|
private logger;
|
|
37
|
-
constructor(client: PgliteClient | Transaction, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: PgliteSessionOptions);
|
|
38
|
-
prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute']): PgPreparedQuery<T>;
|
|
38
|
+
constructor(client: PgliteClient | Transaction, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: PgliteSessionOptions, extensions?: DrizzlePgExtension[]);
|
|
39
|
+
prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, hookContext?: BlankPgHookContext, customResultMapper?: (rows: unknown[][]) => T['execute']): PgPreparedQuery<T>;
|
|
39
40
|
transaction<T>(transaction: (tx: PgliteTransaction<TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig | undefined): Promise<T>;
|
|
40
41
|
count(sql: SQL): Promise<number>;
|
|
41
42
|
}
|
package/pglite/session.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import { PgPreparedQuery, PgSession } from "../pg-core/session.js";
|
|
|
9
9
|
import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
|
|
10
10
|
import { type Query, type SQL } from "../sql/sql.js";
|
|
11
11
|
import { type Assume } from "../utils.js";
|
|
12
|
+
import type { BlankPgHookContext, DrizzlePgExtension } from "../extension-core/pg/index.js";
|
|
12
13
|
export type PgliteClient = PGlite;
|
|
13
14
|
export declare class PglitePreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {
|
|
14
15
|
private client;
|
|
@@ -21,8 +22,8 @@ export declare class PglitePreparedQuery<T extends PreparedQueryConfig> extends
|
|
|
21
22
|
static readonly [entityKind]: string;
|
|
22
23
|
private rawQueryConfig;
|
|
23
24
|
private queryConfig;
|
|
24
|
-
constructor(client: PgliteClient | Transaction, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
|
|
25
|
-
|
|
25
|
+
constructor(client: PgliteClient | Transaction, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, _isResponseInArrayMode: boolean, extensions?: DrizzlePgExtension[], hookContext?: BlankPgHookContext, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
|
|
26
|
+
_execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
|
|
26
27
|
all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
|
|
27
28
|
}
|
|
28
29
|
export interface PgliteSessionOptions {
|
|
@@ -34,8 +35,8 @@ export declare class PgliteSession<TFullSchema extends Record<string, unknown>,
|
|
|
34
35
|
private options;
|
|
35
36
|
static readonly [entityKind]: string;
|
|
36
37
|
private logger;
|
|
37
|
-
constructor(client: PgliteClient | Transaction, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: PgliteSessionOptions);
|
|
38
|
-
prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute']): PgPreparedQuery<T>;
|
|
38
|
+
constructor(client: PgliteClient | Transaction, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: PgliteSessionOptions, extensions?: DrizzlePgExtension[]);
|
|
39
|
+
prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, hookContext?: BlankPgHookContext, customResultMapper?: (rows: unknown[][]) => T['execute']): PgPreparedQuery<T>;
|
|
39
40
|
transaction<T>(transaction: (tx: PgliteTransaction<TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig | undefined): Promise<T>;
|
|
40
41
|
count(sql: SQL): Promise<number>;
|
|
41
42
|
}
|