drizzle-orm 0.44.0 → 0.44.2-512acc4
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 +14 -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 +14 -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 +4 -4
- package/better-sqlite3/session.cjs.map +1 -1
- package/better-sqlite3/session.d.cts +4 -4
- package/better-sqlite3/session.d.ts +4 -4
- package/better-sqlite3/session.js +4 -4
- 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 +4 -4
- package/bun-sqlite/session.cjs.map +1 -1
- package/bun-sqlite/session.d.cts +4 -4
- package/bun-sqlite/session.d.ts +4 -4
- package/bun-sqlite/session.js +4 -4
- 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 +9 -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 +9 -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 +4 -4
- package/durable-sqlite/session.d.ts +4 -4
- 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 +4 -4
- package/expo-sqlite/session.cjs.map +1 -1
- package/expo-sqlite/session.d.cts +4 -4
- package/expo-sqlite/session.d.ts +4 -4
- package/expo-sqlite/session.js +4 -4
- 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 +313 -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 +280 -0
- package/extensions/s3-file/common.js.map +1 -0
- package/extensions/s3-file/gel/column.cjs +113 -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 +92 -0
- package/extensions/s3-file/gel/column.js.map +1 -0
- package/extensions/s3-file/gel/extension.cjs +262 -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 +248 -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 +110 -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 +86 -0
- package/extensions/s3-file/mysql/column.js.map +1 -0
- package/extensions/s3-file/mysql/extension.cjs +242 -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 +228 -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 +113 -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 +92 -0
- package/extensions/s3-file/pg/column.js.map +1 -0
- package/extensions/s3-file/pg/extension.cjs +264 -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 +250 -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 +110 -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 +86 -0
- package/extensions/s3-file/singlestore/column.js.map +1 -0
- package/extensions/s3-file/singlestore/extension.cjs +239 -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 +225 -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 +110 -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 +86 -0
- package/extensions/s3-file/sqlite/column.js.map +1 -0
- package/extensions/s3-file/sqlite/extension.cjs +242 -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 +228 -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 +24 -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 +25 -20
- package/gel-core/dialect.js.map +1 -1
- package/gel-core/query-builders/delete.cjs +19 -5
- package/gel-core/query-builders/delete.cjs.map +1 -1
- package/gel-core/query-builders/delete.js +19 -5
- package/gel-core/query-builders/delete.js.map +1 -1
- package/gel-core/query-builders/insert.cjs +44 -9
- package/gel-core/query-builders/insert.cjs.map +1 -1
- package/gel-core/query-builders/insert.js +46 -11
- package/gel-core/query-builders/insert.js.map +1 -1
- package/gel-core/query-builders/query.cjs +15 -2
- package/gel-core/query-builders/query.cjs.map +1 -1
- package/gel-core/query-builders/query.js +15 -2
- package/gel-core/query-builders/query.js.map +1 -1
- package/gel-core/query-builders/select.cjs +21 -5
- package/gel-core/query-builders/select.cjs.map +1 -1
- package/gel-core/query-builders/select.d.cts +9 -9
- package/gel-core/query-builders/select.d.ts +9 -9
- package/gel-core/query-builders/select.js +21 -5
- package/gel-core/query-builders/select.js.map +1 -1
- package/gel-core/query-builders/select.types.cjs.map +1 -1
- package/gel-core/query-builders/select.types.d.cts +2 -1
- package/gel-core/query-builders/select.types.d.ts +2 -1
- package/gel-core/query-builders/update.cjs +20 -6
- package/gel-core/query-builders/update.cjs.map +1 -1
- package/gel-core/query-builders/update.js +20 -6
- package/gel-core/query-builders/update.js.map +1 -1
- package/gel-core/session.cjs +47 -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 +47 -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 +29 -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 +30 -24
- package/mysql-core/dialect.js.map +1 -1
- package/mysql-core/query-builders/delete.cjs +8 -1
- package/mysql-core/query-builders/delete.cjs.map +1 -1
- package/mysql-core/query-builders/delete.js +8 -1
- package/mysql-core/query-builders/delete.js.map +1 -1
- package/mysql-core/query-builders/insert.cjs +30 -6
- package/mysql-core/query-builders/insert.cjs.map +1 -1
- package/mysql-core/query-builders/insert.js +32 -8
- package/mysql-core/query-builders/insert.js.map +1 -1
- package/mysql-core/query-builders/query.cjs +19 -3
- package/mysql-core/query-builders/query.cjs.map +1 -1
- package/mysql-core/query-builders/query.js +19 -3
- package/mysql-core/query-builders/query.js.map +1 -1
- package/mysql-core/query-builders/select.cjs +23 -6
- package/mysql-core/query-builders/select.cjs.map +1 -1
- package/mysql-core/query-builders/select.d.cts +8 -8
- package/mysql-core/query-builders/select.d.ts +8 -8
- package/mysql-core/query-builders/select.js +23 -6
- package/mysql-core/query-builders/select.js.map +1 -1
- package/mysql-core/query-builders/select.types.cjs.map +1 -1
- package/mysql-core/query-builders/select.types.d.cts +2 -1
- package/mysql-core/query-builders/select.types.d.ts +2 -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 +43 -4
- package/mysql-core/session.cjs.map +1 -1
- package/mysql-core/session.d.cts +14 -7
- package/mysql-core/session.d.ts +14 -7
- package/mysql-core/session.js +43 -4
- 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 +11 -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 +11 -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 +3 -2
- 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 +3 -2
- package/op-sqlite/driver.js.map +1 -1
- package/op-sqlite/session.cjs +20 -11
- package/op-sqlite/session.cjs.map +1 -1
- package/op-sqlite/session.d.cts +8 -7
- package/op-sqlite/session.d.ts +8 -7
- package/op-sqlite/session.js +20 -11
- package/op-sqlite/session.js.map +1 -1
- package/package.json +351 -5
- 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 +25 -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 +26 -20
- package/pg-core/dialect.js.map +1 -1
- package/pg-core/query-builders/delete.cjs +19 -5
- package/pg-core/query-builders/delete.cjs.map +1 -1
- package/pg-core/query-builders/delete.js +19 -5
- package/pg-core/query-builders/delete.js.map +1 -1
- package/pg-core/query-builders/insert.cjs +49 -9
- package/pg-core/query-builders/insert.cjs.map +1 -1
- package/pg-core/query-builders/insert.js +51 -11
- package/pg-core/query-builders/insert.js.map +1 -1
- package/pg-core/query-builders/query.cjs +15 -2
- package/pg-core/query-builders/query.cjs.map +1 -1
- package/pg-core/query-builders/query.js +15 -2
- package/pg-core/query-builders/query.js.map +1 -1
- package/pg-core/query-builders/select.cjs +23 -7
- package/pg-core/query-builders/select.cjs.map +1 -1
- package/pg-core/query-builders/select.d.cts +9 -9
- package/pg-core/query-builders/select.d.ts +9 -9
- package/pg-core/query-builders/select.js +23 -7
- package/pg-core/query-builders/select.js.map +1 -1
- package/pg-core/query-builders/select.types.cjs.map +1 -1
- package/pg-core/query-builders/select.types.d.cts +2 -1
- package/pg-core/query-builders/select.types.d.ts +2 -1
- package/pg-core/query-builders/update.cjs +20 -6
- package/pg-core/query-builders/update.cjs.map +1 -1
- package/pg-core/query-builders/update.js +20 -6
- package/pg-core/query-builders/update.js.map +1 -1
- package/pg-core/session.cjs +48 -4
- package/pg-core/session.cjs.map +1 -1
- package/pg-core/session.d.cts +12 -6
- package/pg-core/session.d.ts +12 -6
- package/pg-core/session.js +48 -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 +10 -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 +10 -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 +10 -5
- package/prisma/mysql/session.d.ts +10 -5
- 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 +10 -5
- package/prisma/pg/session.d.ts +10 -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 +10 -10
- package/prisma/sqlite/session.cjs.map +1 -1
- package/prisma/sqlite/session.d.cts +12 -7
- package/prisma/sqlite/session.d.ts +12 -7
- package/prisma/sqlite/session.js +10 -10
- package/prisma/sqlite/session.js.map +1 -1
- package/singlestore/driver.cjs +34 -25
- 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 +34 -25
- 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 +24 -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 +25 -19
- package/singlestore-core/dialect.js.map +1 -1
- package/singlestore-core/query-builders/delete.cjs +8 -1
- package/singlestore-core/query-builders/delete.cjs.map +1 -1
- package/singlestore-core/query-builders/delete.js +8 -1
- package/singlestore-core/query-builders/delete.js.map +1 -1
- package/singlestore-core/query-builders/insert.cjs +30 -5
- package/singlestore-core/query-builders/insert.cjs.map +1 -1
- package/singlestore-core/query-builders/insert.js +32 -7
- package/singlestore-core/query-builders/insert.js.map +1 -1
- package/singlestore-core/query-builders/query.cjs +17 -2
- package/singlestore-core/query-builders/query.cjs.map +1 -1
- package/singlestore-core/query-builders/query.js +17 -2
- package/singlestore-core/query-builders/query.js.map +1 -1
- package/singlestore-core/query-builders/select.cjs +24 -7
- package/singlestore-core/query-builders/select.cjs.map +1 -1
- package/singlestore-core/query-builders/select.d.cts +9 -9
- package/singlestore-core/query-builders/select.d.ts +9 -9
- package/singlestore-core/query-builders/select.js +24 -7
- package/singlestore-core/query-builders/select.js.map +1 -1
- package/singlestore-core/query-builders/select.types.cjs.map +1 -1
- package/singlestore-core/query-builders/select.types.d.cts +2 -1
- package/singlestore-core/query-builders/select.types.d.ts +2 -1
- package/singlestore-core/query-builders/update.cjs +9 -2
- package/singlestore-core/query-builders/update.cjs.map +1 -1
- package/singlestore-core/query-builders/update.js +9 -2
- package/singlestore-core/query-builders/update.js.map +1 -1
- package/singlestore-core/session.cjs +43 -4
- package/singlestore-core/session.cjs.map +1 -1
- package/singlestore-core/session.d.cts +14 -6
- package/singlestore-core/session.d.ts +14 -6
- package/singlestore-core/session.js +43 -4
- 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 +9 -6
- package/singlestore-proxy/session.d.ts +9 -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 +29 -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 +30 -20
- package/sqlite-core/dialect.js.map +1 -1
- package/sqlite-core/query-builders/delete.cjs +8 -1
- package/sqlite-core/query-builders/delete.cjs.map +1 -1
- package/sqlite-core/query-builders/delete.js +8 -1
- package/sqlite-core/query-builders/delete.js.map +1 -1
- package/sqlite-core/query-builders/insert.cjs +28 -4
- package/sqlite-core/query-builders/insert.cjs.map +1 -1
- package/sqlite-core/query-builders/insert.js +35 -6
- package/sqlite-core/query-builders/insert.js.map +1 -1
- package/sqlite-core/query-builders/query.cjs +15 -2
- package/sqlite-core/query-builders/query.cjs.map +1 -1
- package/sqlite-core/query-builders/query.js +15 -2
- 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.d.cts +6 -6
- package/sqlite-core/query-builders/select.d.ts +6 -6
- package/sqlite-core/query-builders/select.js +15 -6
- package/sqlite-core/query-builders/select.js.map +1 -1
- package/sqlite-core/query-builders/select.types.cjs.map +1 -1
- package/sqlite-core/query-builders/select.types.d.cts +2 -1
- package/sqlite-core/query-builders/select.types.d.ts +2 -1
- package/sqlite-core/query-builders/update.cjs +9 -2
- package/sqlite-core/query-builders/update.cjs.map +1 -1
- package/sqlite-core/query-builders/update.js +9 -2
- package/sqlite-core/query-builders/update.js.map +1 -1
- package/sqlite-core/session.cjs +81 -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 +81 -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 +16 -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 +16 -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 +38 -2
- package/utils.cjs.map +1 -1
- package/utils.d.cts +6 -2
- package/utils.d.ts +6 -2
- package/utils.js +39 -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/gel/driver.cjs
CHANGED
|
@@ -32,17 +32,18 @@ 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 GelDriver {
|
|
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] = "GelDriver";
|
|
41
42
|
createSession(schema) {
|
|
42
43
|
return new import_session.GelDbSession(this.client, this.dialect, schema, {
|
|
43
44
|
logger: this.options.logger,
|
|
44
45
|
cache: this.options.cache
|
|
45
|
-
});
|
|
46
|
+
}, this.extensions);
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
class GelJsDatabase extends import_db.GelDatabase {
|
|
@@ -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 GelDriver(client, dialect, { logger, cache: config.cache }, extensions);
|
|
69
71
|
const session = driver.createSession(schema);
|
|
70
|
-
const db = new GelJsDatabase(dialect, session, schema);
|
|
72
|
+
const db = new GelJsDatabase(dialect, session, schema, extensions);
|
|
71
73
|
db.$client = client;
|
|
72
74
|
db.$cache = config.cache;
|
|
73
75
|
if (db.$cache) {
|
package/gel/driver.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/gel/driver.ts"],"sourcesContent":["import { type Client, type ConnectOptions, createClient } from 'gel';\nimport type { Cache } from '~/cache/core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport { GelDatabase } from '~/gel-core/db.ts';\nimport { GelDialect } from '~/gel-core/dialect.ts';\nimport type { GelQueryResultHKT } from '~/gel-core/session.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.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 { GelClient } from './session.ts';\nimport { GelDbSession } from './session.ts';\n\nexport interface GelDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDriver {\n\tstatic readonly [entityKind]: string = 'GelDriver';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate dialect: GelDialect,\n\t\tprivate options: GelDriverOptions = {},\n\t) {}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): GelDbSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new GelDbSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tcache: this.options.cache,\n\t\t});\n\t}\n}\n\nexport class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>>\n\textends GelDatabase<GelQueryResultHKT, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelJsDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = GelClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new GelDialect({ 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(config.schema, createTableRelationsHelpers);\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 GelDriver(client, dialect, { logger, cache: config.cache });\n\tconst session = driver.createSession(schema);\n\tconst db = new GelJsDatabase(dialect, session, schema as any) as GelJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = Client,\n>(\n\t...params:\n\t\t| [TClient | string]\n\t\t| [TClient | string, DrizzleConfig<TSchema>]\n\t\t| [\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& (\n\t\t\t\t| {\n\t\t\t\t\tconnection: string | ConnectOptions;\n\t\t\t\t}\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): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({ dsn: params[0] });\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: ConnectOptions | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = createClient(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): GelJsDatabase<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,iBAA+D;AAE/D,oBAA2B;
|
|
1
|
+
{"version":3,"sources":["../../src/gel/driver.ts"],"sourcesContent":["import { type Client, type ConnectOptions, createClient } from 'gel';\nimport type { Cache } from '~/cache/core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { DrizzleGelExtension } from '~/extension-core/gel/index.ts';\nimport { GelDatabase } from '~/gel-core/db.ts';\nimport { GelDialect } from '~/gel-core/dialect.ts';\nimport type { GelQueryResultHKT } from '~/gel-core/session.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.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 { GelClient } from './session.ts';\nimport { GelDbSession } from './session.ts';\n\nexport interface GelDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDriver {\n\tstatic readonly [entityKind]: string = 'GelDriver';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate dialect: GelDialect,\n\t\tprivate options: GelDriverOptions = {},\n\t\tprivate extensions?: DrizzleGelExtension[],\n\t) {}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): GelDbSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new GelDbSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tcache: this.options.cache,\n\t\t}, this.extensions);\n\t}\n}\n\nexport class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>>\n\textends GelDatabase<GelQueryResultHKT, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelJsDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = GelClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema, DrizzleGelExtension> = {},\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new GelDialect({ 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(config.schema, createTableRelationsHelpers);\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 GelDriver(client, dialect, { logger, cache: config.cache }, extensions);\n\tconst session = driver.createSession(schema);\n\tconst db = new GelJsDatabase(dialect, session, schema as any, extensions) as GelJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = Client,\n>(\n\t...params:\n\t\t| [TClient | string]\n\t\t| [TClient | string, DrizzleConfig<TSchema, DrizzleGelExtension>]\n\t\t| [\n\t\t\t& DrizzleConfig<TSchema, DrizzleGelExtension>\n\t\t\t& (\n\t\t\t\t| {\n\t\t\t\t\tconnection: string | ConnectOptions;\n\t\t\t\t}\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): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({ dsn: params[0] });\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema, DrizzleGelExtension> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: ConnectOptions | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema, DrizzleGelExtension>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = createClient(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, DrizzleGelExtension> | 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, DrizzleGelExtension>,\n\t): GelJsDatabase<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,iBAA+D;AAE/D,oBAA2B;AAE3B,gBAA4B;AAC5B,qBAA2B;AAG3B,oBAA8B;AAC9B,uBAKO;AACP,mBAA6C;AAE7C,qBAA6B;AAOtB,MAAM,UAAU;AAAA,EAGtB,YACS,QACA,SACA,UAA4B,CAAC,GAC7B,YACP;AAJO;AACA;AACA;AACA;AAAA,EACN;AAAA,EAPH,QAAiB,wBAAU,IAAY;AAAA,EASvC,cACC,QACgE;AAChE,WAAO,IAAI,4BAAa,KAAK,QAAQ,KAAK,SAAS,QAAQ;AAAA,MAC1D,QAAQ,KAAK,QAAQ;AAAA,MACrB,OAAO,KAAK,QAAQ;AAAA,IACrB,GAAG,KAAK,UAAU;AAAA,EACnB;AACD;AAEO,MAAM,sBACJ,sBACT;AAAA,EACC,QAA0B,wBAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAAsD,CAAC,GAGtD;AACD,QAAM,UAAU,IAAI,0BAAW,EAAE,QAAQ,OAAO,OAAO,CAAC;AACxD,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,gDAA8B,OAAO,QAAQ,4CAA2B;AAC7F,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,UAAU,QAAQ,SAAS,EAAE,QAAQ,OAAO,OAAO,MAAM,GAAG,UAAU;AACzF,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,cAAc,SAAS,SAAS,QAAe,UAAU;AACxE,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AAEA,SAAO;AACR;AAEO,SAAS,WAIZ,QAgBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,eAAW,yBAAa,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;AAEhD,WAAO,UAAU,UAAU,OAAO,CAAC,CAA4D;AAAA,EAChG;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,eAAW,yBAAa,UAAU;AAExC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAA4D;AAC5G;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
|
package/gel/driver.d.cts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Client, type ConnectOptions } from 'gel';
|
|
2
2
|
import type { Cache } from "../cache/core/index.cjs";
|
|
3
3
|
import { entityKind } from "../entity.cjs";
|
|
4
|
+
import type { DrizzleGelExtension } from "../extension-core/gel/index.cjs";
|
|
4
5
|
import { GelDatabase } from "../gel-core/db.cjs";
|
|
5
6
|
import { GelDialect } from "../gel-core/dialect.cjs";
|
|
6
7
|
import type { GelQueryResultHKT } from "../gel-core/session.cjs";
|
|
@@ -17,15 +18,16 @@ export declare class GelDriver {
|
|
|
17
18
|
private client;
|
|
18
19
|
private dialect;
|
|
19
20
|
private options;
|
|
21
|
+
private extensions?;
|
|
20
22
|
static readonly [entityKind]: string;
|
|
21
|
-
constructor(client: GelClient, dialect: GelDialect, options?: GelDriverOptions);
|
|
23
|
+
constructor(client: GelClient, dialect: GelDialect, options?: GelDriverOptions, extensions?: DrizzleGelExtension[] | undefined);
|
|
22
24
|
createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): GelDbSession<Record<string, unknown>, TablesRelationalConfig>;
|
|
23
25
|
}
|
|
24
26
|
export declare class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends GelDatabase<GelQueryResultHKT, TSchema> {
|
|
25
27
|
static readonly [entityKind]: string;
|
|
26
28
|
}
|
|
27
|
-
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends GelClient = Client>(...params: [TClient | string] | [TClient | string, DrizzleConfig<TSchema>] | [
|
|
28
|
-
DrizzleConfig<TSchema> & ({
|
|
29
|
+
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends GelClient = Client>(...params: [TClient | string] | [TClient | string, DrizzleConfig<TSchema, DrizzleGelExtension>] | [
|
|
30
|
+
DrizzleConfig<TSchema, DrizzleGelExtension> & ({
|
|
29
31
|
connection: string | ConnectOptions;
|
|
30
32
|
} | {
|
|
31
33
|
client: TClient;
|
|
@@ -34,7 +36,7 @@ export declare function drizzle<TSchema extends Record<string, unknown> = Record
|
|
|
34
36
|
$client: TClient;
|
|
35
37
|
};
|
|
36
38
|
export declare namespace drizzle {
|
|
37
|
-
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): GelJsDatabase<TSchema> & {
|
|
39
|
+
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema, DrizzleGelExtension>): GelJsDatabase<TSchema> & {
|
|
38
40
|
$client: '$client is not available on drizzle.mock()';
|
|
39
41
|
};
|
|
40
42
|
}
|
package/gel/driver.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Client, type ConnectOptions } from 'gel';
|
|
2
2
|
import type { Cache } from "../cache/core/index.js";
|
|
3
3
|
import { entityKind } from "../entity.js";
|
|
4
|
+
import type { DrizzleGelExtension } from "../extension-core/gel/index.js";
|
|
4
5
|
import { GelDatabase } from "../gel-core/db.js";
|
|
5
6
|
import { GelDialect } from "../gel-core/dialect.js";
|
|
6
7
|
import type { GelQueryResultHKT } from "../gel-core/session.js";
|
|
@@ -17,15 +18,16 @@ export declare class GelDriver {
|
|
|
17
18
|
private client;
|
|
18
19
|
private dialect;
|
|
19
20
|
private options;
|
|
21
|
+
private extensions?;
|
|
20
22
|
static readonly [entityKind]: string;
|
|
21
|
-
constructor(client: GelClient, dialect: GelDialect, options?: GelDriverOptions);
|
|
23
|
+
constructor(client: GelClient, dialect: GelDialect, options?: GelDriverOptions, extensions?: DrizzleGelExtension[] | undefined);
|
|
22
24
|
createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): GelDbSession<Record<string, unknown>, TablesRelationalConfig>;
|
|
23
25
|
}
|
|
24
26
|
export declare class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends GelDatabase<GelQueryResultHKT, TSchema> {
|
|
25
27
|
static readonly [entityKind]: string;
|
|
26
28
|
}
|
|
27
|
-
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends GelClient = Client>(...params: [TClient | string] | [TClient | string, DrizzleConfig<TSchema>] | [
|
|
28
|
-
DrizzleConfig<TSchema> & ({
|
|
29
|
+
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends GelClient = Client>(...params: [TClient | string] | [TClient | string, DrizzleConfig<TSchema, DrizzleGelExtension>] | [
|
|
30
|
+
DrizzleConfig<TSchema, DrizzleGelExtension> & ({
|
|
29
31
|
connection: string | ConnectOptions;
|
|
30
32
|
} | {
|
|
31
33
|
client: TClient;
|
|
@@ -34,7 +36,7 @@ export declare function drizzle<TSchema extends Record<string, unknown> = Record
|
|
|
34
36
|
$client: TClient;
|
|
35
37
|
};
|
|
36
38
|
export declare namespace drizzle {
|
|
37
|
-
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): GelJsDatabase<TSchema> & {
|
|
39
|
+
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema, DrizzleGelExtension>): GelJsDatabase<TSchema> & {
|
|
38
40
|
$client: '$client is not available on drizzle.mock()';
|
|
39
41
|
};
|
|
40
42
|
}
|
package/gel/driver.js
CHANGED
|
@@ -10,17 +10,18 @@ import {
|
|
|
10
10
|
import { isConfig } from "../utils.js";
|
|
11
11
|
import { GelDbSession } from "./session.js";
|
|
12
12
|
class GelDriver {
|
|
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] = "GelDriver";
|
|
19
20
|
createSession(schema) {
|
|
20
21
|
return new GelDbSession(this.client, this.dialect, schema, {
|
|
21
22
|
logger: this.options.logger,
|
|
22
23
|
cache: this.options.cache
|
|
23
|
-
});
|
|
24
|
+
}, this.extensions);
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
class GelJsDatabase extends GelDatabase {
|
|
@@ -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 GelDriver(client, dialect, { logger, cache: config.cache }, extensions);
|
|
47
49
|
const session = driver.createSession(schema);
|
|
48
|
-
const db = new GelJsDatabase(dialect, session, schema);
|
|
50
|
+
const db = new GelJsDatabase(dialect, session, schema, extensions);
|
|
49
51
|
db.$client = client;
|
|
50
52
|
db.$cache = config.cache;
|
|
51
53
|
if (db.$cache) {
|
package/gel/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/gel/driver.ts"],"sourcesContent":["import { type Client, type ConnectOptions, createClient } from 'gel';\nimport type { Cache } from '~/cache/core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport { GelDatabase } from '~/gel-core/db.ts';\nimport { GelDialect } from '~/gel-core/dialect.ts';\nimport type { GelQueryResultHKT } from '~/gel-core/session.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.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 { GelClient } from './session.ts';\nimport { GelDbSession } from './session.ts';\n\nexport interface GelDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDriver {\n\tstatic readonly [entityKind]: string = 'GelDriver';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate dialect: GelDialect,\n\t\tprivate options: GelDriverOptions = {},\n\t) {}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): GelDbSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new GelDbSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tcache: this.options.cache,\n\t\t});\n\t}\n}\n\nexport class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>>\n\textends GelDatabase<GelQueryResultHKT, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelJsDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = GelClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new GelDialect({ 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(config.schema, createTableRelationsHelpers);\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 GelDriver(client, dialect, { logger, cache: config.cache });\n\tconst session = driver.createSession(schema);\n\tconst db = new GelJsDatabase(dialect, session, schema as any) as GelJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = Client,\n>(\n\t...params:\n\t\t| [TClient | string]\n\t\t| [TClient | string, DrizzleConfig<TSchema>]\n\t\t| [\n\t\t\t& DrizzleConfig<TSchema>\n\t\t\t& (\n\t\t\t\t| {\n\t\t\t\t\tconnection: string | ConnectOptions;\n\t\t\t\t}\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): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({ dsn: params[0] });\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: ConnectOptions | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = createClient(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): GelJsDatabase<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,SAA2C,oBAAoB;AAE/D,SAAS,kBAAkB;
|
|
1
|
+
{"version":3,"sources":["../../src/gel/driver.ts"],"sourcesContent":["import { type Client, type ConnectOptions, createClient } from 'gel';\nimport type { Cache } from '~/cache/core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { DrizzleGelExtension } from '~/extension-core/gel/index.ts';\nimport { GelDatabase } from '~/gel-core/db.ts';\nimport { GelDialect } from '~/gel-core/dialect.ts';\nimport type { GelQueryResultHKT } from '~/gel-core/session.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.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 { GelClient } from './session.ts';\nimport { GelDbSession } from './session.ts';\n\nexport interface GelDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDriver {\n\tstatic readonly [entityKind]: string = 'GelDriver';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate dialect: GelDialect,\n\t\tprivate options: GelDriverOptions = {},\n\t\tprivate extensions?: DrizzleGelExtension[],\n\t) {}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): GelDbSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new GelDbSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tcache: this.options.cache,\n\t\t}, this.extensions);\n\t}\n}\n\nexport class GelJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>>\n\textends GelDatabase<GelQueryResultHKT, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelJsDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = GelClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema, DrizzleGelExtension> = {},\n): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new GelDialect({ 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(config.schema, createTableRelationsHelpers);\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 GelDriver(client, dialect, { logger, cache: config.cache }, extensions);\n\tconst session = driver.createSession(schema);\n\tconst db = new GelJsDatabase(dialect, session, schema as any, extensions) as GelJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends GelClient = Client,\n>(\n\t...params:\n\t\t| [TClient | string]\n\t\t| [TClient | string, DrizzleConfig<TSchema, DrizzleGelExtension>]\n\t\t| [\n\t\t\t& DrizzleConfig<TSchema, DrizzleGelExtension>\n\t\t\t& (\n\t\t\t\t| {\n\t\t\t\t\tconnection: string | ConnectOptions;\n\t\t\t\t}\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): GelJsDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({ dsn: params[0] });\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema, DrizzleGelExtension> | undefined) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t\t& ({ connection?: ConnectOptions | string; client?: TClient })\n\t\t\t& DrizzleConfig<TSchema, DrizzleGelExtension>\n\t\t);\n\n\t\tif (client) return construct(client, drizzleConfig);\n\n\t\tconst instance = createClient(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, DrizzleGelExtension> | 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, DrizzleGelExtension>,\n\t): GelJsDatabase<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,SAA2C,oBAAoB;AAE/D,SAAS,kBAAkB;AAE3B,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAG3B,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AACP,SAA6B,gBAAgB;AAE7C,SAAS,oBAAoB;AAOtB,MAAM,UAAU;AAAA,EAGtB,YACS,QACA,SACA,UAA4B,CAAC,GAC7B,YACP;AAJO;AACA;AACA;AACA;AAAA,EACN;AAAA,EAPH,QAAiB,UAAU,IAAY;AAAA,EASvC,cACC,QACgE;AAChE,WAAO,IAAI,aAAa,KAAK,QAAQ,KAAK,SAAS,QAAQ;AAAA,MAC1D,QAAQ,KAAK,QAAQ;AAAA,MACrB,OAAO,KAAK,QAAQ;AAAA,IACrB,GAAG,KAAK,UAAU;AAAA,EACnB;AACD;AAEO,MAAM,sBACJ,YACT;AAAA,EACC,QAA0B,UAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAAsD,CAAC,GAGtD;AACD,QAAM,UAAU,IAAI,WAAW,EAAE,QAAQ,OAAO,OAAO,CAAC;AACxD,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,8BAA8B,OAAO,QAAQ,2BAA2B;AAC7F,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,UAAU,QAAQ,SAAS,EAAE,QAAQ,OAAO,OAAO,MAAM,GAAG,UAAU;AACzF,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,cAAc,SAAS,SAAS,QAAe,UAAU;AACxE,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AAEA,SAAO;AACR;AAEO,SAAS,WAIZ,QAgBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,aAAa,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;AAEhD,WAAO,UAAU,UAAU,OAAO,CAAC,CAA4D;AAAA,EAChG;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,UAAM,WAAW,aAAa,UAAU;AAExC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAA4D;AAC5G;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
|
package/gel/session.cjs
CHANGED
|
@@ -31,8 +31,8 @@ var import_sql = require("../sql/sql.cjs");
|
|
|
31
31
|
var import_tracing = require("../tracing.cjs");
|
|
32
32
|
var import_utils = require("../utils.cjs");
|
|
33
33
|
class GelDbPreparedQuery extends import_session.GelPreparedQuery {
|
|
34
|
-
constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, _isResponseInArrayMode, customResultMapper, transaction = false) {
|
|
35
|
-
super({ sql: queryString, params }, cache, queryMetadata, cacheConfig);
|
|
34
|
+
constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, _isResponseInArrayMode, extensions, hookContext, customResultMapper, transaction = false) {
|
|
35
|
+
super({ sql: queryString, params }, cache, queryMetadata, cacheConfig, extensions, hookContext);
|
|
36
36
|
this.client = client;
|
|
37
37
|
this.queryString = queryString;
|
|
38
38
|
this.params = params;
|
|
@@ -43,7 +43,7 @@ class GelDbPreparedQuery extends import_session.GelPreparedQuery {
|
|
|
43
43
|
this.transaction = transaction;
|
|
44
44
|
}
|
|
45
45
|
static [import_entity.entityKind] = "GelPreparedQuery";
|
|
46
|
-
async
|
|
46
|
+
async _execute(placeholderValues = {}) {
|
|
47
47
|
return import_tracing.tracer.startActiveSpan("drizzle.execute", async () => {
|
|
48
48
|
const params = (0, import_sql.fillPlaceholders)(this.params, placeholderValues);
|
|
49
49
|
this.logger.logQuery(this.queryString, params);
|
|
@@ -97,8 +97,8 @@ class GelDbPreparedQuery extends import_session.GelPreparedQuery {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
class GelDbSession extends import_session.GelSession {
|
|
100
|
-
constructor(client, dialect, schema, options = {}) {
|
|
101
|
-
super(dialect);
|
|
100
|
+
constructor(client, dialect, schema, options = {}, extensions) {
|
|
101
|
+
super(dialect, extensions);
|
|
102
102
|
this.client = client;
|
|
103
103
|
this.schema = schema;
|
|
104
104
|
this.options = options;
|
|
@@ -108,7 +108,7 @@ class GelDbSession extends import_session.GelSession {
|
|
|
108
108
|
static [import_entity.entityKind] = "GelDbSession";
|
|
109
109
|
logger;
|
|
110
110
|
cache;
|
|
111
|
-
prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
|
|
111
|
+
prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig, hookContext) {
|
|
112
112
|
return new GelDbPreparedQuery(
|
|
113
113
|
this.client,
|
|
114
114
|
query.sql,
|
|
@@ -119,13 +119,15 @@ class GelDbSession extends import_session.GelSession {
|
|
|
119
119
|
cacheConfig,
|
|
120
120
|
fields,
|
|
121
121
|
isResponseInArrayMode,
|
|
122
|
+
this.extensions,
|
|
123
|
+
hookContext,
|
|
122
124
|
customResultMapper
|
|
123
125
|
);
|
|
124
126
|
}
|
|
125
127
|
async transaction(transaction) {
|
|
126
128
|
return await this.client.transaction(async (clientTx) => {
|
|
127
|
-
const session = new GelDbSession(clientTx, this.dialect, this.schema, this.options);
|
|
128
|
-
const tx = new GelDbTransaction(this.dialect, session, this.schema);
|
|
129
|
+
const session = new GelDbSession(clientTx, this.dialect, this.schema, this.options, this.extensions);
|
|
130
|
+
const tx = new GelDbTransaction(this.dialect, session, this.schema, this.extensions);
|
|
129
131
|
return await transaction(tx);
|
|
130
132
|
});
|
|
131
133
|
}
|
|
@@ -140,7 +142,8 @@ class GelDbTransaction extends import_session.GelTransaction {
|
|
|
140
142
|
const tx = new GelDbTransaction(
|
|
141
143
|
this.dialect,
|
|
142
144
|
this.session,
|
|
143
|
-
this.schema
|
|
145
|
+
this.schema,
|
|
146
|
+
this._.extensions
|
|
144
147
|
);
|
|
145
148
|
return await transaction(tx);
|
|
146
149
|
}
|
package/gel/session.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/gel/session.ts"],"sourcesContent":["import type { Client } from 'gel';\nimport type { Transaction } from 'gel/dist/transaction';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { GelDialect } from '~/gel-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/gel-core/query-builders/select.types.ts';\nimport { GelPreparedQuery, GelSession, GelTransaction, type PreparedQueryConfig } from '~/gel-core/session.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport type GelClient = Client | Transaction;\n\nexport class GelDbPreparedQuery<T extends PreparedQueryConfig> extends GelPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'GelPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tprivate transaction: boolean = false,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\n\t\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.querySQL(query, params.length ? params : undefined);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = (await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.withSQLRowMode('array').querySQL(query, params.length ? params : undefined);\n\t\t\t\t});\n\t\t\t})) as unknown[][];\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(result)\n\t\t\t\t\t: result.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tasync all(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn await tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn await this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn await this.client.withSQLRowMode('array').querySQL(\n\t\t\t\t\t\tthis.queryString,\n\t\t\t\t\t\tparams.length ? params : undefined,\n\t\t\t\t\t).then((\n\t\t\t\t\t\tresult,\n\t\t\t\t\t) => result);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface GelSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDbSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelSession<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tdialect: GelDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: GelSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\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\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): GelDbPreparedQuery<T> {\n\t\treturn new GelDbPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\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\ttransaction: (tx: GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn await (this.client as Client).transaction(async (clientTx) => {\n\t\t\tconst session = new GelDbSession(clientTx, this.dialect, this.schema, this.options);\n\t\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\t\treturn await transaction(tx);\n\t\t});\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\t\treturn Number(res[0]['count']);\n\t}\n}\n\nexport class GelDbTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbTransaction';\n\n\toverride async transaction<T>(transaction: (tx: GelDbTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t);\n\t\treturn await transaction(tx);\n\t}\n}\n\n// TODO fix this\nexport interface GelQueryResultHKT {\n\treadonly $brand: 'GelQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/gel/session.ts"],"sourcesContent":["import type { Client } from 'gel';\nimport type { Transaction } from 'gel/dist/transaction';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { BlankGelHookContext, DrizzleGelExtension } from '~/extension-core/gel/index.ts';\nimport type { GelDialect } from '~/gel-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/gel-core/query-builders/select.types.ts';\nimport { GelPreparedQuery, GelSession, GelTransaction, type PreparedQueryConfig } from '~/gel-core/session.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport type GelClient = Client | Transaction;\n\nexport class GelDbPreparedQuery<T extends PreparedQueryConfig> extends GelPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'GelPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\textensions?: DrizzleGelExtension[],\n\t\thookContext?: BlankGelHookContext,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tprivate transaction: boolean = false,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig, extensions, hookContext);\n\t}\n\n\tasync _execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\n\t\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.querySQL(query, params.length ? params : undefined);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = (await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.withSQLRowMode('array').querySQL(query, params.length ? params : undefined);\n\t\t\t\t});\n\t\t\t})) as unknown[][];\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(result)\n\t\t\t\t\t: result.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tasync all(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn await tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn await this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn await this.client.withSQLRowMode('array').querySQL(\n\t\t\t\t\t\tthis.queryString,\n\t\t\t\t\t\tparams.length ? params : undefined,\n\t\t\t\t\t).then((\n\t\t\t\t\t\tresult,\n\t\t\t\t\t) => result);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface GelSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDbSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelSession<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tdialect: GelDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: GelSessionOptions = {},\n\t\textensions?: DrizzleGelExtension[],\n\t) {\n\t\tsuper(dialect, extensions);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\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\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t\thookContext?: BlankGelHookContext,\n\t): GelDbPreparedQuery<T> {\n\t\treturn new GelDbPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\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\ttransaction: (tx: GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn await (this.client as Client).transaction(async (clientTx) => {\n\t\t\tconst session = new GelDbSession(clientTx, this.dialect, this.schema, this.options, this.extensions);\n\t\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema, this.extensions);\n\t\t\treturn await transaction(tx);\n\t\t});\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\t\treturn Number(res[0]['count']);\n\t}\n}\n\nexport class GelDbTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbTransaction';\n\n\toverride async transaction<T>(transaction: (tx: GelDbTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis._.extensions,\n\t\t);\n\t\treturn await transaction(tx);\n\t}\n}\n\n// TODO fix this\nexport interface GelQueryResultHKT {\n\treadonly $brand: 'GelQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n"],"mappings":"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","names":[]}
|
package/gel/session.d.cts
CHANGED
|
@@ -3,6 +3,7 @@ import type { Transaction } from 'gel/dist/transaction';
|
|
|
3
3
|
import { type Cache } from "../cache/core/index.cjs";
|
|
4
4
|
import type { WithCacheConfig } from "../cache/core/types.cjs";
|
|
5
5
|
import { entityKind } from "../entity.cjs";
|
|
6
|
+
import type { BlankGelHookContext, DrizzleGelExtension } from "../extension-core/gel/index.cjs";
|
|
6
7
|
import type { GelDialect } from "../gel-core/dialect.cjs";
|
|
7
8
|
import type { SelectedFieldsOrdered } from "../gel-core/query-builders/select.types.cjs";
|
|
8
9
|
import { GelPreparedQuery, GelSession, GelTransaction, type PreparedQueryConfig } from "../gel-core/session.cjs";
|
|
@@ -23,8 +24,8 @@ export declare class GelDbPreparedQuery<T extends PreparedQueryConfig> extends G
|
|
|
23
24
|
constructor(client: GelClient, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
|
|
24
25
|
type: 'select' | 'update' | 'delete' | 'insert';
|
|
25
26
|
tables: string[];
|
|
26
|
-
} | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined, transaction?: boolean);
|
|
27
|
-
|
|
27
|
+
} | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, extensions?: DrizzleGelExtension[], hookContext?: BlankGelHookContext, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined, transaction?: boolean);
|
|
28
|
+
_execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
|
|
28
29
|
all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
|
|
29
30
|
}
|
|
30
31
|
export interface GelSessionOptions {
|
|
@@ -38,11 +39,11 @@ export declare class GelDbSession<TFullSchema extends Record<string, unknown>, T
|
|
|
38
39
|
static readonly [entityKind]: string;
|
|
39
40
|
private logger;
|
|
40
41
|
private cache;
|
|
41
|
-
constructor(client: GelClient, dialect: GelDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: GelSessionOptions);
|
|
42
|
+
constructor(client: GelClient, dialect: GelDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: GelSessionOptions, extensions?: DrizzleGelExtension[]);
|
|
42
43
|
prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute'], queryMetadata?: {
|
|
43
44
|
type: 'select' | 'update' | 'delete' | 'insert';
|
|
44
45
|
tables: string[];
|
|
45
|
-
}, cacheConfig?: WithCacheConfig): GelDbPreparedQuery<T>;
|
|
46
|
+
}, cacheConfig?: WithCacheConfig, hookContext?: BlankGelHookContext): GelDbPreparedQuery<T>;
|
|
46
47
|
transaction<T>(transaction: (tx: GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>) => Promise<T>): Promise<T>;
|
|
47
48
|
count(sql: SQL): Promise<number>;
|
|
48
49
|
}
|
package/gel/session.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { Transaction } from 'gel/dist/transaction';
|
|
|
3
3
|
import { type Cache } from "../cache/core/index.js";
|
|
4
4
|
import type { WithCacheConfig } from "../cache/core/types.js";
|
|
5
5
|
import { entityKind } from "../entity.js";
|
|
6
|
+
import type { BlankGelHookContext, DrizzleGelExtension } from "../extension-core/gel/index.js";
|
|
6
7
|
import type { GelDialect } from "../gel-core/dialect.js";
|
|
7
8
|
import type { SelectedFieldsOrdered } from "../gel-core/query-builders/select.types.js";
|
|
8
9
|
import { GelPreparedQuery, GelSession, GelTransaction, type PreparedQueryConfig } from "../gel-core/session.js";
|
|
@@ -23,8 +24,8 @@ export declare class GelDbPreparedQuery<T extends PreparedQueryConfig> extends G
|
|
|
23
24
|
constructor(client: GelClient, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
|
|
24
25
|
type: 'select' | 'update' | 'delete' | 'insert';
|
|
25
26
|
tables: string[];
|
|
26
|
-
} | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined, transaction?: boolean);
|
|
27
|
-
|
|
27
|
+
} | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, extensions?: DrizzleGelExtension[], hookContext?: BlankGelHookContext, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined, transaction?: boolean);
|
|
28
|
+
_execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
|
|
28
29
|
all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
|
|
29
30
|
}
|
|
30
31
|
export interface GelSessionOptions {
|
|
@@ -38,11 +39,11 @@ export declare class GelDbSession<TFullSchema extends Record<string, unknown>, T
|
|
|
38
39
|
static readonly [entityKind]: string;
|
|
39
40
|
private logger;
|
|
40
41
|
private cache;
|
|
41
|
-
constructor(client: GelClient, dialect: GelDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: GelSessionOptions);
|
|
42
|
+
constructor(client: GelClient, dialect: GelDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: GelSessionOptions, extensions?: DrizzleGelExtension[]);
|
|
42
43
|
prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute'], queryMetadata?: {
|
|
43
44
|
type: 'select' | 'update' | 'delete' | 'insert';
|
|
44
45
|
tables: string[];
|
|
45
|
-
}, cacheConfig?: WithCacheConfig): GelDbPreparedQuery<T>;
|
|
46
|
+
}, cacheConfig?: WithCacheConfig, hookContext?: BlankGelHookContext): GelDbPreparedQuery<T>;
|
|
46
47
|
transaction<T>(transaction: (tx: GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>) => Promise<T>): Promise<T>;
|
|
47
48
|
count(sql: SQL): Promise<number>;
|
|
48
49
|
}
|
package/gel/session.js
CHANGED
|
@@ -6,8 +6,8 @@ import { fillPlaceholders } from "../sql/sql.js";
|
|
|
6
6
|
import { tracer } from "../tracing.js";
|
|
7
7
|
import { mapResultRow } from "../utils.js";
|
|
8
8
|
class GelDbPreparedQuery extends GelPreparedQuery {
|
|
9
|
-
constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, _isResponseInArrayMode, customResultMapper, transaction = false) {
|
|
10
|
-
super({ sql: queryString, params }, cache, queryMetadata, cacheConfig);
|
|
9
|
+
constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, _isResponseInArrayMode, extensions, hookContext, customResultMapper, transaction = false) {
|
|
10
|
+
super({ sql: queryString, params }, cache, queryMetadata, cacheConfig, extensions, hookContext);
|
|
11
11
|
this.client = client;
|
|
12
12
|
this.queryString = queryString;
|
|
13
13
|
this.params = params;
|
|
@@ -18,7 +18,7 @@ class GelDbPreparedQuery extends GelPreparedQuery {
|
|
|
18
18
|
this.transaction = transaction;
|
|
19
19
|
}
|
|
20
20
|
static [entityKind] = "GelPreparedQuery";
|
|
21
|
-
async
|
|
21
|
+
async _execute(placeholderValues = {}) {
|
|
22
22
|
return tracer.startActiveSpan("drizzle.execute", async () => {
|
|
23
23
|
const params = fillPlaceholders(this.params, placeholderValues);
|
|
24
24
|
this.logger.logQuery(this.queryString, params);
|
|
@@ -72,8 +72,8 @@ class GelDbPreparedQuery extends GelPreparedQuery {
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
class GelDbSession extends GelSession {
|
|
75
|
-
constructor(client, dialect, schema, options = {}) {
|
|
76
|
-
super(dialect);
|
|
75
|
+
constructor(client, dialect, schema, options = {}, extensions) {
|
|
76
|
+
super(dialect, extensions);
|
|
77
77
|
this.client = client;
|
|
78
78
|
this.schema = schema;
|
|
79
79
|
this.options = options;
|
|
@@ -83,7 +83,7 @@ class GelDbSession extends GelSession {
|
|
|
83
83
|
static [entityKind] = "GelDbSession";
|
|
84
84
|
logger;
|
|
85
85
|
cache;
|
|
86
|
-
prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
|
|
86
|
+
prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig, hookContext) {
|
|
87
87
|
return new GelDbPreparedQuery(
|
|
88
88
|
this.client,
|
|
89
89
|
query.sql,
|
|
@@ -94,13 +94,15 @@ class GelDbSession extends GelSession {
|
|
|
94
94
|
cacheConfig,
|
|
95
95
|
fields,
|
|
96
96
|
isResponseInArrayMode,
|
|
97
|
+
this.extensions,
|
|
98
|
+
hookContext,
|
|
97
99
|
customResultMapper
|
|
98
100
|
);
|
|
99
101
|
}
|
|
100
102
|
async transaction(transaction) {
|
|
101
103
|
return await this.client.transaction(async (clientTx) => {
|
|
102
|
-
const session = new GelDbSession(clientTx, this.dialect, this.schema, this.options);
|
|
103
|
-
const tx = new GelDbTransaction(this.dialect, session, this.schema);
|
|
104
|
+
const session = new GelDbSession(clientTx, this.dialect, this.schema, this.options, this.extensions);
|
|
105
|
+
const tx = new GelDbTransaction(this.dialect, session, this.schema, this.extensions);
|
|
104
106
|
return await transaction(tx);
|
|
105
107
|
});
|
|
106
108
|
}
|
|
@@ -115,7 +117,8 @@ class GelDbTransaction extends GelTransaction {
|
|
|
115
117
|
const tx = new GelDbTransaction(
|
|
116
118
|
this.dialect,
|
|
117
119
|
this.session,
|
|
118
|
-
this.schema
|
|
120
|
+
this.schema,
|
|
121
|
+
this._.extensions
|
|
119
122
|
);
|
|
120
123
|
return await transaction(tx);
|
|
121
124
|
}
|
package/gel/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/gel/session.ts"],"sourcesContent":["import type { Client } from 'gel';\nimport type { Transaction } from 'gel/dist/transaction';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { GelDialect } from '~/gel-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/gel-core/query-builders/select.types.ts';\nimport { GelPreparedQuery, GelSession, GelTransaction, type PreparedQueryConfig } from '~/gel-core/session.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport type GelClient = Client | Transaction;\n\nexport class GelDbPreparedQuery<T extends PreparedQueryConfig> extends GelPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'GelPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tprivate transaction: boolean = false,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\n\t\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.querySQL(query, params.length ? params : undefined);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = (await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.withSQLRowMode('array').querySQL(query, params.length ? params : undefined);\n\t\t\t\t});\n\t\t\t})) as unknown[][];\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(result)\n\t\t\t\t\t: result.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tasync all(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn await tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn await this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn await this.client.withSQLRowMode('array').querySQL(\n\t\t\t\t\t\tthis.queryString,\n\t\t\t\t\t\tparams.length ? params : undefined,\n\t\t\t\t\t).then((\n\t\t\t\t\t\tresult,\n\t\t\t\t\t) => result);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface GelSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDbSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelSession<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tdialect: GelDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: GelSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\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\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): GelDbPreparedQuery<T> {\n\t\treturn new GelDbPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\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\ttransaction: (tx: GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn await (this.client as Client).transaction(async (clientTx) => {\n\t\t\tconst session = new GelDbSession(clientTx, this.dialect, this.schema, this.options);\n\t\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\t\treturn await transaction(tx);\n\t\t});\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\t\treturn Number(res[0]['count']);\n\t}\n}\n\nexport class GelDbTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbTransaction';\n\n\toverride async transaction<T>(transaction: (tx: GelDbTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t);\n\t\treturn await transaction(tx);\n\t}\n}\n\n// TODO fix this\nexport interface GelQueryResultHKT {\n\treadonly $brand: 'GelQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/gel/session.ts"],"sourcesContent":["import type { Client } from 'gel';\nimport type { Transaction } from 'gel/dist/transaction';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { BlankGelHookContext, DrizzleGelExtension } from '~/extension-core/gel/index.ts';\nimport type { GelDialect } from '~/gel-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/gel-core/query-builders/select.types.ts';\nimport { GelPreparedQuery, GelSession, GelTransaction, type PreparedQueryConfig } from '~/gel-core/session.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport type GelClient = Client | Transaction;\n\nexport class GelDbPreparedQuery<T extends PreparedQueryConfig> extends GelPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'GelPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\textensions?: DrizzleGelExtension[],\n\t\thookContext?: BlankGelHookContext,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tprivate transaction: boolean = false,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig, extensions, hookContext);\n\t}\n\n\tasync _execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\n\t\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.querySQL(query, params.length ? params : undefined);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = (await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn await client.withSQLRowMode('array').querySQL(query, params.length ? params : undefined);\n\t\t\t\t});\n\t\t\t})) as unknown[][];\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(result)\n\t\t\t\t\t: result.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tasync all(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn await tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn await tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn await this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn await this.client.withSQLRowMode('array').querySQL(\n\t\t\t\t\t\tthis.queryString,\n\t\t\t\t\t\tparams.length ? params : undefined,\n\t\t\t\t\t).then((\n\t\t\t\t\t\tresult,\n\t\t\t\t\t) => result);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface GelSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class GelDbSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelSession<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbSession';\n\n\tprivate logger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: GelClient,\n\t\tdialect: GelDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: GelSessionOptions = {},\n\t\textensions?: DrizzleGelExtension[],\n\t) {\n\t\tsuper(dialect, extensions);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\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\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t\thookContext?: BlankGelHookContext,\n\t): GelDbPreparedQuery<T> {\n\t\treturn new GelDbPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\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\ttransaction: (tx: GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn await (this.client as Client).transaction(async (clientTx) => {\n\t\t\tconst session = new GelDbSession(clientTx, this.dialect, this.schema, this.options, this.extensions);\n\t\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema, this.extensions);\n\t\t\treturn await transaction(tx);\n\t\t});\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\t\treturn Number(res[0]['count']);\n\t}\n}\n\nexport class GelDbTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>\n\textends GelTransaction<GelQueryResultHKT, TFullSchema, TSchema>\n{\n\tstatic override readonly [entityKind]: string = 'GelDbTransaction';\n\n\toverride async transaction<T>(transaction: (tx: GelDbTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n\t\tconst tx = new GelDbTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis._.extensions,\n\t\t);\n\t\treturn await transaction(tx);\n\t}\n}\n\n// TODO fix this\nexport interface GelQueryResultHKT {\n\treadonly $brand: 'GelQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -29,6 +29,7 @@ module.exports = __toCommonJS(common_exports);
|
|
|
29
29
|
var import_column_builder = require("../../column-builder.cjs");
|
|
30
30
|
var import_column = require("../../column.cjs");
|
|
31
31
|
var import_entity = require("../../entity.cjs");
|
|
32
|
+
var import_extension_core = require("../../extension-core/index.cjs");
|
|
32
33
|
var import_foreign_keys = require("../foreign-keys.cjs");
|
|
33
34
|
var import_tracing_utils = require("../../tracing-utils.cjs");
|
|
34
35
|
var import_unique_constraint = require("../unique-constraint.cjs");
|
|
@@ -194,9 +195,16 @@ class GelArray extends GelColumn {
|
|
|
194
195
|
this.baseColumn = baseColumn;
|
|
195
196
|
this.range = range;
|
|
196
197
|
this.size = config.size;
|
|
198
|
+
this[import_extension_core.requiredExtension] = baseColumn[import_extension_core.requiredExtension];
|
|
197
199
|
}
|
|
198
200
|
size;
|
|
199
201
|
static [import_entity.entityKind] = "GelArray";
|
|
202
|
+
mapToDriverValue(value) {
|
|
203
|
+
return value.map((v) => this.baseColumn.mapToDriverValue(v));
|
|
204
|
+
}
|
|
205
|
+
mapFromDriverValue(value) {
|
|
206
|
+
return value.map((v) => this.baseColumn.mapFromDriverValue(v));
|
|
207
|
+
}
|
|
200
208
|
getSQLType() {
|
|
201
209
|
return `${this.baseColumn.getSQLType()}[${typeof this.size === "number" ? this.size : ""}]`;
|
|
202
210
|
}
|