drizzle-orm 0.44.2-512acc4 → 0.44.2-6baabce
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 +6 -14
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.d.cts +3 -4
- package/aws-data-api/pg/driver.d.ts +3 -4
- package/aws-data-api/pg/driver.js +6 -14
- package/aws-data-api/pg/driver.js.map +1 -1
- package/aws-data-api/pg/session.cjs +9 -26
- package/aws-data-api/pg/session.cjs.map +1 -1
- package/aws-data-api/pg/session.d.cts +4 -5
- package/aws-data-api/pg/session.d.ts +4 -5
- package/aws-data-api/pg/session.js +9 -26
- package/aws-data-api/pg/session.js.map +1 -1
- package/better-sqlite3/driver.cjs.map +1 -1
- package/better-sqlite3/driver.d.cts +3 -4
- package/better-sqlite3/driver.d.ts +3 -4
- 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 +2 -3
- package/bun-sql/driver.cjs.map +1 -1
- package/bun-sql/driver.d.cts +3 -4
- package/bun-sql/driver.d.ts +3 -4
- package/bun-sql/driver.js +2 -3
- package/bun-sql/driver.js.map +1 -1
- package/bun-sql/session.cjs +11 -20
- package/bun-sql/session.cjs.map +1 -1
- package/bun-sql/session.d.cts +5 -6
- package/bun-sql/session.d.ts +5 -6
- package/bun-sql/session.js +11 -20
- package/bun-sql/session.js.map +1 -1
- package/bun-sqlite/driver.cjs.map +1 -1
- package/bun-sqlite/driver.d.cts +3 -4
- package/bun-sqlite/driver.d.ts +3 -4
- 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 +2 -7
- package/column-builder.d.ts +2 -7
- package/column-builder.js.map +1 -1
- package/column.cjs +0 -2
- package/column.cjs.map +1 -1
- package/column.d.cts +0 -6
- package/column.d.ts +0 -6
- package/column.js +0 -2
- package/column.js.map +1 -1
- package/d1/driver.cjs +2 -9
- package/d1/driver.cjs.map +1 -1
- package/d1/driver.d.cts +1 -2
- package/d1/driver.d.ts +1 -2
- package/d1/driver.js +2 -9
- package/d1/driver.js.map +1 -1
- package/d1/session.cjs +11 -20
- package/d1/session.cjs.map +1 -1
- package/d1/session.d.cts +7 -8
- package/d1/session.d.ts +7 -8
- package/d1/session.js +11 -20
- package/d1/session.js.map +1 -1
- package/durable-sqlite/driver.cjs.map +1 -1
- package/durable-sqlite/driver.d.cts +1 -2
- package/durable-sqlite/driver.d.ts +1 -2
- package/durable-sqlite/driver.js.map +1 -1
- package/durable-sqlite/session.cjs +4 -4
- 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 +4 -4
- package/durable-sqlite/session.js.map +1 -1
- package/expo-sqlite/driver.cjs.map +1 -1
- package/expo-sqlite/driver.d.cts +1 -2
- package/expo-sqlite/driver.d.ts +1 -2
- 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/gel/driver.cjs +4 -6
- package/gel/driver.cjs.map +1 -1
- package/gel/driver.d.cts +4 -6
- package/gel/driver.d.ts +4 -6
- package/gel/driver.js +4 -6
- package/gel/driver.js.map +1 -1
- package/gel/session.cjs +9 -12
- package/gel/session.cjs.map +1 -1
- package/gel/session.d.cts +4 -5
- package/gel/session.d.ts +4 -5
- package/gel/session.js +9 -12
- package/gel/session.js.map +1 -1
- package/gel-core/columns/common.cjs +0 -8
- package/gel-core/columns/common.cjs.map +1 -1
- package/gel-core/columns/common.d.cts +0 -2
- package/gel-core/columns/common.d.ts +0 -2
- package/gel-core/columns/common.js +0 -8
- package/gel-core/columns/common.js.map +1 -1
- package/gel-core/db.cjs +3 -5
- package/gel-core/db.cjs.map +1 -1
- package/gel-core/db.d.cts +1 -3
- package/gel-core/db.d.ts +1 -3
- package/gel-core/db.js +3 -5
- package/gel-core/db.js.map +1 -1
- package/gel-core/dialect.cjs +19 -24
- package/gel-core/dialect.cjs.map +1 -1
- package/gel-core/dialect.d.cts +6 -7
- package/gel-core/dialect.d.ts +6 -7
- package/gel-core/dialect.js +20 -25
- package/gel-core/dialect.js.map +1 -1
- package/gel-core/query-builders/delete.cjs +5 -19
- package/gel-core/query-builders/delete.cjs.map +1 -1
- package/gel-core/query-builders/delete.js +5 -19
- package/gel-core/query-builders/delete.js.map +1 -1
- package/gel-core/query-builders/insert.cjs +9 -44
- package/gel-core/query-builders/insert.cjs.map +1 -1
- package/gel-core/query-builders/insert.js +11 -46
- package/gel-core/query-builders/insert.js.map +1 -1
- package/gel-core/query-builders/query.cjs +2 -15
- package/gel-core/query-builders/query.cjs.map +1 -1
- package/gel-core/query-builders/query.js +2 -15
- package/gel-core/query-builders/query.js.map +1 -1
- package/gel-core/query-builders/select.cjs +5 -21
- package/gel-core/query-builders/select.cjs.map +1 -1
- package/gel-core/query-builders/select.js +5 -21
- package/gel-core/query-builders/select.js.map +1 -1
- package/gel-core/query-builders/update.cjs +6 -20
- package/gel-core/query-builders/update.cjs.map +1 -1
- package/gel-core/query-builders/update.js +6 -20
- package/gel-core/query-builders/update.js.map +1 -1
- package/gel-core/session.cjs +4 -47
- package/gel-core/session.cjs.map +1 -1
- package/gel-core/session.d.cts +5 -11
- package/gel-core/session.d.ts +5 -11
- package/gel-core/session.js +4 -47
- package/gel-core/session.js.map +1 -1
- package/libsql/driver-core.cjs +2 -3
- package/libsql/driver-core.cjs.map +1 -1
- package/libsql/driver-core.js +2 -3
- package/libsql/driver-core.js.map +1 -1
- package/libsql/driver.cjs +1 -4
- package/libsql/driver.cjs.map +1 -1
- package/libsql/driver.d.cts +3 -4
- package/libsql/driver.d.ts +3 -4
- package/libsql/driver.js +1 -4
- package/libsql/driver.js.map +1 -1
- package/libsql/http/index.cjs +1 -4
- package/libsql/http/index.cjs.map +1 -1
- package/libsql/http/index.d.cts +3 -4
- package/libsql/http/index.d.ts +3 -4
- package/libsql/http/index.js +1 -4
- package/libsql/http/index.js.map +1 -1
- package/libsql/node/index.cjs +1 -4
- package/libsql/node/index.cjs.map +1 -1
- package/libsql/node/index.d.cts +3 -4
- package/libsql/node/index.d.ts +3 -4
- package/libsql/node/index.js +1 -4
- package/libsql/node/index.js.map +1 -1
- package/libsql/session.cjs +12 -29
- package/libsql/session.cjs.map +1 -1
- package/libsql/session.d.cts +7 -8
- package/libsql/session.d.ts +7 -8
- package/libsql/session.js +12 -29
- package/libsql/session.js.map +1 -1
- package/libsql/sqlite3/index.cjs +1 -4
- package/libsql/sqlite3/index.cjs.map +1 -1
- package/libsql/sqlite3/index.d.cts +3 -4
- package/libsql/sqlite3/index.d.ts +3 -4
- package/libsql/sqlite3/index.js +1 -4
- package/libsql/sqlite3/index.js.map +1 -1
- package/libsql/wasm/index.cjs +1 -4
- package/libsql/wasm/index.cjs.map +1 -1
- package/libsql/wasm/index.d.cts +3 -4
- package/libsql/wasm/index.d.ts +3 -4
- package/libsql/wasm/index.js +1 -4
- package/libsql/wasm/index.js.map +1 -1
- package/libsql/web/index.cjs +1 -4
- package/libsql/web/index.cjs.map +1 -1
- package/libsql/web/index.d.cts +3 -4
- package/libsql/web/index.d.ts +3 -4
- package/libsql/web/index.js +1 -4
- package/libsql/web/index.js.map +1 -1
- package/libsql/ws/index.cjs +1 -4
- package/libsql/ws/index.cjs.map +1 -1
- package/libsql/ws/index.d.cts +3 -4
- package/libsql/ws/index.d.ts +3 -4
- package/libsql/ws/index.js +1 -4
- package/libsql/ws/index.js.map +1 -1
- package/mysql-core/db.cjs +3 -5
- package/mysql-core/db.cjs.map +1 -1
- package/mysql-core/db.d.cts +1 -3
- package/mysql-core/db.d.ts +1 -3
- package/mysql-core/db.js +3 -5
- package/mysql-core/db.js.map +1 -1
- package/mysql-core/dialect.cjs +23 -29
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.d.cts +7 -8
- package/mysql-core/dialect.d.ts +7 -8
- package/mysql-core/dialect.js +24 -30
- package/mysql-core/dialect.js.map +1 -1
- package/mysql-core/query-builders/delete.cjs +1 -8
- package/mysql-core/query-builders/delete.cjs.map +1 -1
- package/mysql-core/query-builders/delete.js +1 -8
- package/mysql-core/query-builders/delete.js.map +1 -1
- package/mysql-core/query-builders/insert.cjs +6 -30
- package/mysql-core/query-builders/insert.cjs.map +1 -1
- package/mysql-core/query-builders/insert.js +8 -32
- package/mysql-core/query-builders/insert.js.map +1 -1
- package/mysql-core/query-builders/query.cjs +3 -19
- package/mysql-core/query-builders/query.cjs.map +1 -1
- package/mysql-core/query-builders/query.js +3 -19
- package/mysql-core/query-builders/query.js.map +1 -1
- package/mysql-core/query-builders/select.cjs +6 -23
- package/mysql-core/query-builders/select.cjs.map +1 -1
- package/mysql-core/query-builders/select.js +6 -23
- package/mysql-core/query-builders/select.js.map +1 -1
- package/mysql-core/query-builders/update.cjs +3 -15
- package/mysql-core/query-builders/update.cjs.map +1 -1
- package/mysql-core/query-builders/update.js +3 -15
- package/mysql-core/query-builders/update.js.map +1 -1
- package/mysql-core/session.cjs +4 -43
- package/mysql-core/session.cjs.map +1 -1
- package/mysql-core/session.d.cts +7 -14
- package/mysql-core/session.d.ts +7 -14
- package/mysql-core/session.js +4 -43
- package/mysql-core/session.js.map +1 -1
- package/mysql-proxy/driver.cjs +2 -3
- package/mysql-proxy/driver.cjs.map +1 -1
- package/mysql-proxy/driver.d.cts +1 -2
- package/mysql-proxy/driver.d.ts +1 -2
- package/mysql-proxy/driver.js +2 -3
- 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 +6 -5
- package/mysql-proxy/session.d.ts +6 -5
- package/mysql-proxy/session.js +8 -8
- package/mysql-proxy/session.js.map +1 -1
- package/mysql2/driver.cjs +4 -11
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.d.cts +2 -4
- package/mysql2/driver.d.ts +2 -4
- package/mysql2/driver.js +4 -11
- package/mysql2/driver.js.map +1 -1
- package/mysql2/session.cjs +10 -14
- 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 +10 -14
- package/mysql2/session.js.map +1 -1
- package/neon-http/driver.cjs +3 -5
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.d.cts +4 -6
- package/neon-http/driver.d.ts +4 -6
- package/neon-http/driver.js +3 -5
- package/neon-http/driver.js.map +1 -1
- package/neon-http/session.cjs +6 -8
- package/neon-http/session.cjs.map +1 -1
- package/neon-http/session.d.cts +4 -5
- package/neon-http/session.d.ts +4 -5
- package/neon-http/session.js +6 -8
- package/neon-http/session.js.map +1 -1
- package/neon-serverless/driver.cjs +4 -6
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.d.cts +4 -6
- package/neon-serverless/driver.d.ts +4 -6
- package/neon-serverless/driver.js +4 -6
- package/neon-serverless/driver.js.map +1 -1
- package/neon-serverless/session.cjs +9 -23
- package/neon-serverless/session.cjs.map +1 -1
- package/neon-serverless/session.d.cts +4 -5
- package/neon-serverless/session.d.ts +4 -5
- package/neon-serverless/session.js +9 -23
- package/neon-serverless/session.js.map +1 -1
- package/node-postgres/driver.cjs +4 -6
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.d.cts +4 -6
- package/node-postgres/driver.d.ts +4 -6
- package/node-postgres/driver.js +4 -6
- package/node-postgres/driver.js.map +1 -1
- package/node-postgres/session.cjs +9 -18
- package/node-postgres/session.cjs.map +1 -1
- package/node-postgres/session.d.cts +4 -5
- package/node-postgres/session.d.ts +4 -5
- package/node-postgres/session.js +9 -18
- package/node-postgres/session.js.map +1 -1
- package/op-sqlite/driver.cjs +2 -3
- package/op-sqlite/driver.cjs.map +1 -1
- package/op-sqlite/driver.d.cts +1 -2
- package/op-sqlite/driver.d.ts +1 -2
- package/op-sqlite/driver.js +2 -3
- package/op-sqlite/driver.js.map +1 -1
- package/op-sqlite/session.cjs +11 -20
- package/op-sqlite/session.cjs.map +1 -1
- package/op-sqlite/session.d.cts +7 -8
- package/op-sqlite/session.d.ts +7 -8
- package/op-sqlite/session.js +11 -20
- package/op-sqlite/session.js.map +1 -1
- package/package.json +5 -351
- package/pg-core/columns/common.cjs +0 -2
- package/pg-core/columns/common.cjs.map +1 -1
- package/pg-core/columns/common.js +0 -2
- package/pg-core/columns/common.js.map +1 -1
- package/pg-core/db.cjs +3 -5
- package/pg-core/db.cjs.map +1 -1
- package/pg-core/db.d.cts +1 -3
- package/pg-core/db.d.ts +1 -3
- package/pg-core/db.js +3 -5
- package/pg-core/db.js.map +1 -1
- package/pg-core/dialect.cjs +19 -25
- package/pg-core/dialect.cjs.map +1 -1
- package/pg-core/dialect.d.cts +6 -7
- package/pg-core/dialect.d.ts +6 -7
- package/pg-core/dialect.js +20 -26
- package/pg-core/dialect.js.map +1 -1
- package/pg-core/query-builders/delete.cjs +5 -19
- package/pg-core/query-builders/delete.cjs.map +1 -1
- package/pg-core/query-builders/delete.js +5 -19
- package/pg-core/query-builders/delete.js.map +1 -1
- package/pg-core/query-builders/insert.cjs +9 -49
- package/pg-core/query-builders/insert.cjs.map +1 -1
- package/pg-core/query-builders/insert.js +11 -51
- package/pg-core/query-builders/insert.js.map +1 -1
- package/pg-core/query-builders/query.cjs +2 -15
- package/pg-core/query-builders/query.cjs.map +1 -1
- package/pg-core/query-builders/query.js +2 -15
- package/pg-core/query-builders/query.js.map +1 -1
- package/pg-core/query-builders/select.cjs +7 -23
- package/pg-core/query-builders/select.cjs.map +1 -1
- package/pg-core/query-builders/select.js +7 -23
- package/pg-core/query-builders/select.js.map +1 -1
- package/pg-core/query-builders/update.cjs +6 -20
- package/pg-core/query-builders/update.cjs.map +1 -1
- package/pg-core/query-builders/update.js +6 -20
- package/pg-core/query-builders/update.js.map +1 -1
- package/pg-core/session.cjs +4 -48
- package/pg-core/session.cjs.map +1 -1
- package/pg-core/session.d.cts +5 -11
- package/pg-core/session.d.ts +5 -11
- package/pg-core/session.js +4 -48
- package/pg-core/session.js.map +1 -1
- package/pg-proxy/driver.cjs +2 -3
- package/pg-proxy/driver.cjs.map +1 -1
- package/pg-proxy/driver.d.cts +1 -2
- package/pg-proxy/driver.d.ts +1 -2
- package/pg-proxy/driver.js +2 -3
- package/pg-proxy/driver.js.map +1 -1
- package/pg-proxy/session.cjs +6 -8
- package/pg-proxy/session.cjs.map +1 -1
- package/pg-proxy/session.d.cts +4 -5
- package/pg-proxy/session.d.ts +4 -5
- package/pg-proxy/session.js +6 -8
- package/pg-proxy/session.js.map +1 -1
- package/pglite/driver.cjs +4 -6
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.d.cts +4 -6
- package/pglite/driver.d.ts +4 -6
- package/pglite/driver.js +4 -6
- package/pglite/driver.js.map +1 -1
- package/pglite/session.cjs +9 -19
- package/pglite/session.cjs.map +1 -1
- package/pglite/session.d.cts +4 -5
- package/pglite/session.d.ts +4 -5
- package/pglite/session.js +9 -19
- package/pglite/session.js.map +1 -1
- package/planetscale-serverless/driver.cjs +2 -10
- package/planetscale-serverless/driver.cjs.map +1 -1
- package/planetscale-serverless/driver.d.cts +3 -4
- package/planetscale-serverless/driver.d.ts +3 -4
- package/planetscale-serverless/driver.js +2 -10
- package/planetscale-serverless/driver.js.map +1 -1
- package/planetscale-serverless/session.cjs +13 -23
- package/planetscale-serverless/session.cjs.map +1 -1
- package/planetscale-serverless/session.d.cts +7 -6
- package/planetscale-serverless/session.d.ts +7 -6
- package/planetscale-serverless/session.js +13 -23
- package/planetscale-serverless/session.js.map +1 -1
- package/postgres-js/driver.cjs +2 -3
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.d.cts +3 -4
- package/postgres-js/driver.d.ts +3 -4
- package/postgres-js/driver.js +2 -3
- package/postgres-js/driver.js.map +1 -1
- package/postgres-js/session.cjs +16 -27
- package/postgres-js/session.cjs.map +1 -1
- package/postgres-js/session.d.cts +5 -6
- package/postgres-js/session.d.ts +5 -6
- package/postgres-js/session.js +16 -27
- 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 +2 -3
- package/prisma/mysql/driver.d.ts +2 -3
- package/prisma/mysql/driver.js +3 -3
- package/prisma/mysql/driver.js.map +1 -1
- package/prisma/mysql/session.cjs +11 -10
- package/prisma/mysql/session.cjs.map +1 -1
- package/prisma/mysql/session.d.cts +5 -10
- package/prisma/mysql/session.d.ts +5 -10
- package/prisma/mysql/session.js +11 -10
- 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 +1 -2
- package/prisma/pg/driver.d.ts +1 -2
- 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 +5 -10
- package/prisma/pg/session.d.ts +5 -10
- package/prisma/pg/session.js +7 -7
- package/prisma/pg/session.js.map +1 -1
- package/prisma/sqlite/driver.cjs +1 -7
- package/prisma/sqlite/driver.cjs.map +1 -1
- package/prisma/sqlite/driver.d.cts +1 -2
- package/prisma/sqlite/driver.d.ts +1 -2
- package/prisma/sqlite/driver.js +1 -7
- 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 +7 -12
- package/prisma/sqlite/session.d.ts +7 -12
- package/prisma/sqlite/session.js +10 -10
- package/prisma/sqlite/session.js.map +1 -1
- package/singlestore/driver.cjs +25 -34
- package/singlestore/driver.cjs.map +1 -1
- package/singlestore/driver.d.cts +2 -4
- package/singlestore/driver.d.ts +2 -4
- package/singlestore/driver.js +25 -34
- package/singlestore/driver.js.map +1 -1
- package/singlestore/session.cjs +10 -14
- 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 +10 -14
- package/singlestore/session.js.map +1 -1
- package/singlestore-core/db.cjs +3 -5
- package/singlestore-core/db.cjs.map +1 -1
- package/singlestore-core/db.d.cts +1 -3
- package/singlestore-core/db.d.ts +1 -3
- package/singlestore-core/db.js +3 -5
- package/singlestore-core/db.js.map +1 -1
- package/singlestore-core/dialect.cjs +18 -24
- package/singlestore-core/dialect.cjs.map +1 -1
- package/singlestore-core/dialect.d.cts +6 -7
- package/singlestore-core/dialect.d.ts +6 -7
- package/singlestore-core/dialect.js +19 -25
- package/singlestore-core/dialect.js.map +1 -1
- package/singlestore-core/query-builders/delete.cjs +1 -8
- package/singlestore-core/query-builders/delete.cjs.map +1 -1
- package/singlestore-core/query-builders/delete.js +1 -8
- package/singlestore-core/query-builders/delete.js.map +1 -1
- package/singlestore-core/query-builders/insert.cjs +5 -30
- package/singlestore-core/query-builders/insert.cjs.map +1 -1
- package/singlestore-core/query-builders/insert.js +7 -32
- package/singlestore-core/query-builders/insert.js.map +1 -1
- package/singlestore-core/query-builders/query.cjs +2 -17
- package/singlestore-core/query-builders/query.cjs.map +1 -1
- package/singlestore-core/query-builders/query.js +2 -17
- package/singlestore-core/query-builders/query.js.map +1 -1
- package/singlestore-core/query-builders/select.cjs +7 -24
- package/singlestore-core/query-builders/select.cjs.map +1 -1
- package/singlestore-core/query-builders/select.js +7 -24
- package/singlestore-core/query-builders/select.js.map +1 -1
- package/singlestore-core/query-builders/update.cjs +2 -9
- package/singlestore-core/query-builders/update.cjs.map +1 -1
- package/singlestore-core/query-builders/update.js +2 -9
- package/singlestore-core/query-builders/update.js.map +1 -1
- package/singlestore-core/session.cjs +4 -43
- package/singlestore-core/session.cjs.map +1 -1
- package/singlestore-core/session.d.cts +6 -14
- package/singlestore-core/session.d.ts +6 -14
- package/singlestore-core/session.js +4 -43
- package/singlestore-core/session.js.map +1 -1
- package/singlestore-proxy/driver.cjs +2 -3
- package/singlestore-proxy/driver.cjs.map +1 -1
- package/singlestore-proxy/driver.d.cts +1 -2
- package/singlestore-proxy/driver.d.ts +1 -2
- package/singlestore-proxy/driver.js +2 -3
- 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 +6 -9
- package/singlestore-proxy/session.d.ts +6 -9
- package/singlestore-proxy/session.js +8 -8
- package/singlestore-proxy/session.js.map +1 -1
- package/sql/sql.cjs +2 -24
- package/sql/sql.cjs.map +1 -1
- package/sql/sql.d.cts +0 -12
- package/sql/sql.d.ts +0 -12
- package/sql/sql.js +2 -23
- package/sql/sql.js.map +1 -1
- package/sql-js/driver.cjs.map +1 -1
- package/sql-js/driver.d.cts +1 -2
- package/sql-js/driver.d.ts +1 -2
- 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 +3 -5
- package/sqlite-core/db.cjs.map +1 -1
- package/sqlite-core/db.d.cts +1 -3
- package/sqlite-core/db.d.ts +1 -3
- package/sqlite-core/db.js +3 -5
- package/sqlite-core/db.js.map +1 -1
- package/sqlite-core/dialect.cjs +19 -29
- package/sqlite-core/dialect.cjs.map +1 -1
- package/sqlite-core/dialect.d.cts +6 -7
- package/sqlite-core/dialect.d.ts +6 -7
- package/sqlite-core/dialect.js +20 -30
- package/sqlite-core/dialect.js.map +1 -1
- package/sqlite-core/query-builders/delete.cjs +1 -8
- package/sqlite-core/query-builders/delete.cjs.map +1 -1
- package/sqlite-core/query-builders/delete.js +1 -8
- package/sqlite-core/query-builders/delete.js.map +1 -1
- package/sqlite-core/query-builders/insert.cjs +4 -28
- package/sqlite-core/query-builders/insert.cjs.map +1 -1
- package/sqlite-core/query-builders/insert.js +6 -35
- package/sqlite-core/query-builders/insert.js.map +1 -1
- package/sqlite-core/query-builders/query.cjs +2 -15
- package/sqlite-core/query-builders/query.cjs.map +1 -1
- package/sqlite-core/query-builders/query.js +2 -15
- package/sqlite-core/query-builders/query.js.map +1 -1
- package/sqlite-core/query-builders/select.cjs +6 -15
- package/sqlite-core/query-builders/select.cjs.map +1 -1
- package/sqlite-core/query-builders/select.js +6 -15
- package/sqlite-core/query-builders/select.js.map +1 -1
- package/sqlite-core/query-builders/update.cjs +2 -9
- package/sqlite-core/query-builders/update.cjs.map +1 -1
- package/sqlite-core/query-builders/update.js +2 -9
- package/sqlite-core/query-builders/update.js.map +1 -1
- package/sqlite-core/session.cjs +6 -81
- package/sqlite-core/session.cjs.map +1 -1
- package/sqlite-core/session.d.cts +9 -19
- package/sqlite-core/session.d.ts +9 -19
- package/sqlite-core/session.js +6 -81
- package/sqlite-core/session.js.map +1 -1
- package/sqlite-proxy/driver.cjs +3 -4
- package/sqlite-proxy/driver.cjs.map +1 -1
- package/sqlite-proxy/driver.d.cts +2 -3
- package/sqlite-proxy/driver.d.ts +2 -3
- package/sqlite-proxy/driver.js +3 -4
- package/sqlite-proxy/driver.js.map +1 -1
- package/sqlite-proxy/session.cjs +11 -20
- package/sqlite-proxy/session.cjs.map +1 -1
- package/sqlite-proxy/session.d.cts +7 -8
- package/sqlite-proxy/session.d.ts +7 -8
- package/sqlite-proxy/session.js +11 -20
- package/sqlite-proxy/session.js.map +1 -1
- package/tidb-serverless/driver.cjs +2 -16
- package/tidb-serverless/driver.cjs.map +1 -1
- package/tidb-serverless/driver.d.cts +3 -4
- package/tidb-serverless/driver.d.ts +3 -4
- package/tidb-serverless/driver.js +2 -16
- package/tidb-serverless/driver.js.map +1 -1
- package/tidb-serverless/session.cjs +13 -23
- package/tidb-serverless/session.cjs.map +1 -1
- package/tidb-serverless/session.d.cts +7 -6
- package/tidb-serverless/session.d.ts +7 -6
- package/tidb-serverless/session.js +13 -23
- package/tidb-serverless/session.js.map +1 -1
- package/tracing.cjs.map +1 -1
- package/tracing.js.map +1 -1
- package/utils.cjs +2 -38
- package/utils.cjs.map +1 -1
- package/utils.d.cts +2 -6
- package/utils.d.ts +2 -6
- package/utils.js +4 -39
- package/utils.js.map +1 -1
- package/vercel-postgres/driver.cjs +5 -10
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.d.cts +4 -6
- package/vercel-postgres/driver.d.ts +4 -6
- package/vercel-postgres/driver.js +5 -10
- package/vercel-postgres/driver.js.map +1 -1
- package/vercel-postgres/session.cjs +9 -18
- package/vercel-postgres/session.cjs.map +1 -1
- package/vercel-postgres/session.d.cts +4 -5
- package/vercel-postgres/session.d.ts +4 -5
- package/vercel-postgres/session.js +9 -18
- 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 +4 -7
- package/xata-http/driver.cjs.map +1 -1
- package/xata-http/driver.d.cts +2 -4
- package/xata-http/driver.d.ts +2 -4
- package/xata-http/driver.js +4 -7
- package/xata-http/driver.js.map +1 -1
- package/xata-http/session.cjs +6 -8
- package/xata-http/session.cjs.map +1 -1
- package/xata-http/session.d.cts +4 -5
- package/xata-http/session.d.ts +4 -5
- package/xata-http/session.js +6 -8
- package/xata-http/session.js.map +1 -1
- package/extension-core/gel/index.cjs +0 -33
- package/extension-core/gel/index.cjs.map +0 -1
- package/extension-core/gel/index.d.cts +0 -67
- package/extension-core/gel/index.d.ts +0 -67
- package/extension-core/gel/index.js +0 -9
- package/extension-core/gel/index.js.map +0 -1
- package/extension-core/index.cjs +0 -42
- package/extension-core/index.cjs.map +0 -1
- package/extension-core/index.d.cts +0 -9
- package/extension-core/index.d.ts +0 -9
- package/extension-core/index.js +0 -15
- package/extension-core/index.js.map +0 -1
- package/extension-core/mysql/index.cjs +0 -33
- package/extension-core/mysql/index.cjs.map +0 -1
- package/extension-core/mysql/index.d.cts +0 -69
- package/extension-core/mysql/index.d.ts +0 -69
- package/extension-core/mysql/index.js +0 -9
- package/extension-core/mysql/index.js.map +0 -1
- package/extension-core/pg/index.cjs +0 -33
- package/extension-core/pg/index.cjs.map +0 -1
- package/extension-core/pg/index.d.cts +0 -67
- package/extension-core/pg/index.d.ts +0 -67
- package/extension-core/pg/index.js +0 -9
- package/extension-core/pg/index.js.map +0 -1
- package/extension-core/singlestore/index.cjs +0 -33
- package/extension-core/singlestore/index.cjs.map +0 -1
- package/extension-core/singlestore/index.d.cts +0 -67
- package/extension-core/singlestore/index.d.ts +0 -67
- package/extension-core/singlestore/index.js +0 -9
- package/extension-core/singlestore/index.js.map +0 -1
- package/extension-core/sqlite/index.cjs +0 -33
- package/extension-core/sqlite/index.cjs.map +0 -1
- package/extension-core/sqlite/index.d.cts +0 -68
- package/extension-core/sqlite/index.d.ts +0 -68
- package/extension-core/sqlite/index.js +0 -9
- package/extension-core/sqlite/index.js.map +0 -1
- package/extensions/hook/gel/index.cjs +0 -47
- package/extensions/hook/gel/index.cjs.map +0 -1
- package/extensions/hook/gel/index.d.cts +0 -11
- package/extensions/hook/gel/index.d.ts +0 -11
- package/extensions/hook/gel/index.js +0 -22
- package/extensions/hook/gel/index.js.map +0 -1
- package/extensions/hook/mysql/index.cjs +0 -47
- package/extensions/hook/mysql/index.cjs.map +0 -1
- package/extensions/hook/mysql/index.d.cts +0 -11
- package/extensions/hook/mysql/index.d.ts +0 -11
- package/extensions/hook/mysql/index.js +0 -22
- package/extensions/hook/mysql/index.js.map +0 -1
- package/extensions/hook/pg/index.cjs +0 -47
- package/extensions/hook/pg/index.cjs.map +0 -1
- package/extensions/hook/pg/index.d.cts +0 -11
- package/extensions/hook/pg/index.d.ts +0 -11
- package/extensions/hook/pg/index.js +0 -22
- package/extensions/hook/pg/index.js.map +0 -1
- package/extensions/hook/singlestore/index.cjs +0 -47
- package/extensions/hook/singlestore/index.cjs.map +0 -1
- package/extensions/hook/singlestore/index.d.cts +0 -11
- package/extensions/hook/singlestore/index.d.ts +0 -11
- package/extensions/hook/singlestore/index.js +0 -22
- package/extensions/hook/singlestore/index.js.map +0 -1
- package/extensions/hook/sqlite/index.cjs +0 -47
- package/extensions/hook/sqlite/index.cjs.map +0 -1
- package/extensions/hook/sqlite/index.d.cts +0 -11
- package/extensions/hook/sqlite/index.d.ts +0 -11
- package/extensions/hook/sqlite/index.js +0 -22
- package/extensions/hook/sqlite/index.js.map +0 -1
- package/extensions/s3-file/common.cjs +0 -313
- package/extensions/s3-file/common.cjs.map +0 -1
- package/extensions/s3-file/common.d.cts +0 -88
- package/extensions/s3-file/common.d.ts +0 -88
- package/extensions/s3-file/common.js +0 -280
- package/extensions/s3-file/common.js.map +0 -1
- package/extensions/s3-file/gel/column.cjs +0 -113
- package/extensions/s3-file/gel/column.cjs.map +0 -1
- package/extensions/s3-file/gel/column.d.cts +0 -105
- package/extensions/s3-file/gel/column.d.ts +0 -105
- package/extensions/s3-file/gel/column.js +0 -92
- package/extensions/s3-file/gel/column.js.map +0 -1
- package/extensions/s3-file/gel/extension.cjs +0 -262
- package/extensions/s3-file/gel/extension.cjs.map +0 -1
- package/extensions/s3-file/gel/extension.d.cts +0 -18
- package/extensions/s3-file/gel/extension.d.ts +0 -18
- package/extensions/s3-file/gel/extension.js +0 -248
- package/extensions/s3-file/gel/extension.js.map +0 -1
- package/extensions/s3-file/gel/index.cjs +0 -25
- package/extensions/s3-file/gel/index.cjs.map +0 -1
- package/extensions/s3-file/gel/index.d.cts +0 -2
- package/extensions/s3-file/gel/index.d.ts +0 -2
- package/extensions/s3-file/gel/index.js +0 -3
- package/extensions/s3-file/gel/index.js.map +0 -1
- package/extensions/s3-file/index.cjs +0 -23
- package/extensions/s3-file/index.cjs.map +0 -1
- package/extensions/s3-file/index.d.cts +0 -1
- package/extensions/s3-file/index.d.ts +0 -1
- package/extensions/s3-file/index.js +0 -2
- package/extensions/s3-file/index.js.map +0 -1
- package/extensions/s3-file/mysql/column.cjs +0 -110
- package/extensions/s3-file/mysql/column.cjs.map +0 -1
- package/extensions/s3-file/mysql/column.d.cts +0 -63
- package/extensions/s3-file/mysql/column.d.ts +0 -63
- package/extensions/s3-file/mysql/column.js +0 -86
- package/extensions/s3-file/mysql/column.js.map +0 -1
- package/extensions/s3-file/mysql/extension.cjs +0 -242
- package/extensions/s3-file/mysql/extension.cjs.map +0 -1
- package/extensions/s3-file/mysql/extension.d.cts +0 -18
- package/extensions/s3-file/mysql/extension.d.ts +0 -18
- package/extensions/s3-file/mysql/extension.js +0 -228
- package/extensions/s3-file/mysql/extension.js.map +0 -1
- package/extensions/s3-file/mysql/index.cjs +0 -25
- package/extensions/s3-file/mysql/index.cjs.map +0 -1
- package/extensions/s3-file/mysql/index.d.cts +0 -2
- package/extensions/s3-file/mysql/index.d.ts +0 -2
- package/extensions/s3-file/mysql/index.js +0 -3
- package/extensions/s3-file/mysql/index.js.map +0 -1
- package/extensions/s3-file/pg/column.cjs +0 -113
- package/extensions/s3-file/pg/column.cjs.map +0 -1
- package/extensions/s3-file/pg/column.d.cts +0 -105
- package/extensions/s3-file/pg/column.d.ts +0 -105
- package/extensions/s3-file/pg/column.js +0 -92
- package/extensions/s3-file/pg/column.js.map +0 -1
- package/extensions/s3-file/pg/extension.cjs +0 -264
- package/extensions/s3-file/pg/extension.cjs.map +0 -1
- package/extensions/s3-file/pg/extension.d.cts +0 -18
- package/extensions/s3-file/pg/extension.d.ts +0 -18
- package/extensions/s3-file/pg/extension.js +0 -250
- package/extensions/s3-file/pg/extension.js.map +0 -1
- package/extensions/s3-file/pg/index.cjs +0 -25
- package/extensions/s3-file/pg/index.cjs.map +0 -1
- package/extensions/s3-file/pg/index.d.cts +0 -2
- package/extensions/s3-file/pg/index.d.ts +0 -2
- package/extensions/s3-file/pg/index.js +0 -3
- package/extensions/s3-file/pg/index.js.map +0 -1
- package/extensions/s3-file/singlestore/column.cjs +0 -110
- package/extensions/s3-file/singlestore/column.cjs.map +0 -1
- package/extensions/s3-file/singlestore/column.d.cts +0 -63
- package/extensions/s3-file/singlestore/column.d.ts +0 -63
- package/extensions/s3-file/singlestore/column.js +0 -86
- package/extensions/s3-file/singlestore/column.js.map +0 -1
- package/extensions/s3-file/singlestore/extension.cjs +0 -239
- package/extensions/s3-file/singlestore/extension.cjs.map +0 -1
- package/extensions/s3-file/singlestore/extension.d.cts +0 -18
- package/extensions/s3-file/singlestore/extension.d.ts +0 -18
- package/extensions/s3-file/singlestore/extension.js +0 -225
- package/extensions/s3-file/singlestore/extension.js.map +0 -1
- package/extensions/s3-file/singlestore/index.cjs +0 -25
- package/extensions/s3-file/singlestore/index.cjs.map +0 -1
- package/extensions/s3-file/singlestore/index.d.cts +0 -2
- package/extensions/s3-file/singlestore/index.d.ts +0 -2
- package/extensions/s3-file/singlestore/index.js +0 -3
- package/extensions/s3-file/singlestore/index.js.map +0 -1
- package/extensions/s3-file/sqlite/column.cjs +0 -110
- package/extensions/s3-file/sqlite/column.cjs.map +0 -1
- package/extensions/s3-file/sqlite/column.d.cts +0 -63
- package/extensions/s3-file/sqlite/column.d.ts +0 -63
- package/extensions/s3-file/sqlite/column.js +0 -86
- package/extensions/s3-file/sqlite/column.js.map +0 -1
- package/extensions/s3-file/sqlite/extension.cjs +0 -242
- package/extensions/s3-file/sqlite/extension.cjs.map +0 -1
- package/extensions/s3-file/sqlite/extension.d.cts +0 -18
- package/extensions/s3-file/sqlite/extension.d.ts +0 -18
- package/extensions/s3-file/sqlite/extension.js +0 -228
- package/extensions/s3-file/sqlite/extension.js.map +0 -1
- package/extensions/s3-file/sqlite/index.cjs +0 -25
- package/extensions/s3-file/sqlite/index.cjs.map +0 -1
- package/extensions/s3-file/sqlite/index.d.cts +0 -2
- package/extensions/s3-file/sqlite/index.d.ts +0 -2
- package/extensions/s3-file/sqlite/index.js +0 -3
- package/extensions/s3-file/sqlite/index.js.map +0 -1
|
@@ -2,7 +2,6 @@ import type { Connection, FullResult, Tx } from '@tidbcloud/serverless';
|
|
|
2
2
|
import { type Cache } from "../cache/core/index.cjs";
|
|
3
3
|
import type { WithCacheConfig } from "../cache/core/types.cjs";
|
|
4
4
|
import { entityKind } from "../entity.cjs";
|
|
5
|
-
import type { BlankMySqlHookContext, DrizzleMySqlExtension } from "../extension-core/mysql/index.cjs";
|
|
6
5
|
import type { Logger } from "../logger.cjs";
|
|
7
6
|
import type { MySqlDialect } from "../mysql-core/dialect.cjs";
|
|
8
7
|
import type { SelectedFieldsOrdered } from "../mysql-core/query-builders/select.types.cjs";
|
|
@@ -12,6 +11,8 @@ import { type Query, type SQL } from "../sql/sql.cjs";
|
|
|
12
11
|
import { type Assume } from "../utils.cjs";
|
|
13
12
|
export declare class TiDBServerlessPreparedQuery<T extends MySqlPreparedQueryConfig> extends MySqlPreparedQuery<T> {
|
|
14
13
|
private client;
|
|
14
|
+
private queryString;
|
|
15
|
+
private params;
|
|
15
16
|
private logger;
|
|
16
17
|
private fields;
|
|
17
18
|
private customResultMapper?;
|
|
@@ -21,8 +22,8 @@ export declare class TiDBServerlessPreparedQuery<T extends MySqlPreparedQueryCon
|
|
|
21
22
|
constructor(client: Tx | Connection, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
|
|
22
23
|
type: 'select' | 'update' | 'delete' | 'insert';
|
|
23
24
|
tables: string[];
|
|
24
|
-
} | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined,
|
|
25
|
-
|
|
25
|
+
} | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined);
|
|
26
|
+
execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
|
|
26
27
|
iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;
|
|
27
28
|
}
|
|
28
29
|
export interface TiDBServerlessSessionOptions {
|
|
@@ -37,18 +38,18 @@ export declare class TiDBServerlessSession<TFullSchema extends Record<string, un
|
|
|
37
38
|
private logger;
|
|
38
39
|
private client;
|
|
39
40
|
private cache;
|
|
40
|
-
constructor(baseClient: Connection, dialect: MySqlDialect, tx: Tx | undefined, schema: RelationalSchemaConfig<TSchema> | undefined, options?: TiDBServerlessSessionOptions
|
|
41
|
+
constructor(baseClient: Connection, dialect: MySqlDialect, tx: Tx | undefined, schema: RelationalSchemaConfig<TSchema> | undefined, options?: TiDBServerlessSessionOptions);
|
|
41
42
|
prepareQuery<T extends MySqlPreparedQueryConfig = MySqlPreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper?: (rows: unknown[][]) => T['execute'], generatedIds?: Record<string, unknown>[], returningIds?: SelectedFieldsOrdered, queryMetadata?: {
|
|
42
43
|
type: 'select' | 'update' | 'delete' | 'insert';
|
|
43
44
|
tables: string[];
|
|
44
|
-
}, cacheConfig?: WithCacheConfig
|
|
45
|
+
}, cacheConfig?: WithCacheConfig): MySqlPreparedQuery<T>;
|
|
45
46
|
all<T = unknown>(query: SQL): Promise<T[]>;
|
|
46
47
|
count(sql: SQL): Promise<number>;
|
|
47
48
|
transaction<T>(transaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
|
|
48
49
|
}
|
|
49
50
|
export declare class TiDBServerlessTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends MySqlTransaction<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {
|
|
50
51
|
static readonly [entityKind]: string;
|
|
51
|
-
constructor(dialect: MySqlDialect, session: MySqlSession, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex?: number
|
|
52
|
+
constructor(dialect: MySqlDialect, session: MySqlSession, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex?: number);
|
|
52
53
|
transaction<T>(transaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
|
|
53
54
|
}
|
|
54
55
|
export interface TiDBServerlessQueryResultHKT extends MySqlQueryResultHKT {
|
|
@@ -2,7 +2,6 @@ import type { Connection, FullResult, Tx } from '@tidbcloud/serverless';
|
|
|
2
2
|
import { type Cache } from "../cache/core/index.js";
|
|
3
3
|
import type { WithCacheConfig } from "../cache/core/types.js";
|
|
4
4
|
import { entityKind } from "../entity.js";
|
|
5
|
-
import type { BlankMySqlHookContext, DrizzleMySqlExtension } from "../extension-core/mysql/index.js";
|
|
6
5
|
import type { Logger } from "../logger.js";
|
|
7
6
|
import type { MySqlDialect } from "../mysql-core/dialect.js";
|
|
8
7
|
import type { SelectedFieldsOrdered } from "../mysql-core/query-builders/select.types.js";
|
|
@@ -12,6 +11,8 @@ import { type Query, type SQL } from "../sql/sql.js";
|
|
|
12
11
|
import { type Assume } from "../utils.js";
|
|
13
12
|
export declare class TiDBServerlessPreparedQuery<T extends MySqlPreparedQueryConfig> extends MySqlPreparedQuery<T> {
|
|
14
13
|
private client;
|
|
14
|
+
private queryString;
|
|
15
|
+
private params;
|
|
15
16
|
private logger;
|
|
16
17
|
private fields;
|
|
17
18
|
private customResultMapper?;
|
|
@@ -21,8 +22,8 @@ export declare class TiDBServerlessPreparedQuery<T extends MySqlPreparedQueryCon
|
|
|
21
22
|
constructor(client: Tx | Connection, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
|
|
22
23
|
type: 'select' | 'update' | 'delete' | 'insert';
|
|
23
24
|
tables: string[];
|
|
24
|
-
} | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined,
|
|
25
|
-
|
|
25
|
+
} | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined);
|
|
26
|
+
execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
|
|
26
27
|
iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;
|
|
27
28
|
}
|
|
28
29
|
export interface TiDBServerlessSessionOptions {
|
|
@@ -37,18 +38,18 @@ export declare class TiDBServerlessSession<TFullSchema extends Record<string, un
|
|
|
37
38
|
private logger;
|
|
38
39
|
private client;
|
|
39
40
|
private cache;
|
|
40
|
-
constructor(baseClient: Connection, dialect: MySqlDialect, tx: Tx | undefined, schema: RelationalSchemaConfig<TSchema> | undefined, options?: TiDBServerlessSessionOptions
|
|
41
|
+
constructor(baseClient: Connection, dialect: MySqlDialect, tx: Tx | undefined, schema: RelationalSchemaConfig<TSchema> | undefined, options?: TiDBServerlessSessionOptions);
|
|
41
42
|
prepareQuery<T extends MySqlPreparedQueryConfig = MySqlPreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper?: (rows: unknown[][]) => T['execute'], generatedIds?: Record<string, unknown>[], returningIds?: SelectedFieldsOrdered, queryMetadata?: {
|
|
42
43
|
type: 'select' | 'update' | 'delete' | 'insert';
|
|
43
44
|
tables: string[];
|
|
44
|
-
}, cacheConfig?: WithCacheConfig
|
|
45
|
+
}, cacheConfig?: WithCacheConfig): MySqlPreparedQuery<T>;
|
|
45
46
|
all<T = unknown>(query: SQL): Promise<T[]>;
|
|
46
47
|
count(sql: SQL): Promise<number>;
|
|
47
48
|
transaction<T>(transaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
|
|
48
49
|
}
|
|
49
50
|
export declare class TiDBServerlessTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends MySqlTransaction<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {
|
|
50
51
|
static readonly [entityKind]: string;
|
|
51
|
-
constructor(dialect: MySqlDialect, session: MySqlSession, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex?: number
|
|
52
|
+
constructor(dialect: MySqlDialect, session: MySqlSession, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex?: number);
|
|
52
53
|
transaction<T>(transaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
|
|
53
54
|
}
|
|
54
55
|
export interface TiDBServerlessQueryResultHKT extends MySqlQueryResultHKT {
|
|
@@ -12,9 +12,11 @@ import { mapResultRow } from "../utils.js";
|
|
|
12
12
|
const executeRawConfig = { fullResult: true };
|
|
13
13
|
const queryConfig = { arrayMode: true };
|
|
14
14
|
class TiDBServerlessPreparedQuery extends MySqlPreparedQuery {
|
|
15
|
-
constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields,
|
|
16
|
-
super(
|
|
15
|
+
constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, customResultMapper, generatedIds, returningIds) {
|
|
16
|
+
super(cache, queryMetadata, cacheConfig);
|
|
17
17
|
this.client = client;
|
|
18
|
+
this.queryString = queryString;
|
|
19
|
+
this.params = params;
|
|
18
20
|
this.logger = logger;
|
|
19
21
|
this.fields = fields;
|
|
20
22
|
this.customResultMapper = customResultMapper;
|
|
@@ -22,7 +24,7 @@ class TiDBServerlessPreparedQuery extends MySqlPreparedQuery {
|
|
|
22
24
|
this.returningIds = returningIds;
|
|
23
25
|
}
|
|
24
26
|
static [entityKind] = "TiDBPreparedQuery";
|
|
25
|
-
async
|
|
27
|
+
async execute(placeholderValues = {}) {
|
|
26
28
|
const params = fillPlaceholders(this.params, placeholderValues);
|
|
27
29
|
this.logger.logQuery(this.queryString, params);
|
|
28
30
|
const { fields, client, queryString, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } = this;
|
|
@@ -66,8 +68,8 @@ class TiDBServerlessPreparedQuery extends MySqlPreparedQuery {
|
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
70
|
class TiDBServerlessSession extends MySqlSession {
|
|
69
|
-
constructor(baseClient, dialect, tx, schema, options = {}
|
|
70
|
-
super(dialect
|
|
71
|
+
constructor(baseClient, dialect, tx, schema, options = {}) {
|
|
72
|
+
super(dialect);
|
|
71
73
|
this.baseClient = baseClient;
|
|
72
74
|
this.schema = schema;
|
|
73
75
|
this.options = options;
|
|
@@ -79,7 +81,7 @@ class TiDBServerlessSession extends MySqlSession {
|
|
|
79
81
|
logger;
|
|
80
82
|
client;
|
|
81
83
|
cache;
|
|
82
|
-
prepareQuery(query, fields, customResultMapper, generatedIds, returningIds, queryMetadata, cacheConfig
|
|
84
|
+
prepareQuery(query, fields, customResultMapper, generatedIds, returningIds, queryMetadata, cacheConfig) {
|
|
83
85
|
return new TiDBServerlessPreparedQuery(
|
|
84
86
|
this.client,
|
|
85
87
|
query.sql,
|
|
@@ -89,8 +91,6 @@ class TiDBServerlessSession extends MySqlSession {
|
|
|
89
91
|
queryMetadata,
|
|
90
92
|
cacheConfig,
|
|
91
93
|
fields,
|
|
92
|
-
this.extensions,
|
|
93
|
-
hookContext,
|
|
94
94
|
customResultMapper,
|
|
95
95
|
generatedIds,
|
|
96
96
|
returningIds
|
|
@@ -110,20 +110,11 @@ class TiDBServerlessSession extends MySqlSession {
|
|
|
110
110
|
async transaction(transaction) {
|
|
111
111
|
const nativeTx = await this.baseClient.begin();
|
|
112
112
|
try {
|
|
113
|
-
const session = new TiDBServerlessSession(
|
|
114
|
-
this.baseClient,
|
|
115
|
-
this.dialect,
|
|
116
|
-
nativeTx,
|
|
117
|
-
this.schema,
|
|
118
|
-
this.options,
|
|
119
|
-
this.extensions
|
|
120
|
-
);
|
|
113
|
+
const session = new TiDBServerlessSession(this.baseClient, this.dialect, nativeTx, this.schema, this.options);
|
|
121
114
|
const tx = new TiDBServerlessTransaction(
|
|
122
115
|
this.dialect,
|
|
123
116
|
session,
|
|
124
|
-
this.schema
|
|
125
|
-
void 0,
|
|
126
|
-
this.extensions
|
|
117
|
+
this.schema
|
|
127
118
|
);
|
|
128
119
|
const result = await transaction(tx);
|
|
129
120
|
await nativeTx.commit();
|
|
@@ -136,8 +127,8 @@ class TiDBServerlessSession extends MySqlSession {
|
|
|
136
127
|
}
|
|
137
128
|
class TiDBServerlessTransaction extends MySqlTransaction {
|
|
138
129
|
static [entityKind] = "TiDBServerlessTransaction";
|
|
139
|
-
constructor(dialect, session, schema, nestedIndex = 0
|
|
140
|
-
super(dialect, session, schema, nestedIndex, "default"
|
|
130
|
+
constructor(dialect, session, schema, nestedIndex = 0) {
|
|
131
|
+
super(dialect, session, schema, nestedIndex, "default");
|
|
141
132
|
}
|
|
142
133
|
async transaction(transaction) {
|
|
143
134
|
const savepointName = `sp${this.nestedIndex + 1}`;
|
|
@@ -145,8 +136,7 @@ class TiDBServerlessTransaction extends MySqlTransaction {
|
|
|
145
136
|
this.dialect,
|
|
146
137
|
this.session,
|
|
147
138
|
this.schema,
|
|
148
|
-
this.nestedIndex + 1
|
|
149
|
-
this._.extensions
|
|
139
|
+
this.nestedIndex + 1
|
|
150
140
|
);
|
|
151
141
|
await tx.execute(sql.raw(`savepoint ${savepointName}`));
|
|
152
142
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tidb-serverless/session.ts"],"sourcesContent":["import type { Connection, ExecuteOptions, FullResult, Tx } from '@tidbcloud/serverless';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\n\nimport { entityKind, is } from '~/entity.ts';\nimport type { BlankMySqlHookContext, DrizzleMySqlExtension } from '~/extension-core/mysql/index.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\tMySqlPreparedQuery,\n\ttype MySqlPreparedQueryConfig,\n\ttype MySqlPreparedQueryHKT,\n\ttype MySqlQueryResultHKT,\n\tMySqlSession,\n\tMySqlTransaction,\n} from '~/mysql-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nconst executeRawConfig = { fullResult: true } satisfies ExecuteOptions;\nconst queryConfig = { arrayMode: true } satisfies ExecuteOptions;\n\nexport class TiDBServerlessPreparedQuery<T extends MySqlPreparedQueryConfig> extends MySqlPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'TiDBPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Tx | Connection,\n\t\tqueryString: string,\n\t\tparams: 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\textensions?: DrizzleMySqlExtension[],\n\t\thookContext?: BlankMySqlHookContext,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properries + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t) {\n\t\tsuper(queryString, params, cache, queryMetadata, cacheConfig, extensions, hookContext);\n\t}\n\n\tasync _execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\tconst { fields, client, queryString, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(queryString, params, async () => {\n\t\t\t\treturn await client.execute(queryString, params, executeRawConfig) as FullResult;\n\t\t\t});\n\t\t\tconst insertId = res.lastInsertId ?? 0;\n\t\t\tconst affectedRows = res.rowsAffected ?? 0;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst rows = await this.queryWithCache(queryString, params, async () => {\n\t\t\treturn await client.execute(queryString, params, queryConfig) as unknown[][];\n\t\t});\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\toverride iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']> {\n\t\tthrow new Error('Streaming is not supported by the TiDB Cloud Serverless driver');\n\t}\n}\n\nexport interface TiDBServerlessSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class TiDBServerlessSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlSession<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'TiDBServerlessSession';\n\n\tprivate logger: Logger;\n\tprivate client: Tx | Connection;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate baseClient: Connection,\n\t\tdialect: MySqlDialect,\n\t\ttx: Tx | undefined,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: TiDBServerlessSessionOptions = {},\n\t\textensions?: DrizzleMySqlExtension[],\n\t) {\n\t\tsuper(dialect, extensions);\n\t\tthis.client = tx ?? baseClient;\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends MySqlPreparedQueryConfig = MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\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?: BlankMySqlHookContext,\n\t): MySqlPreparedQuery<T> {\n\t\treturn new TiDBServerlessPreparedQuery(\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\tthis.extensions,\n\t\t\thookContext,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t);\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.execute(querySql.sql, querySql.params) as Promise<T[]>;\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst nativeTx = await this.baseClient.begin();\n\t\ttry {\n\t\t\tconst session = new TiDBServerlessSession(\n\t\t\t\tthis.baseClient,\n\t\t\t\tthis.dialect,\n\t\t\t\tnativeTx,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t\tthis.extensions,\n\t\t\t);\n\t\t\tconst tx = new TiDBServerlessTransaction<TFullSchema, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession as MySqlSession<any, any, any, any>,\n\t\t\t\tthis.schema,\n\t\t\t\tundefined,\n\t\t\t\tthis.extensions,\n\t\t\t);\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait nativeTx.commit();\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait nativeTx.rollback();\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class TiDBServerlessTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlTransaction<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'TiDBServerlessTransaction';\n\n\tconstructor(\n\t\tdialect: MySqlDialect,\n\t\tsession: MySqlSession,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tnestedIndex = 0,\n\t\textensions?: DrizzleMySqlExtension[],\n\t) {\n\t\tsuper(dialect, session, schema, nestedIndex, 'default', extensions);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new TiDBServerlessTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t\tthis._.extensions,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface TiDBServerlessQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: FullResult;\n}\n\nexport interface TiDBServerlessPreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: TiDBServerlessPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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","names":["sql"]}
|
|
1
|
+
{"version":3,"sources":["../../src/tidb-serverless/session.ts"],"sourcesContent":["import type { Connection, ExecuteOptions, FullResult, Tx } from '@tidbcloud/serverless';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\n\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\tMySqlPreparedQuery,\n\ttype MySqlPreparedQueryConfig,\n\ttype MySqlPreparedQueryHKT,\n\ttype MySqlQueryResultHKT,\n\tMySqlSession,\n\tMySqlTransaction,\n} from '~/mysql-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nconst executeRawConfig = { fullResult: true } satisfies ExecuteOptions;\nconst queryConfig = { arrayMode: true } satisfies ExecuteOptions;\n\nexport class TiDBServerlessPreparedQuery<T extends MySqlPreparedQueryConfig> extends MySqlPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'TiDBPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Tx | Connection,\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 customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properries + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t) {\n\t\tsuper(cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\tconst { fields, client, queryString, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(queryString, params, async () => {\n\t\t\t\treturn await client.execute(queryString, params, executeRawConfig) as FullResult;\n\t\t\t});\n\t\t\tconst insertId = res.lastInsertId ?? 0;\n\t\t\tconst affectedRows = res.rowsAffected ?? 0;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst rows = await this.queryWithCache(queryString, params, async () => {\n\t\t\treturn await client.execute(queryString, params, queryConfig) as unknown[][];\n\t\t});\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\toverride iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']> {\n\t\tthrow new Error('Streaming is not supported by the TiDB Cloud Serverless driver');\n\t}\n}\n\nexport interface TiDBServerlessSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class TiDBServerlessSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlSession<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'TiDBServerlessSession';\n\n\tprivate logger: Logger;\n\tprivate client: Tx | Connection;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate baseClient: Connection,\n\t\tdialect: MySqlDialect,\n\t\ttx: Tx | undefined,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: TiDBServerlessSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.client = tx ?? baseClient;\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends MySqlPreparedQueryConfig = MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\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): MySqlPreparedQuery<T> {\n\t\treturn new TiDBServerlessPreparedQuery(\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\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t);\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.execute(querySql.sql, querySql.params) as Promise<T[]>;\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst nativeTx = await this.baseClient.begin();\n\t\ttry {\n\t\t\tconst session = new TiDBServerlessSession(this.baseClient, this.dialect, nativeTx, this.schema, this.options);\n\t\t\tconst tx = new TiDBServerlessTransaction<TFullSchema, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession as MySqlSession<any, any, any, any>,\n\t\t\t\tthis.schema,\n\t\t\t);\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait nativeTx.commit();\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait nativeTx.rollback();\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class TiDBServerlessTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlTransaction<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'TiDBServerlessTransaction';\n\n\tconstructor(\n\t\tdialect: MySqlDialect,\n\t\tsession: MySqlSession,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema, nestedIndex, 'default');\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new TiDBServerlessTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface TiDBServerlessQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: FullResult;\n}\n\nexport interface TiDBServerlessPreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: TiDBServerlessPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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","names":["sql"]}
|
package/tracing.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tracing.ts"],"sourcesContent":["import type { Span, Tracer } from '@opentelemetry/api';\nimport { iife } from '~/tracing-utils.ts';\nimport { npmVersion } from '~/version.ts';\n\nlet otel: typeof import('@opentelemetry/api') | undefined;\nlet rawTracer: Tracer | undefined;\n// try {\n// \totel = await import('@opentelemetry/api');\n// } catch (err: any) {\n// \tif (err.code !== 'MODULE_NOT_FOUND' && err.code !== 'ERR_MODULE_NOT_FOUND') {\n// \t\tthrow err;\n// \t}\n// }\n\ntype SpanName =\n\t| 'drizzle.operation'\n\t| 'drizzle.prepareQuery'\n\t| 'drizzle.buildSQL'\n\t| 'drizzle.execute'\n\t| 'drizzle.driver.execute'\n\t| 'drizzle.
|
|
1
|
+
{"version":3,"sources":["../src/tracing.ts"],"sourcesContent":["import type { Span, Tracer } from '@opentelemetry/api';\nimport { iife } from '~/tracing-utils.ts';\nimport { npmVersion } from '~/version.ts';\n\nlet otel: typeof import('@opentelemetry/api') | undefined;\nlet rawTracer: Tracer | undefined;\n// try {\n// \totel = await import('@opentelemetry/api');\n// } catch (err: any) {\n// \tif (err.code !== 'MODULE_NOT_FOUND' && err.code !== 'ERR_MODULE_NOT_FOUND') {\n// \t\tthrow err;\n// \t}\n// }\n\ntype SpanName =\n\t| 'drizzle.operation'\n\t| 'drizzle.prepareQuery'\n\t| 'drizzle.buildSQL'\n\t| 'drizzle.execute'\n\t| 'drizzle.driver.execute'\n\t| 'drizzle.mapResponse';\n\n/** @internal */\nexport const tracer = {\n\tstartActiveSpan<F extends (span?: Span) => unknown>(name: SpanName, fn: F): ReturnType<F> {\n\t\tif (!otel) {\n\t\t\treturn fn() as ReturnType<F>;\n\t\t}\n\n\t\tif (!rawTracer) {\n\t\t\trawTracer = otel.trace.getTracer('drizzle-orm', npmVersion);\n\t\t}\n\n\t\treturn iife(\n\t\t\t(otel, rawTracer) =>\n\t\t\t\trawTracer.startActiveSpan(\n\t\t\t\t\tname,\n\t\t\t\t\t((span: Span) => {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\treturn fn(span);\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tspan.setStatus({\n\t\t\t\t\t\t\t\tcode: otel.SpanStatusCode.ERROR,\n\t\t\t\t\t\t\t\tmessage: e instanceof Error ? e.message : 'Unknown error', // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthrow e;\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tspan.end();\n\t\t\t\t\t\t}\n\t\t\t\t\t}) as F,\n\t\t\t\t),\n\t\t\totel,\n\t\t\trawTracer,\n\t\t);\n\t},\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,2BAAqB;AACrB,qBAA2B;AAE3B,IAAI;AACJ,IAAI;AAkBG,MAAM,SAAS;AAAA,EACrB,gBAAoD,MAAgB,IAAsB;AACzF,QAAI,CAAC,MAAM;AACV,aAAO,GAAG;AAAA,IACX;AAEA,QAAI,CAAC,WAAW;AACf,kBAAY,KAAK,MAAM,UAAU,eAAe,yBAAU;AAAA,IAC3D;AAEA,eAAO;AAAA,MACN,CAACA,OAAMC,eACNA,WAAU;AAAA,QACT;AAAA,QACC,CAAC,SAAe;AAChB,cAAI;AACH,mBAAO,GAAG,IAAI;AAAA,UACf,SAAS,GAAG;AACX,iBAAK,UAAU;AAAA,cACd,MAAMD,MAAK,eAAe;AAAA,cAC1B,SAAS,aAAa,QAAQ,EAAE,UAAU;AAAA;AAAA,YAC3C,CAAC;AACD,kBAAM;AAAA,UACP,UAAE;AACD,iBAAK,IAAI;AAAA,UACV;AAAA,QACD;AAAA,MACD;AAAA,MACD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACD;","names":["otel","rawTracer"]}
|
package/tracing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tracing.ts"],"sourcesContent":["import type { Span, Tracer } from '@opentelemetry/api';\nimport { iife } from '~/tracing-utils.ts';\nimport { npmVersion } from '~/version.ts';\n\nlet otel: typeof import('@opentelemetry/api') | undefined;\nlet rawTracer: Tracer | undefined;\n// try {\n// \totel = await import('@opentelemetry/api');\n// } catch (err: any) {\n// \tif (err.code !== 'MODULE_NOT_FOUND' && err.code !== 'ERR_MODULE_NOT_FOUND') {\n// \t\tthrow err;\n// \t}\n// }\n\ntype SpanName =\n\t| 'drizzle.operation'\n\t| 'drizzle.prepareQuery'\n\t| 'drizzle.buildSQL'\n\t| 'drizzle.execute'\n\t| 'drizzle.driver.execute'\n\t| 'drizzle.
|
|
1
|
+
{"version":3,"sources":["../src/tracing.ts"],"sourcesContent":["import type { Span, Tracer } from '@opentelemetry/api';\nimport { iife } from '~/tracing-utils.ts';\nimport { npmVersion } from '~/version.ts';\n\nlet otel: typeof import('@opentelemetry/api') | undefined;\nlet rawTracer: Tracer | undefined;\n// try {\n// \totel = await import('@opentelemetry/api');\n// } catch (err: any) {\n// \tif (err.code !== 'MODULE_NOT_FOUND' && err.code !== 'ERR_MODULE_NOT_FOUND') {\n// \t\tthrow err;\n// \t}\n// }\n\ntype SpanName =\n\t| 'drizzle.operation'\n\t| 'drizzle.prepareQuery'\n\t| 'drizzle.buildSQL'\n\t| 'drizzle.execute'\n\t| 'drizzle.driver.execute'\n\t| 'drizzle.mapResponse';\n\n/** @internal */\nexport const tracer = {\n\tstartActiveSpan<F extends (span?: Span) => unknown>(name: SpanName, fn: F): ReturnType<F> {\n\t\tif (!otel) {\n\t\t\treturn fn() as ReturnType<F>;\n\t\t}\n\n\t\tif (!rawTracer) {\n\t\t\trawTracer = otel.trace.getTracer('drizzle-orm', npmVersion);\n\t\t}\n\n\t\treturn iife(\n\t\t\t(otel, rawTracer) =>\n\t\t\t\trawTracer.startActiveSpan(\n\t\t\t\t\tname,\n\t\t\t\t\t((span: Span) => {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\treturn fn(span);\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tspan.setStatus({\n\t\t\t\t\t\t\t\tcode: otel.SpanStatusCode.ERROR,\n\t\t\t\t\t\t\t\tmessage: e instanceof Error ? e.message : 'Unknown error', // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthrow e;\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tspan.end();\n\t\t\t\t\t\t}\n\t\t\t\t\t}) as F,\n\t\t\t\t),\n\t\t\totel,\n\t\t\trawTracer,\n\t\t);\n\t},\n};\n"],"mappings":"AACA,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAE3B,IAAI;AACJ,IAAI;AAkBG,MAAM,SAAS;AAAA,EACrB,gBAAoD,MAAgB,IAAsB;AACzF,QAAI,CAAC,MAAM;AACV,aAAO,GAAG;AAAA,IACX;AAEA,QAAI,CAAC,WAAW;AACf,kBAAY,KAAK,MAAM,UAAU,eAAe,UAAU;AAAA,IAC3D;AAEA,WAAO;AAAA,MACN,CAACA,OAAMC,eACNA,WAAU;AAAA,QACT;AAAA,QACC,CAAC,SAAe;AAChB,cAAI;AACH,mBAAO,GAAG,IAAI;AAAA,UACf,SAAS,GAAG;AACX,iBAAK,UAAU;AAAA,cACd,MAAMD,MAAK,eAAe;AAAA,cAC1B,SAAS,aAAa,QAAQ,EAAE,UAAU;AAAA;AAAA,YAC3C,CAAC;AACD,kBAAM;AAAA,UACP,UAAE;AACD,iBAAK,IAAI;AAAA,UACV;AAAA,QACD;AAAA,MACD;AAAA,MACD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACD;","names":["otel","rawTracer"]}
|
package/utils.cjs
CHANGED
|
@@ -19,7 +19,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
19
|
var utils_exports = {};
|
|
20
20
|
__export(utils_exports, {
|
|
21
21
|
applyMixins: () => applyMixins,
|
|
22
|
-
columnExtensionsCheck: () => columnExtensionsCheck,
|
|
23
22
|
getColumnNameAndConfig: () => getColumnNameAndConfig,
|
|
24
23
|
getTableColumns: () => getTableColumns,
|
|
25
24
|
getTableLikeName: () => getTableLikeName,
|
|
@@ -31,10 +30,8 @@ __export(utils_exports, {
|
|
|
31
30
|
orderSelectedFields: () => orderSelectedFields
|
|
32
31
|
});
|
|
33
32
|
module.exports = __toCommonJS(utils_exports);
|
|
34
|
-
var import_cache = require("./cache/core/cache.cjs");
|
|
35
33
|
var import_column = require("./column.cjs");
|
|
36
34
|
var import_entity = require("./entity.cjs");
|
|
37
|
-
var import_extension_core = require("./extension-core/index.cjs");
|
|
38
35
|
var import_sql = require("./sql/sql.cjs");
|
|
39
36
|
var import_subquery = require("./subquery.cjs");
|
|
40
37
|
var import_table = require("./table.cjs");
|
|
@@ -113,27 +110,12 @@ function haveSameKeys(left, right) {
|
|
|
113
110
|
}
|
|
114
111
|
return true;
|
|
115
112
|
}
|
|
116
|
-
function mapUpdateSet(table, values
|
|
113
|
+
function mapUpdateSet(table, values) {
|
|
117
114
|
const entries = Object.entries(values).filter(([, value]) => value !== void 0).map(([key, value]) => {
|
|
118
115
|
if ((0, import_entity.is)(value, import_sql.SQL) || (0, import_entity.is)(value, import_column.Column)) {
|
|
119
116
|
return [key, value];
|
|
120
117
|
} else {
|
|
121
|
-
|
|
122
|
-
if (column[import_extension_core.requiredExtension]) {
|
|
123
|
-
columnExtensionsCheck(column, extensions);
|
|
124
|
-
return [
|
|
125
|
-
key,
|
|
126
|
-
new import_sql.ExtensionParam(
|
|
127
|
-
table[import_table.Table.Symbol.Columns][key][import_extension_core.requiredExtension],
|
|
128
|
-
value,
|
|
129
|
-
table[import_table.Table.Symbol.Columns][key]
|
|
130
|
-
)
|
|
131
|
-
];
|
|
132
|
-
}
|
|
133
|
-
return [
|
|
134
|
-
key,
|
|
135
|
-
new import_sql.Param(value, table[import_table.Table.Symbol.Columns][key])
|
|
136
|
-
];
|
|
118
|
+
return [key, new import_sql.Param(value, table[import_table.Table.Symbol.Columns][key])];
|
|
137
119
|
}
|
|
138
120
|
});
|
|
139
121
|
if (entries.length === 0) {
|
|
@@ -202,30 +184,12 @@ function isConfig(data) {
|
|
|
202
184
|
if (type !== "object" && type !== "function" && type !== "undefined") return false;
|
|
203
185
|
return true;
|
|
204
186
|
}
|
|
205
|
-
if ("extensions" in data) {
|
|
206
|
-
if (data["extensions"] !== void 0 && !Array.isArray(data["extensions"])) return false;
|
|
207
|
-
return true;
|
|
208
|
-
}
|
|
209
|
-
if ("cache" in data) {
|
|
210
|
-
if (data["cache"] !== void 0 && !(0, import_entity.is)(data["cache"], import_cache.Cache)) return false;
|
|
211
|
-
return true;
|
|
212
|
-
}
|
|
213
187
|
if (Object.keys(data).length === 0) return true;
|
|
214
188
|
return false;
|
|
215
189
|
}
|
|
216
|
-
function columnExtensionsCheck(column, extensions) {
|
|
217
|
-
const ext = column[import_extension_core.requiredExtension];
|
|
218
|
-
if (ext && !extensions?.find((e) => (0, import_entity.is)(e, ext))) {
|
|
219
|
-
throw new Error(
|
|
220
|
-
`Column "${column.table[import_table.OriginalName]}"."${column.name}" requires extension "${ext[import_extension_core.extensionName]}" to be queried!`
|
|
221
|
-
);
|
|
222
|
-
}
|
|
223
|
-
return column;
|
|
224
|
-
}
|
|
225
190
|
// Annotate the CommonJS export names for ESM import in node:
|
|
226
191
|
0 && (module.exports = {
|
|
227
192
|
applyMixins,
|
|
228
|
-
columnExtensionsCheck,
|
|
229
193
|
getColumnNameAndConfig,
|
|
230
194
|
getTableColumns,
|
|
231
195
|
getTableLikeName,
|
package/utils.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.ts"],"sourcesContent":["import { Cache } from './cache/core/cache.ts';\nimport type { AnyColumn } from './column.ts';\nimport { Column } from './column.ts';\nimport { is } from './entity.ts';\nimport { type DrizzleExtension, extensionName, requiredExtension } from './extension-core/index.ts';\nimport type { Logger } from './logger.ts';\nimport type { SelectedFieldsOrdered } from './operations.ts';\nimport type { TableLike } from './query-builders/select.types.ts';\nimport { ExtensionParam, Param, SQL, View } from './sql/sql.ts';\nimport type { DriverValueDecoder } from './sql/sql.ts';\nimport { Subquery } from './subquery.ts';\nimport { getTableName, OriginalName, Table } from './table.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\n/** @internal */\nexport function mapResultRow<TResult>(\n\tcolumns: SelectedFieldsOrdered<AnyColumn>,\n\trow: unknown[],\n\tjoinsNotNullableMap: Record<string, boolean> | undefined,\n): TResult {\n\t// Key -> nested object key, value -> table name if all fields in the nested object are from the same table, false otherwise\n\tconst nullifyMap: Record<string, string | false> = {};\n\n\tconst result = columns.reduce<Record<string, any>>(\n\t\t(result, { path, field }, columnIndex) => {\n\t\t\tlet decoder: DriverValueDecoder<unknown, unknown>;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tlet node = result;\n\t\t\tfor (const [pathChunkIndex, pathChunk] of path.entries()) {\n\t\t\t\tif (pathChunkIndex < path.length - 1) {\n\t\t\t\t\tif (!(pathChunk in node)) {\n\t\t\t\t\t\tnode[pathChunk] = {};\n\t\t\t\t\t}\n\t\t\t\t\tnode = node[pathChunk];\n\t\t\t\t} else {\n\t\t\t\t\tconst rawValue = row[columnIndex]!;\n\t\t\t\t\tconst value = node[pathChunk] = rawValue === null ? null : decoder.mapFromDriverValue(rawValue);\n\n\t\t\t\t\tif (joinsNotNullableMap && is(field, Column) && path.length === 2) {\n\t\t\t\t\t\tconst objectName = path[0]!;\n\t\t\t\t\t\tif (!(objectName in nullifyMap)) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\ttypeof nullifyMap[objectName] === 'string' && nullifyMap[objectName] !== getTableName(field.table)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\t{},\n\t);\n\n\t// Nullify all nested objects from nullifyMap that are nullable\n\tif (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n\t\tfor (const [objectName, tableName] of Object.entries(nullifyMap)) {\n\t\t\tif (typeof tableName === 'string' && !joinsNotNullableMap[tableName]) {\n\t\t\t\tresult[objectName] = null;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result as TResult;\n}\n\n/** @internal */\nexport function orderSelectedFields<TColumn extends AnyColumn>(\n\tfields: Record<string, unknown>,\n\tpathPrefix?: string[],\n): SelectedFieldsOrdered<TColumn> {\n\treturn Object.entries(fields).reduce<SelectedFieldsOrdered<AnyColumn>>((result, [name, field]) => {\n\t\tif (typeof name !== 'string') {\n\t\t\treturn result;\n\t\t}\n\n\t\tconst newPath = pathPrefix ? [...pathPrefix, name] : [name];\n\t\tif (is(field, Column) || is(field, SQL) || is(field, SQL.Aliased)) {\n\t\t\tresult.push({ path: newPath, field });\n\t\t} else if (is(field, Table)) {\n\t\t\tresult.push(...orderSelectedFields(field[Table.Symbol.Columns], newPath));\n\t\t} else {\n\t\t\tresult.push(...orderSelectedFields(field as Record<string, unknown>, newPath));\n\t\t}\n\t\treturn result;\n\t}, []) as SelectedFieldsOrdered<TColumn>;\n}\n\nexport function haveSameKeys(left: Record<string, unknown>, right: Record<string, unknown>) {\n\tconst leftKeys = Object.keys(left);\n\tconst rightKeys = Object.keys(right);\n\n\tif (leftKeys.length !== rightKeys.length) {\n\t\treturn false;\n\t}\n\n\tfor (const [index, key] of leftKeys.entries()) {\n\t\tif (key !== rightKeys[index]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/** @internal */\nexport function mapUpdateSet(\n\ttable: Table,\n\tvalues: Record<string, unknown>,\n\textensions?: DrizzleExtension[],\n): UpdateSet {\n\tconst entries: [string, UpdateSet[string]][] = Object.entries(values)\n\t\t.filter(([, value]) => value !== undefined)\n\t\t.map(([key, value]) => {\n\t\t\t// eslint-disable-next-line unicorn/prefer-ternary\n\t\t\tif (is(value, SQL) || is(value, Column)) {\n\t\t\t\treturn [key, value];\n\t\t\t} else {\n\t\t\t\tconst column = table[Table.Symbol.Columns][key]!;\n\t\t\t\tif (column[requiredExtension]) {\n\t\t\t\t\tcolumnExtensionsCheck(column, extensions);\n\n\t\t\t\t\treturn [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tnew ExtensionParam(\n\t\t\t\t\t\t\t(<any> table[Table.Symbol.Columns][key])[requiredExtension],\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\ttable[Table.Symbol.Columns][key],\n\t\t\t\t\t\t),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\tkey,\n\n\t\t\t\t\tnew Param(value, table[Table.Symbol.Columns][key]),\n\t\t\t\t];\n\t\t\t}\n\t\t});\n\n\tif (entries.length === 0) {\n\t\tthrow new Error('No values to set');\n\t}\n\n\treturn Object.fromEntries(entries);\n}\n\nexport type UpdateSet = Record<string, SQL | Param | AnyColumn | null | undefined>;\n\nexport type OneOrMany<T> = T | T[];\n\nexport type Update<T, TUpdate> =\n\t& {\n\t\t[K in Exclude<keyof T, keyof TUpdate>]: T[K];\n\t}\n\t& TUpdate;\n\nexport type Simplify<T> =\n\t& {\n\t\t// @ts-ignore - \"Type parameter 'K' has a circular constraint\", not sure why\n\t\t[K in keyof T]: T[K];\n\t}\n\t& {};\n\nexport type SimplifyMappedType<T> = [T] extends [unknown] ? T : never;\n\nexport type ShallowRecord<K extends keyof any, T> = SimplifyMappedType<{ [P in K]: T }>;\n\nexport type Assume<T, U> = T extends U ? T : U;\n\nexport type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;\n\nexport interface DrizzleTypeError<T extends string> {\n\t$drizzleTypeError: T;\n}\n\nexport type ValueOrArray<T> = T | T[];\n\n/** @internal */\nexport function applyMixins(baseClass: any, extendedClasses: any[]) {\n\tfor (const extendedClass of extendedClasses) {\n\t\tfor (const name of Object.getOwnPropertyNames(extendedClass.prototype)) {\n\t\t\tif (name === 'constructor') continue;\n\n\t\t\tObject.defineProperty(\n\t\t\t\tbaseClass.prototype,\n\t\t\t\tname,\n\t\t\t\tObject.getOwnPropertyDescriptor(extendedClass.prototype, name) || Object.create(null),\n\t\t\t);\n\t\t}\n\t}\n}\n\nexport type Or<T1, T2> = T1 extends true ? true : T2 extends true ? true : false;\n\nexport type IfThenElse<If, Then, Else> = If extends true ? Then : Else;\n\nexport type PromiseOf<T> = T extends Promise<infer U> ? U : T;\n\nexport type Writable<T> = {\n\t-readonly [P in keyof T]: T[P];\n};\n\nexport type NonArray<T> = T extends any[] ? never : T;\n\nexport function getTableColumns<T extends Table>(table: T): T['_']['columns'] {\n\treturn table[Table.Symbol.Columns];\n}\n\nexport function getViewSelectedFields<T extends View>(view: T): T['_']['selectedFields'] {\n\treturn view[ViewBaseConfig].selectedFields;\n}\n\n/** @internal */\nexport function getTableLikeName(table: TableLike): string | undefined {\n\treturn is(table, Subquery)\n\t\t? table._.alias\n\t\t: is(table, View)\n\t\t? table[ViewBaseConfig].name\n\t\t: is(table, SQL)\n\t\t? undefined\n\t\t: table[Table.Symbol.IsAlias]\n\t\t? table[Table.Symbol.Name]\n\t\t: table[Table.Symbol.BaseName];\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyColumn<{ tableName: TForeignTableName }> };\n\nexport type Casing = 'snake_case' | 'camelCase';\n\nexport interface DrizzleConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTExtensionKind extends DrizzleExtension = DrizzleExtension,\n> {\n\tlogger?: boolean | Logger;\n\tschema?: TSchema;\n\tcasing?: Casing;\n\tcache?: Cache;\n\textensions?: TExtensionKind[];\n}\nexport type ValidateShape<T, ValidShape, TResult = T> = T extends ValidShape\n\t? Exclude<keyof T, keyof ValidShape> extends never ? TResult\n\t: DrizzleTypeError<\n\t\t`Invalid key(s): ${Exclude<(keyof T) & (string | number | bigint | boolean | null | undefined), keyof ValidShape>}`\n\t>\n\t: never;\n\nexport type KnownKeysOnly<T, U> = {\n\t[K in keyof T]: K extends keyof U ? T[K] : never;\n};\n\nexport type IsAny<T> = 0 extends (1 & T) ? true : false;\n\n/** @internal */\nexport function getColumnNameAndConfig<\n\tTConfig extends Record<string, any> | undefined,\n>(a: string | TConfig | undefined, b: TConfig | undefined) {\n\treturn {\n\t\tname: typeof a === 'string' && a.length > 0 ? a : '' as string,\n\t\tconfig: typeof a === 'object' ? a : b as TConfig,\n\t};\n}\n\nexport type IfNotImported<T, Y, N> = unknown extends T ? Y : N;\n\nexport type ImportTypeError<TPackageName extends string> =\n\t`Please install \\`${TPackageName}\\` to allow Drizzle ORM to connect to the database`;\n\nexport type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Keys extends any\n\t? Required<Pick<T, Keys>> & Partial<Omit<T, Keys>>\n\t: never;\n\ntype ExpectedConfigShape = {\n\tlogger?: boolean | {\n\t\tlogQuery(query: string, params: unknown[]): void;\n\t};\n\tschema?: Record<string, never>;\n\tcasing?: 'snake_case' | 'camelCase';\n\textensions?: DrizzleExtension[];\n};\n\n// If this errors, you must update config shape checker function with new config specs\nconst _: DrizzleConfig = {} as ExpectedConfigShape;\nconst __: ExpectedConfigShape = {} as DrizzleConfig;\n\nexport function isConfig(data: any): boolean {\n\tif (typeof data !== 'object' || data === null) return false;\n\n\tif (data.constructor.name !== 'Object') return false;\n\n\tif ('logger' in data) {\n\t\tconst type = typeof data['logger'];\n\t\tif (\n\t\t\ttype !== 'boolean' && (type !== 'object' || typeof data['logger']['logQuery'] !== 'function')\n\t\t\t&& type !== 'undefined'\n\t\t) return false;\n\n\t\treturn true;\n\t}\n\n\tif ('schema' in data) {\n\t\tconst type = typeof data['schema'];\n\t\tif (type !== 'object' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('casing' in data) {\n\t\tconst type = typeof data['casing'];\n\t\tif (type !== 'string' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('mode' in data) {\n\t\tif (data['mode'] !== 'default' || data['mode'] !== 'planetscale' || data['mode'] !== undefined) return false;\n\n\t\treturn true;\n\t}\n\n\tif ('connection' in data) {\n\t\tconst type = typeof data['connection'];\n\t\tif (type !== 'string' && type !== 'object' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('client' in data) {\n\t\tconst type = typeof data['client'];\n\t\tif (type !== 'object' && type !== 'function' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('extensions' in data) {\n\t\tif (data['extensions'] !== undefined && !Array.isArray(data['extensions'])) return false;\n\n\t\treturn true;\n\t}\n\n\tif ('cache' in data) {\n\t\tif (data['cache'] !== undefined && !is(data['cache'], Cache)) return false;\n\n\t\treturn true;\n\t}\n\n\tif (Object.keys(data).length === 0) return true;\n\n\treturn false;\n}\n\nexport type NeonAuthToken = string | (() => string | Promise<string>);\n\nexport function columnExtensionsCheck(column: Column, extensions?: DrizzleExtension[]) {\n\tconst ext = column[requiredExtension];\n\n\tif (\n\t\text\n\t\t&& !extensions?.find((e) => is(e, ext))\n\t) {\n\t\tthrow new Error(\n\t\t\t`Column \"${\n\t\t\t\tcolumn.table[OriginalName]\n\t\t\t}\".\"${column.name}\" requires extension \"${ext![extensionName]!}\" to be queried!`,\n\t\t);\n\t}\n\n\treturn column;\n}\n"],"mappings":"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","names":["result"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils.ts"],"sourcesContent":["import type { Cache } from './cache/core/cache.ts';\nimport type { AnyColumn } from './column.ts';\nimport { Column } from './column.ts';\nimport { is } from './entity.ts';\nimport type { Logger } from './logger.ts';\nimport type { SelectedFieldsOrdered } from './operations.ts';\nimport type { TableLike } from './query-builders/select.types.ts';\nimport { Param, SQL, View } from './sql/sql.ts';\nimport type { DriverValueDecoder } from './sql/sql.ts';\nimport { Subquery } from './subquery.ts';\nimport { getTableName, Table } from './table.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\n/** @internal */\nexport function mapResultRow<TResult>(\n\tcolumns: SelectedFieldsOrdered<AnyColumn>,\n\trow: unknown[],\n\tjoinsNotNullableMap: Record<string, boolean> | undefined,\n): TResult {\n\t// Key -> nested object key, value -> table name if all fields in the nested object are from the same table, false otherwise\n\tconst nullifyMap: Record<string, string | false> = {};\n\n\tconst result = columns.reduce<Record<string, any>>(\n\t\t(result, { path, field }, columnIndex) => {\n\t\t\tlet decoder: DriverValueDecoder<unknown, unknown>;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tlet node = result;\n\t\t\tfor (const [pathChunkIndex, pathChunk] of path.entries()) {\n\t\t\t\tif (pathChunkIndex < path.length - 1) {\n\t\t\t\t\tif (!(pathChunk in node)) {\n\t\t\t\t\t\tnode[pathChunk] = {};\n\t\t\t\t\t}\n\t\t\t\t\tnode = node[pathChunk];\n\t\t\t\t} else {\n\t\t\t\t\tconst rawValue = row[columnIndex]!;\n\t\t\t\t\tconst value = node[pathChunk] = rawValue === null ? null : decoder.mapFromDriverValue(rawValue);\n\n\t\t\t\t\tif (joinsNotNullableMap && is(field, Column) && path.length === 2) {\n\t\t\t\t\t\tconst objectName = path[0]!;\n\t\t\t\t\t\tif (!(objectName in nullifyMap)) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\ttypeof nullifyMap[objectName] === 'string' && nullifyMap[objectName] !== getTableName(field.table)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\t{},\n\t);\n\n\t// Nullify all nested objects from nullifyMap that are nullable\n\tif (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n\t\tfor (const [objectName, tableName] of Object.entries(nullifyMap)) {\n\t\t\tif (typeof tableName === 'string' && !joinsNotNullableMap[tableName]) {\n\t\t\t\tresult[objectName] = null;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result as TResult;\n}\n\n/** @internal */\nexport function orderSelectedFields<TColumn extends AnyColumn>(\n\tfields: Record<string, unknown>,\n\tpathPrefix?: string[],\n): SelectedFieldsOrdered<TColumn> {\n\treturn Object.entries(fields).reduce<SelectedFieldsOrdered<AnyColumn>>((result, [name, field]) => {\n\t\tif (typeof name !== 'string') {\n\t\t\treturn result;\n\t\t}\n\n\t\tconst newPath = pathPrefix ? [...pathPrefix, name] : [name];\n\t\tif (is(field, Column) || is(field, SQL) || is(field, SQL.Aliased)) {\n\t\t\tresult.push({ path: newPath, field });\n\t\t} else if (is(field, Table)) {\n\t\t\tresult.push(...orderSelectedFields(field[Table.Symbol.Columns], newPath));\n\t\t} else {\n\t\t\tresult.push(...orderSelectedFields(field as Record<string, unknown>, newPath));\n\t\t}\n\t\treturn result;\n\t}, []) as SelectedFieldsOrdered<TColumn>;\n}\n\nexport function haveSameKeys(left: Record<string, unknown>, right: Record<string, unknown>) {\n\tconst leftKeys = Object.keys(left);\n\tconst rightKeys = Object.keys(right);\n\n\tif (leftKeys.length !== rightKeys.length) {\n\t\treturn false;\n\t}\n\n\tfor (const [index, key] of leftKeys.entries()) {\n\t\tif (key !== rightKeys[index]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/** @internal */\nexport function mapUpdateSet(table: Table, values: Record<string, unknown>): UpdateSet {\n\tconst entries: [string, UpdateSet[string]][] = Object.entries(values)\n\t\t.filter(([, value]) => value !== undefined)\n\t\t.map(([key, value]) => {\n\t\t\t// eslint-disable-next-line unicorn/prefer-ternary\n\t\t\tif (is(value, SQL) || is(value, Column)) {\n\t\t\t\treturn [key, value];\n\t\t\t} else {\n\t\t\t\treturn [key, new Param(value, table[Table.Symbol.Columns][key])];\n\t\t\t}\n\t\t});\n\n\tif (entries.length === 0) {\n\t\tthrow new Error('No values to set');\n\t}\n\n\treturn Object.fromEntries(entries);\n}\n\nexport type UpdateSet = Record<string, SQL | Param | AnyColumn | null | undefined>;\n\nexport type OneOrMany<T> = T | T[];\n\nexport type Update<T, TUpdate> =\n\t& {\n\t\t[K in Exclude<keyof T, keyof TUpdate>]: T[K];\n\t}\n\t& TUpdate;\n\nexport type Simplify<T> =\n\t& {\n\t\t// @ts-ignore - \"Type parameter 'K' has a circular constraint\", not sure why\n\t\t[K in keyof T]: T[K];\n\t}\n\t& {};\n\nexport type SimplifyMappedType<T> = [T] extends [unknown] ? T : never;\n\nexport type ShallowRecord<K extends keyof any, T> = SimplifyMappedType<{ [P in K]: T }>;\n\nexport type Assume<T, U> = T extends U ? T : U;\n\nexport type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;\n\nexport interface DrizzleTypeError<T extends string> {\n\t$drizzleTypeError: T;\n}\n\nexport type ValueOrArray<T> = T | T[];\n\n/** @internal */\nexport function applyMixins(baseClass: any, extendedClasses: any[]) {\n\tfor (const extendedClass of extendedClasses) {\n\t\tfor (const name of Object.getOwnPropertyNames(extendedClass.prototype)) {\n\t\t\tif (name === 'constructor') continue;\n\n\t\t\tObject.defineProperty(\n\t\t\t\tbaseClass.prototype,\n\t\t\t\tname,\n\t\t\t\tObject.getOwnPropertyDescriptor(extendedClass.prototype, name) || Object.create(null),\n\t\t\t);\n\t\t}\n\t}\n}\n\nexport type Or<T1, T2> = T1 extends true ? true : T2 extends true ? true : false;\n\nexport type IfThenElse<If, Then, Else> = If extends true ? Then : Else;\n\nexport type PromiseOf<T> = T extends Promise<infer U> ? U : T;\n\nexport type Writable<T> = {\n\t-readonly [P in keyof T]: T[P];\n};\n\nexport type NonArray<T> = T extends any[] ? never : T;\n\nexport function getTableColumns<T extends Table>(table: T): T['_']['columns'] {\n\treturn table[Table.Symbol.Columns];\n}\n\nexport function getViewSelectedFields<T extends View>(view: T): T['_']['selectedFields'] {\n\treturn view[ViewBaseConfig].selectedFields;\n}\n\n/** @internal */\nexport function getTableLikeName(table: TableLike): string | undefined {\n\treturn is(table, Subquery)\n\t\t? table._.alias\n\t\t: is(table, View)\n\t\t? table[ViewBaseConfig].name\n\t\t: is(table, SQL)\n\t\t? undefined\n\t\t: table[Table.Symbol.IsAlias]\n\t\t? table[Table.Symbol.Name]\n\t\t: table[Table.Symbol.BaseName];\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyColumn<{ tableName: TForeignTableName }> };\n\nexport type Casing = 'snake_case' | 'camelCase';\n\nexport interface DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> {\n\tlogger?: boolean | Logger;\n\tschema?: TSchema;\n\tcasing?: Casing;\n\tcache?: Cache;\n}\nexport type ValidateShape<T, ValidShape, TResult = T> = T extends ValidShape\n\t? Exclude<keyof T, keyof ValidShape> extends never ? TResult\n\t: DrizzleTypeError<\n\t\t`Invalid key(s): ${Exclude<(keyof T) & (string | number | bigint | boolean | null | undefined), keyof ValidShape>}`\n\t>\n\t: never;\n\nexport type KnownKeysOnly<T, U> = {\n\t[K in keyof T]: K extends keyof U ? T[K] : never;\n};\n\nexport type IsAny<T> = 0 extends (1 & T) ? true : false;\n\n/** @internal */\nexport function getColumnNameAndConfig<\n\tTConfig extends Record<string, any> | undefined,\n>(a: string | TConfig | undefined, b: TConfig | undefined) {\n\treturn {\n\t\tname: typeof a === 'string' && a.length > 0 ? a : '' as string,\n\t\tconfig: typeof a === 'object' ? a : b as TConfig,\n\t};\n}\n\nexport type IfNotImported<T, Y, N> = unknown extends T ? Y : N;\n\nexport type ImportTypeError<TPackageName extends string> =\n\t`Please install \\`${TPackageName}\\` to allow Drizzle ORM to connect to the database`;\n\nexport type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Keys extends any\n\t? Required<Pick<T, Keys>> & Partial<Omit<T, Keys>>\n\t: never;\n\ntype ExpectedConfigShape = {\n\tlogger?: boolean | {\n\t\tlogQuery(query: string, params: unknown[]): void;\n\t};\n\tschema?: Record<string, never>;\n\tcasing?: 'snake_case' | 'camelCase';\n};\n\n// If this errors, you must update config shape checker function with new config specs\nconst _: DrizzleConfig = {} as ExpectedConfigShape;\nconst __: ExpectedConfigShape = {} as DrizzleConfig;\n\nexport function isConfig(data: any): boolean {\n\tif (typeof data !== 'object' || data === null) return false;\n\n\tif (data.constructor.name !== 'Object') return false;\n\n\tif ('logger' in data) {\n\t\tconst type = typeof data['logger'];\n\t\tif (\n\t\t\ttype !== 'boolean' && (type !== 'object' || typeof data['logger']['logQuery'] !== 'function')\n\t\t\t&& type !== 'undefined'\n\t\t) return false;\n\n\t\treturn true;\n\t}\n\n\tif ('schema' in data) {\n\t\tconst type = typeof data['schema'];\n\t\tif (type !== 'object' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('casing' in data) {\n\t\tconst type = typeof data['casing'];\n\t\tif (type !== 'string' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('mode' in data) {\n\t\tif (data['mode'] !== 'default' || data['mode'] !== 'planetscale' || data['mode'] !== undefined) return false;\n\n\t\treturn true;\n\t}\n\n\tif ('connection' in data) {\n\t\tconst type = typeof data['connection'];\n\t\tif (type !== 'string' && type !== 'object' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('client' in data) {\n\t\tconst type = typeof data['client'];\n\t\tif (type !== 'object' && type !== 'function' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif (Object.keys(data).length === 0) return true;\n\n\treturn false;\n}\n\nexport type NeonAuthToken = string | (() => string | Promise<string>);\n"],"mappings":"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","names":["result"]}
|
package/utils.d.cts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { Cache } from "./cache/core/cache.cjs";
|
|
1
|
+
import type { Cache } from "./cache/core/cache.cjs";
|
|
2
2
|
import type { AnyColumn } from "./column.cjs";
|
|
3
|
-
import { Column } from "./column.cjs";
|
|
4
|
-
import { type DrizzleExtension } from "./extension-core/index.cjs";
|
|
5
3
|
import type { Logger } from "./logger.cjs";
|
|
6
4
|
import { Param, SQL, View } from "./sql/sql.cjs";
|
|
7
5
|
import { Table } from "./table.cjs";
|
|
@@ -41,12 +39,11 @@ export type ColumnsWithTable<TTableName extends string, TForeignTableName extend
|
|
|
41
39
|
}>;
|
|
42
40
|
};
|
|
43
41
|
export type Casing = 'snake_case' | 'camelCase';
|
|
44
|
-
export interface DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never
|
|
42
|
+
export interface DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> {
|
|
45
43
|
logger?: boolean | Logger;
|
|
46
44
|
schema?: TSchema;
|
|
47
45
|
casing?: Casing;
|
|
48
46
|
cache?: Cache;
|
|
49
|
-
extensions?: TExtensionKind[];
|
|
50
47
|
}
|
|
51
48
|
export type ValidateShape<T, ValidShape, TResult = T> = T extends ValidShape ? Exclude<keyof T, keyof ValidShape> extends never ? TResult : DrizzleTypeError<`Invalid key(s): ${Exclude<(keyof T) & (string | number | bigint | boolean | null | undefined), keyof ValidShape>}`> : never;
|
|
52
49
|
export type KnownKeysOnly<T, U> = {
|
|
@@ -58,4 +55,3 @@ export type ImportTypeError<TPackageName extends string> = `Please install \`${T
|
|
|
58
55
|
export type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Keys extends any ? Required<Pick<T, Keys>> & Partial<Omit<T, Keys>> : never;
|
|
59
56
|
export declare function isConfig(data: any): boolean;
|
|
60
57
|
export type NeonAuthToken = string | (() => string | Promise<string>);
|
|
61
|
-
export declare function columnExtensionsCheck(column: Column, extensions?: DrizzleExtension[]): Column<import("./column.ts").ColumnBaseConfig<import("./column-builder.ts").ColumnDataType, string>, object, object>;
|
package/utils.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { Cache } from "./cache/core/cache.js";
|
|
1
|
+
import type { Cache } from "./cache/core/cache.js";
|
|
2
2
|
import type { AnyColumn } from "./column.js";
|
|
3
|
-
import { Column } from "./column.js";
|
|
4
|
-
import { type DrizzleExtension } from "./extension-core/index.js";
|
|
5
3
|
import type { Logger } from "./logger.js";
|
|
6
4
|
import { Param, SQL, View } from "./sql/sql.js";
|
|
7
5
|
import { Table } from "./table.js";
|
|
@@ -41,12 +39,11 @@ export type ColumnsWithTable<TTableName extends string, TForeignTableName extend
|
|
|
41
39
|
}>;
|
|
42
40
|
};
|
|
43
41
|
export type Casing = 'snake_case' | 'camelCase';
|
|
44
|
-
export interface DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never
|
|
42
|
+
export interface DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> {
|
|
45
43
|
logger?: boolean | Logger;
|
|
46
44
|
schema?: TSchema;
|
|
47
45
|
casing?: Casing;
|
|
48
46
|
cache?: Cache;
|
|
49
|
-
extensions?: TExtensionKind[];
|
|
50
47
|
}
|
|
51
48
|
export type ValidateShape<T, ValidShape, TResult = T> = T extends ValidShape ? Exclude<keyof T, keyof ValidShape> extends never ? TResult : DrizzleTypeError<`Invalid key(s): ${Exclude<(keyof T) & (string | number | bigint | boolean | null | undefined), keyof ValidShape>}`> : never;
|
|
52
49
|
export type KnownKeysOnly<T, U> = {
|
|
@@ -58,4 +55,3 @@ export type ImportTypeError<TPackageName extends string> = `Please install \`${T
|
|
|
58
55
|
export type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Keys extends any ? Required<Pick<T, Keys>> & Partial<Omit<T, Keys>> : never;
|
|
59
56
|
export declare function isConfig(data: any): boolean;
|
|
60
57
|
export type NeonAuthToken = string | (() => string | Promise<string>);
|
|
61
|
-
export declare function columnExtensionsCheck(column: Column, extensions?: DrizzleExtension[]): Column<import("./column.js").ColumnBaseConfig<import("./column-builder.js").ColumnDataType, string>, object, object>;
|
package/utils.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { Cache } from "./cache/core/cache.js";
|
|
2
1
|
import { Column } from "./column.js";
|
|
3
2
|
import { is } from "./entity.js";
|
|
4
|
-
import {
|
|
5
|
-
import { ExtensionParam, Param, SQL, View } from "./sql/sql.js";
|
|
3
|
+
import { Param, SQL, View } from "./sql/sql.js";
|
|
6
4
|
import { Subquery } from "./subquery.js";
|
|
7
|
-
import { getTableName,
|
|
5
|
+
import { getTableName, Table } from "./table.js";
|
|
8
6
|
import { ViewBaseConfig } from "./view-common.js";
|
|
9
7
|
function mapResultRow(columns, row, joinsNotNullableMap) {
|
|
10
8
|
const nullifyMap = {};
|
|
@@ -80,27 +78,12 @@ function haveSameKeys(left, right) {
|
|
|
80
78
|
}
|
|
81
79
|
return true;
|
|
82
80
|
}
|
|
83
|
-
function mapUpdateSet(table, values
|
|
81
|
+
function mapUpdateSet(table, values) {
|
|
84
82
|
const entries = Object.entries(values).filter(([, value]) => value !== void 0).map(([key, value]) => {
|
|
85
83
|
if (is(value, SQL) || is(value, Column)) {
|
|
86
84
|
return [key, value];
|
|
87
85
|
} else {
|
|
88
|
-
|
|
89
|
-
if (column[requiredExtension]) {
|
|
90
|
-
columnExtensionsCheck(column, extensions);
|
|
91
|
-
return [
|
|
92
|
-
key,
|
|
93
|
-
new ExtensionParam(
|
|
94
|
-
table[Table.Symbol.Columns][key][requiredExtension],
|
|
95
|
-
value,
|
|
96
|
-
table[Table.Symbol.Columns][key]
|
|
97
|
-
)
|
|
98
|
-
];
|
|
99
|
-
}
|
|
100
|
-
return [
|
|
101
|
-
key,
|
|
102
|
-
new Param(value, table[Table.Symbol.Columns][key])
|
|
103
|
-
];
|
|
86
|
+
return [key, new Param(value, table[Table.Symbol.Columns][key])];
|
|
104
87
|
}
|
|
105
88
|
});
|
|
106
89
|
if (entries.length === 0) {
|
|
@@ -169,29 +152,11 @@ function isConfig(data) {
|
|
|
169
152
|
if (type !== "object" && type !== "function" && type !== "undefined") return false;
|
|
170
153
|
return true;
|
|
171
154
|
}
|
|
172
|
-
if ("extensions" in data) {
|
|
173
|
-
if (data["extensions"] !== void 0 && !Array.isArray(data["extensions"])) return false;
|
|
174
|
-
return true;
|
|
175
|
-
}
|
|
176
|
-
if ("cache" in data) {
|
|
177
|
-
if (data["cache"] !== void 0 && !is(data["cache"], Cache)) return false;
|
|
178
|
-
return true;
|
|
179
|
-
}
|
|
180
155
|
if (Object.keys(data).length === 0) return true;
|
|
181
156
|
return false;
|
|
182
157
|
}
|
|
183
|
-
function columnExtensionsCheck(column, extensions) {
|
|
184
|
-
const ext = column[requiredExtension];
|
|
185
|
-
if (ext && !extensions?.find((e) => is(e, ext))) {
|
|
186
|
-
throw new Error(
|
|
187
|
-
`Column "${column.table[OriginalName]}"."${column.name}" requires extension "${ext[extensionName]}" to be queried!`
|
|
188
|
-
);
|
|
189
|
-
}
|
|
190
|
-
return column;
|
|
191
|
-
}
|
|
192
158
|
export {
|
|
193
159
|
applyMixins,
|
|
194
|
-
columnExtensionsCheck,
|
|
195
160
|
getColumnNameAndConfig,
|
|
196
161
|
getTableColumns,
|
|
197
162
|
getTableLikeName,
|