drizzle-orm 0.40.0 → 1.0.0-beta.1-cacd055
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/_relations.cjs +328 -0
- package/_relations.cjs.map +1 -0
- package/_relations.d.cts +215 -0
- package/_relations.d.ts +215 -0
- package/_relations.js +316 -0
- package/_relations.js.map +1 -0
- package/alias.cjs.map +1 -1
- package/alias.d.cts +3 -3
- package/alias.d.ts +3 -3
- package/alias.js.map +1 -1
- package/aws-data-api/pg/driver.cjs +19 -5
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.d.cts +9 -8
- package/aws-data-api/pg/driver.d.ts +9 -8
- package/aws-data-api/pg/driver.js +9 -8
- package/aws-data-api/pg/driver.js.map +1 -1
- package/aws-data-api/pg/migrator.cjs.map +1 -1
- package/aws-data-api/pg/migrator.d.cts +2 -1
- package/aws-data-api/pg/migrator.d.ts +2 -1
- package/aws-data-api/pg/migrator.js.map +1 -1
- package/aws-data-api/pg/session.cjs +67 -4
- package/aws-data-api/pg/session.cjs.map +1 -1
- package/aws-data-api/pg/session.d.cts +13 -8
- package/aws-data-api/pg/session.d.ts +13 -8
- package/aws-data-api/pg/session.js +67 -4
- package/aws-data-api/pg/session.js.map +1 -1
- package/better-sqlite3/driver.cjs +12 -5
- package/better-sqlite3/driver.cjs.map +1 -1
- package/better-sqlite3/driver.d.cts +7 -6
- package/better-sqlite3/driver.d.ts +7 -6
- package/better-sqlite3/driver.js +12 -8
- package/better-sqlite3/driver.js.map +1 -1
- package/better-sqlite3/migrator.cjs.map +1 -1
- package/better-sqlite3/migrator.d.cts +2 -1
- package/better-sqlite3/migrator.d.ts +2 -1
- package/better-sqlite3/migrator.js.map +1 -1
- package/better-sqlite3/session.cjs +49 -4
- package/better-sqlite3/session.cjs.map +1 -1
- package/better-sqlite3/session.d.cts +14 -8
- package/better-sqlite3/session.d.ts +14 -8
- package/better-sqlite3/session.js +49 -4
- package/better-sqlite3/session.js.map +1 -1
- package/bun-sql/driver.cjs +16 -5
- package/bun-sql/driver.cjs.map +1 -1
- package/bun-sql/driver.d.cts +7 -6
- package/bun-sql/driver.d.ts +7 -6
- package/bun-sql/driver.js +6 -8
- package/bun-sql/driver.js.map +1 -1
- package/bun-sql/migrator.cjs.map +1 -1
- package/bun-sql/migrator.d.cts +2 -1
- package/bun-sql/migrator.d.ts +2 -1
- package/bun-sql/migrator.js.map +1 -1
- package/bun-sql/session.cjs +50 -6
- package/bun-sql/session.cjs.map +1 -1
- package/bun-sql/session.d.cts +14 -9
- package/bun-sql/session.d.ts +14 -9
- package/bun-sql/session.js +50 -6
- package/bun-sql/session.js.map +1 -1
- package/bun-sqlite/driver.cjs +22 -5
- package/bun-sqlite/driver.cjs.map +1 -1
- package/bun-sqlite/driver.d.cts +7 -6
- package/bun-sqlite/driver.d.ts +7 -6
- package/bun-sqlite/driver.js +12 -8
- package/bun-sqlite/driver.js.map +1 -1
- package/bun-sqlite/migrator.cjs.map +1 -1
- package/bun-sqlite/migrator.d.cts +2 -1
- package/bun-sqlite/migrator.d.ts +2 -1
- package/bun-sqlite/migrator.js.map +1 -1
- package/bun-sqlite/session.cjs +49 -4
- package/bun-sqlite/session.cjs.map +1 -1
- package/bun-sqlite/session.d.cts +14 -8
- package/bun-sqlite/session.d.ts +14 -8
- package/bun-sqlite/session.js +49 -4
- package/bun-sqlite/session.js.map +1 -1
- package/casing.cjs +3 -0
- package/casing.cjs.map +1 -1
- package/casing.d.cts +1 -1
- package/casing.d.ts +1 -1
- package/casing.js +4 -1
- package/casing.js.map +1 -1
- package/d1/driver.cjs +22 -5
- package/d1/driver.cjs.map +1 -1
- package/d1/driver.d.cts +3 -2
- package/d1/driver.d.ts +3 -2
- package/d1/driver.js +12 -8
- package/d1/driver.js.map +1 -1
- package/d1/migrator.cjs.map +1 -1
- package/d1/migrator.d.cts +2 -1
- package/d1/migrator.d.ts +2 -1
- package/d1/migrator.js.map +1 -1
- package/d1/session.cjs +50 -8
- package/d1/session.cjs.map +1 -1
- package/d1/session.d.cts +15 -8
- package/d1/session.d.ts +15 -8
- package/d1/session.js +50 -8
- package/d1/session.js.map +1 -1
- package/durable-sqlite/driver.cjs +16 -5
- package/durable-sqlite/driver.cjs.map +1 -1
- package/durable-sqlite/driver.d.cts +3 -2
- package/durable-sqlite/driver.d.ts +3 -2
- package/durable-sqlite/driver.js +6 -8
- package/durable-sqlite/driver.js.map +1 -1
- package/durable-sqlite/migrator.cjs.map +1 -1
- package/durable-sqlite/migrator.d.cts +2 -1
- package/durable-sqlite/migrator.d.ts +2 -1
- package/durable-sqlite/migrator.js.map +1 -1
- package/durable-sqlite/session.cjs +46 -4
- package/durable-sqlite/session.cjs.map +1 -1
- package/durable-sqlite/session.d.cts +14 -8
- package/durable-sqlite/session.d.ts +14 -8
- package/durable-sqlite/session.js +46 -4
- package/durable-sqlite/session.js.map +1 -1
- package/expo-sqlite/driver.cjs +22 -5
- package/expo-sqlite/driver.cjs.map +1 -1
- package/expo-sqlite/driver.d.cts +3 -2
- package/expo-sqlite/driver.d.ts +3 -2
- package/expo-sqlite/driver.js +12 -8
- package/expo-sqlite/driver.js.map +1 -1
- package/expo-sqlite/migrator.cjs.map +1 -1
- package/expo-sqlite/migrator.d.cts +3 -2
- package/expo-sqlite/migrator.d.ts +3 -2
- package/expo-sqlite/migrator.js.map +1 -1
- package/expo-sqlite/query.cjs +13 -2
- package/expo-sqlite/query.cjs.map +1 -1
- package/expo-sqlite/query.d.cts +2 -1
- package/expo-sqlite/query.d.ts +2 -1
- package/expo-sqlite/query.js +3 -2
- package/expo-sqlite/query.js.map +1 -1
- package/expo-sqlite/session.cjs +47 -4
- package/expo-sqlite/session.cjs.map +1 -1
- package/expo-sqlite/session.d.cts +14 -8
- package/expo-sqlite/session.d.ts +14 -8
- package/expo-sqlite/session.js +47 -4
- package/expo-sqlite/session.js.map +1 -1
- package/gel/driver.cjs +17 -6
- package/gel/driver.cjs.map +1 -1
- package/gel/driver.d.cts +8 -7
- package/gel/driver.d.ts +8 -7
- package/gel/driver.js +7 -9
- package/gel/driver.js.map +1 -1
- package/gel/migrator.cjs.map +1 -1
- package/gel/migrator.d.cts +1 -1
- package/gel/migrator.d.ts +1 -1
- package/gel/migrator.js.map +1 -1
- package/gel/session.cjs +46 -4
- package/gel/session.cjs.map +1 -1
- package/gel/session.d.cts +13 -8
- package/gel/session.d.ts +13 -8
- package/gel/session.js +46 -4
- package/gel/session.js.map +1 -1
- package/gel-core/columns/timestamptz.cjs +5 -0
- package/gel-core/columns/timestamptz.cjs.map +1 -1
- package/gel-core/columns/timestamptz.d.cts +1 -0
- package/gel-core/columns/timestamptz.d.ts +1 -0
- package/gel-core/columns/timestamptz.js +5 -0
- package/gel-core/columns/timestamptz.js.map +1 -1
- package/gel-core/db.cjs +28 -4
- package/gel-core/db.cjs.map +1 -1
- package/gel-core/db.d.cts +16 -9
- package/gel-core/db.d.ts +16 -9
- package/gel-core/db.js +27 -3
- package/gel-core/db.js.map +1 -1
- package/gel-core/dialect.cjs +172 -488
- package/gel-core/dialect.cjs.map +1 -1
- package/gel-core/dialect.d.cts +26 -8
- package/gel-core/dialect.d.ts +26 -8
- package/gel-core/dialect.js +170 -495
- package/gel-core/dialect.js.map +1 -1
- package/gel-core/query-builders/_query.cjs +149 -0
- package/gel-core/query-builders/_query.cjs.map +1 -0
- package/gel-core/query-builders/_query.d.cts +46 -0
- package/gel-core/query-builders/_query.d.ts +46 -0
- package/gel-core/query-builders/_query.js +114 -0
- package/gel-core/query-builders/_query.js.map +1 -0
- package/gel-core/query-builders/query.cjs +27 -24
- package/gel-core/query-builders/query.cjs.map +1 -1
- package/gel-core/query-builders/query.d.cts +9 -8
- package/gel-core/query-builders/query.d.ts +9 -8
- package/gel-core/query-builders/query.js +26 -23
- package/gel-core/query-builders/query.js.map +1 -1
- package/gel-core/session.cjs +3 -2
- package/gel-core/session.cjs.map +1 -1
- package/gel-core/session.d.cts +9 -6
- package/gel-core/session.d.ts +9 -6
- package/gel-core/session.js +3 -2
- package/gel-core/session.js.map +1 -1
- package/libsql/driver-core.cjs +22 -5
- package/libsql/driver-core.cjs.map +1 -1
- package/libsql/driver-core.d.cts +2 -1
- package/libsql/driver-core.d.ts +2 -1
- package/libsql/driver-core.js +12 -8
- package/libsql/driver-core.js.map +1 -1
- package/libsql/driver.cjs.map +1 -1
- package/libsql/driver.d.cts +6 -5
- package/libsql/driver.d.ts +6 -5
- package/libsql/driver.js.map +1 -1
- package/libsql/http/index.cjs.map +1 -1
- package/libsql/http/index.d.cts +6 -5
- package/libsql/http/index.d.ts +6 -5
- package/libsql/http/index.js.map +1 -1
- package/libsql/migrator.cjs.map +1 -1
- package/libsql/migrator.d.cts +2 -1
- package/libsql/migrator.d.ts +2 -1
- package/libsql/migrator.js.map +1 -1
- package/libsql/node/index.cjs.map +1 -1
- package/libsql/node/index.d.cts +6 -5
- package/libsql/node/index.d.ts +6 -5
- package/libsql/node/index.js.map +1 -1
- package/libsql/session.cjs +56 -4
- package/libsql/session.cjs.map +1 -1
- package/libsql/session.d.cts +15 -9
- package/libsql/session.d.ts +15 -9
- package/libsql/session.js +56 -4
- package/libsql/session.js.map +1 -1
- package/libsql/sqlite3/index.cjs.map +1 -1
- package/libsql/sqlite3/index.d.cts +6 -5
- package/libsql/sqlite3/index.d.ts +6 -5
- package/libsql/sqlite3/index.js.map +1 -1
- package/libsql/wasm/index.cjs.map +1 -1
- package/libsql/wasm/index.d.cts +6 -5
- package/libsql/wasm/index.d.ts +6 -5
- package/libsql/wasm/index.js.map +1 -1
- package/libsql/web/index.cjs.map +1 -1
- package/libsql/web/index.d.cts +6 -5
- package/libsql/web/index.d.ts +6 -5
- package/libsql/web/index.js.map +1 -1
- package/libsql/ws/index.cjs.map +1 -1
- package/libsql/ws/index.d.cts +6 -5
- package/libsql/ws/index.d.ts +6 -5
- package/libsql/ws/index.js.map +1 -1
- package/mysql-core/columns/binary.cjs +11 -0
- package/mysql-core/columns/binary.cjs.map +1 -1
- package/mysql-core/columns/binary.d.cts +1 -0
- package/mysql-core/columns/binary.d.ts +1 -0
- package/mysql-core/columns/binary.js +11 -0
- package/mysql-core/columns/binary.js.map +1 -1
- package/mysql-core/columns/decimal.cjs +5 -0
- package/mysql-core/columns/decimal.cjs.map +1 -1
- package/mysql-core/columns/decimal.d.cts +1 -0
- package/mysql-core/columns/decimal.d.ts +1 -0
- package/mysql-core/columns/decimal.js +5 -0
- package/mysql-core/columns/decimal.js.map +1 -1
- package/mysql-core/columns/float.cjs +6 -0
- package/mysql-core/columns/float.cjs.map +1 -1
- package/mysql-core/columns/float.d.cts +1 -0
- package/mysql-core/columns/float.d.ts +1 -0
- package/mysql-core/columns/float.js +6 -0
- package/mysql-core/columns/float.js.map +1 -1
- package/mysql-core/columns/varbinary.cjs +11 -0
- package/mysql-core/columns/varbinary.cjs.map +1 -1
- package/mysql-core/columns/varbinary.d.cts +1 -0
- package/mysql-core/columns/varbinary.d.ts +1 -0
- package/mysql-core/columns/varbinary.js +11 -0
- package/mysql-core/columns/varbinary.js.map +1 -1
- package/mysql-core/columns/varchar.cjs.map +1 -1
- package/mysql-core/columns/varchar.d.cts +1 -1
- package/mysql-core/columns/varchar.d.ts +1 -1
- package/mysql-core/columns/varchar.js.map +1 -1
- package/mysql-core/db.cjs +30 -6
- package/mysql-core/db.cjs.map +1 -1
- package/mysql-core/db.d.cts +15 -8
- package/mysql-core/db.d.ts +15 -8
- package/mysql-core/db.js +29 -5
- package/mysql-core/db.js.map +1 -1
- package/mysql-core/dialect.cjs +208 -15
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.d.cts +36 -13
- package/mysql-core/dialect.d.ts +36 -13
- package/mysql-core/dialect.js +206 -22
- package/mysql-core/dialect.js.map +1 -1
- package/mysql-core/query-builders/_query.cjs +149 -0
- package/mysql-core/query-builders/_query.cjs.map +1 -0
- package/mysql-core/query-builders/_query.d.cts +44 -0
- package/mysql-core/query-builders/_query.d.ts +44 -0
- package/mysql-core/query-builders/_query.js +114 -0
- package/mysql-core/query-builders/_query.js.map +1 -0
- package/mysql-core/query-builders/count.cjs.map +1 -1
- package/mysql-core/query-builders/count.d.cts +1 -1
- package/mysql-core/query-builders/count.d.ts +1 -1
- package/mysql-core/query-builders/count.js.map +1 -1
- package/mysql-core/query-builders/query.cjs +18 -31
- package/mysql-core/query-builders/query.cjs.map +1 -1
- package/mysql-core/query-builders/query.d.cts +8 -10
- package/mysql-core/query-builders/query.d.ts +8 -10
- package/mysql-core/query-builders/query.js +18 -31
- package/mysql-core/query-builders/query.js.map +1 -1
- package/mysql-core/session.cjs +3 -2
- package/mysql-core/session.cjs.map +1 -1
- package/mysql-core/session.d.cts +10 -7
- package/mysql-core/session.d.ts +10 -7
- package/mysql-core/session.js +3 -2
- package/mysql-core/session.js.map +1 -1
- package/mysql-proxy/driver.cjs +22 -5
- package/mysql-proxy/driver.cjs.map +1 -1
- package/mysql-proxy/driver.d.cts +3 -2
- package/mysql-proxy/driver.d.ts +3 -2
- package/mysql-proxy/driver.js +12 -8
- package/mysql-proxy/driver.js.map +1 -1
- package/mysql-proxy/migrator.cjs.map +1 -1
- package/mysql-proxy/migrator.d.cts +2 -1
- package/mysql-proxy/migrator.d.ts +2 -1
- package/mysql-proxy/migrator.js.map +1 -1
- package/mysql-proxy/session.cjs +27 -2
- package/mysql-proxy/session.cjs.map +1 -1
- package/mysql-proxy/session.d.cts +13 -8
- package/mysql-proxy/session.d.ts +13 -8
- package/mysql-proxy/session.js +27 -2
- package/mysql-proxy/session.js.map +1 -1
- package/mysql2/driver.cjs +24 -7
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.d.cts +10 -9
- package/mysql2/driver.d.ts +10 -9
- package/mysql2/driver.js +14 -10
- package/mysql2/driver.js.map +1 -1
- package/mysql2/migrator.cjs.map +1 -1
- package/mysql2/migrator.d.cts +2 -1
- package/mysql2/migrator.d.ts +2 -1
- package/mysql2/migrator.js.map +1 -1
- package/mysql2/session.cjs +30 -2
- package/mysql2/session.cjs.map +1 -1
- package/mysql2/session.d.cts +13 -8
- package/mysql2/session.d.ts +13 -8
- package/mysql2/session.js +30 -2
- package/mysql2/session.js.map +1 -1
- package/neon-http/driver.cjs +21 -7
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.d.cts +10 -9
- package/neon-http/driver.d.ts +10 -9
- package/neon-http/driver.js +11 -7
- package/neon-http/driver.js.map +1 -1
- package/neon-http/migrator.cjs.map +1 -1
- package/neon-http/migrator.d.cts +2 -1
- package/neon-http/migrator.d.ts +2 -1
- package/neon-http/migrator.js.map +1 -1
- package/neon-http/session.cjs +32 -2
- package/neon-http/session.cjs.map +1 -1
- package/neon-http/session.d.cts +13 -8
- package/neon-http/session.d.ts +13 -8
- package/neon-http/session.js +32 -2
- package/neon-http/session.js.map +1 -1
- package/neon-serverless/driver.cjs +18 -7
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.d.cts +9 -8
- package/neon-serverless/driver.d.ts +9 -8
- package/neon-serverless/driver.js +8 -10
- package/neon-serverless/driver.js.map +1 -1
- package/neon-serverless/migrator.cjs.map +1 -1
- package/neon-serverless/migrator.d.cts +2 -1
- package/neon-serverless/migrator.d.ts +2 -1
- package/neon-serverless/migrator.js.map +1 -1
- package/neon-serverless/session.cjs +64 -5
- package/neon-serverless/session.cjs.map +1 -1
- package/neon-serverless/session.d.cts +13 -8
- package/neon-serverless/session.d.ts +13 -8
- package/neon-serverless/session.js +64 -5
- package/neon-serverless/session.js.map +1 -1
- package/node-postgres/driver.cjs +13 -7
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.d.cts +9 -8
- package/node-postgres/driver.d.ts +9 -8
- package/node-postgres/driver.js +13 -10
- package/node-postgres/driver.js.map +1 -1
- package/node-postgres/migrator.cjs.map +1 -1
- package/node-postgres/migrator.d.cts +2 -1
- package/node-postgres/migrator.d.ts +2 -1
- package/node-postgres/migrator.js.map +1 -1
- package/node-postgres/session.cjs +69 -4
- package/node-postgres/session.cjs.map +1 -1
- package/node-postgres/session.d.cts +13 -8
- package/node-postgres/session.d.ts +13 -8
- package/node-postgres/session.js +69 -4
- package/node-postgres/session.js.map +1 -1
- package/op-sqlite/driver.cjs +22 -5
- package/op-sqlite/driver.cjs.map +1 -1
- package/op-sqlite/driver.d.cts +3 -2
- package/op-sqlite/driver.d.ts +3 -2
- package/op-sqlite/driver.js +12 -8
- package/op-sqlite/driver.js.map +1 -1
- package/op-sqlite/migrator.cjs.map +1 -1
- package/op-sqlite/migrator.d.cts +3 -2
- package/op-sqlite/migrator.d.ts +3 -2
- package/op-sqlite/migrator.js.map +1 -1
- package/op-sqlite/session.cjs +47 -4
- package/op-sqlite/session.cjs.map +1 -1
- package/op-sqlite/session.d.cts +14 -8
- package/op-sqlite/session.d.ts +14 -8
- package/op-sqlite/session.js +47 -4
- package/op-sqlite/session.js.map +1 -1
- package/package.json +111 -51
- package/pg-core/columns/numeric.cjs +5 -0
- package/pg-core/columns/numeric.cjs.map +1 -1
- package/pg-core/columns/numeric.d.cts +1 -0
- package/pg-core/columns/numeric.d.ts +1 -0
- package/pg-core/columns/numeric.js +5 -0
- package/pg-core/columns/numeric.js.map +1 -1
- package/pg-core/columns/postgis_extension/geometry.cjs +2 -0
- package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
- package/pg-core/columns/postgis_extension/geometry.d.cts +1 -1
- package/pg-core/columns/postgis_extension/geometry.d.ts +1 -1
- package/pg-core/columns/postgis_extension/geometry.js +2 -0
- package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
- package/pg-core/db.cjs +32 -5
- package/pg-core/db.cjs.map +1 -1
- package/pg-core/db.d.cts +16 -9
- package/pg-core/db.d.ts +16 -9
- package/pg-core/db.js +31 -4
- package/pg-core/db.js.map +1 -1
- package/pg-core/dialect.cjs +190 -488
- package/pg-core/dialect.cjs.map +1 -1
- package/pg-core/dialect.d.cts +27 -8
- package/pg-core/dialect.d.ts +27 -8
- package/pg-core/dialect.js +189 -495
- package/pg-core/dialect.js.map +1 -1
- package/pg-core/query-builders/_query.cjs +155 -0
- package/pg-core/query-builders/_query.cjs.map +1 -0
- package/pg-core/query-builders/_query.d.cts +47 -0
- package/pg-core/query-builders/_query.d.ts +47 -0
- package/pg-core/query-builders/_query.js +120 -0
- package/pg-core/query-builders/_query.js.map +1 -0
- package/pg-core/query-builders/count.cjs.map +1 -1
- package/pg-core/query-builders/count.d.cts +1 -1
- package/pg-core/query-builders/count.d.ts +1 -1
- package/pg-core/query-builders/count.js.map +1 -1
- package/pg-core/query-builders/query.cjs +15 -18
- package/pg-core/query-builders/query.cjs.map +1 -1
- package/pg-core/query-builders/query.d.cts +6 -6
- package/pg-core/query-builders/query.d.ts +6 -6
- package/pg-core/query-builders/query.js +15 -18
- package/pg-core/query-builders/query.js.map +1 -1
- package/pg-core/session.cjs +3 -2
- package/pg-core/session.cjs.map +1 -1
- package/pg-core/session.d.cts +9 -6
- package/pg-core/session.d.ts +9 -6
- package/pg-core/session.js +3 -2
- package/pg-core/session.js.map +1 -1
- package/pg-proxy/driver.cjs +21 -5
- package/pg-proxy/driver.cjs.map +1 -1
- package/pg-proxy/driver.d.cts +3 -2
- package/pg-proxy/driver.d.ts +3 -2
- package/pg-proxy/driver.js +11 -8
- package/pg-proxy/driver.js.map +1 -1
- package/pg-proxy/migrator.cjs.map +1 -1
- package/pg-proxy/migrator.d.cts +2 -1
- package/pg-proxy/migrator.d.ts +2 -1
- package/pg-proxy/migrator.js.map +1 -1
- package/pg-proxy/session.cjs +37 -2
- package/pg-proxy/session.cjs.map +1 -1
- package/pg-proxy/session.d.cts +13 -8
- package/pg-proxy/session.d.ts +13 -8
- package/pg-proxy/session.js +37 -2
- package/pg-proxy/session.js.map +1 -1
- package/pglite/driver.cjs +23 -7
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.d.cts +9 -8
- package/pglite/driver.d.ts +9 -8
- package/pglite/driver.js +13 -10
- package/pglite/driver.js.map +1 -1
- package/pglite/migrator.cjs.map +1 -1
- package/pglite/migrator.d.cts +2 -1
- package/pglite/migrator.d.ts +2 -1
- package/pglite/migrator.js.map +1 -1
- package/pglite/session.cjs +48 -5
- package/pglite/session.cjs.map +1 -1
- package/pglite/session.d.cts +13 -8
- package/pglite/session.d.ts +13 -8
- package/pglite/session.js +48 -5
- package/pglite/session.js.map +1 -1
- package/planetscale-serverless/driver.cjs +22 -5
- package/planetscale-serverless/driver.cjs.map +1 -1
- package/planetscale-serverless/driver.d.cts +7 -6
- package/planetscale-serverless/driver.d.ts +7 -6
- package/planetscale-serverless/driver.js +12 -8
- package/planetscale-serverless/driver.js.map +1 -1
- package/planetscale-serverless/migrator.cjs.map +1 -1
- package/planetscale-serverless/migrator.d.cts +2 -1
- package/planetscale-serverless/migrator.d.ts +2 -1
- package/planetscale-serverless/migrator.js.map +1 -1
- package/planetscale-serverless/session.cjs +45 -5
- package/planetscale-serverless/session.cjs.map +1 -1
- package/planetscale-serverless/session.d.cts +14 -9
- package/planetscale-serverless/session.d.ts +14 -9
- package/planetscale-serverless/session.js +45 -5
- package/planetscale-serverless/session.js.map +1 -1
- package/postgres-js/driver.cjs +7 -6
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.d.cts +7 -6
- package/postgres-js/driver.d.ts +7 -6
- package/postgres-js/driver.js +7 -9
- package/postgres-js/driver.js.map +1 -1
- package/postgres-js/migrator.cjs.map +1 -1
- package/postgres-js/migrator.d.cts +2 -1
- package/postgres-js/migrator.d.ts +2 -1
- package/postgres-js/migrator.js.map +1 -1
- package/postgres-js/session.cjs +51 -6
- package/postgres-js/session.cjs.map +1 -1
- package/postgres-js/session.d.cts +15 -9
- package/postgres-js/session.d.ts +15 -9
- package/postgres-js/session.js +51 -6
- package/postgres-js/session.js.map +1 -1
- package/prisma/mysql/driver.cjs +1 -1
- package/prisma/mysql/driver.cjs.map +1 -1
- package/prisma/mysql/driver.js +1 -1
- package/prisma/mysql/driver.js.map +1 -1
- package/prisma/mysql/session.cjs +3 -0
- package/prisma/mysql/session.cjs.map +1 -1
- package/prisma/mysql/session.d.cts +3 -1
- package/prisma/mysql/session.d.ts +3 -1
- package/prisma/mysql/session.js +3 -0
- package/prisma/mysql/session.js.map +1 -1
- package/prisma/pg/driver.cjs +1 -1
- package/prisma/pg/driver.cjs.map +1 -1
- package/prisma/pg/driver.js +1 -1
- package/prisma/pg/driver.js.map +1 -1
- package/prisma/pg/session.cjs +3 -0
- package/prisma/pg/session.cjs.map +1 -1
- package/prisma/pg/session.d.cts +3 -1
- package/prisma/pg/session.d.ts +3 -1
- package/prisma/pg/session.js +3 -0
- package/prisma/pg/session.js.map +1 -1
- package/prisma/sqlite/driver.cjs +1 -1
- package/prisma/sqlite/driver.cjs.map +1 -1
- package/prisma/sqlite/driver.js +1 -1
- package/prisma/sqlite/driver.js.map +1 -1
- package/prisma/sqlite/session.cjs +3 -0
- package/prisma/sqlite/session.cjs.map +1 -1
- package/prisma/sqlite/session.d.cts +4 -2
- package/prisma/sqlite/session.d.ts +4 -2
- package/prisma/sqlite/session.js +3 -0
- package/prisma/sqlite/session.js.map +1 -1
- package/relations.cjs +657 -245
- package/relations.cjs.map +1 -1
- package/relations.d.cts +339 -140
- package/relations.d.ts +339 -140
- package/relations.js +643 -240
- package/relations.js.map +1 -1
- package/singlestore/driver.cjs +1 -1
- package/singlestore/driver.cjs.map +1 -1
- package/singlestore/driver.d.cts +1 -1
- package/singlestore/driver.d.ts +1 -1
- package/singlestore/driver.js +3 -3
- package/singlestore/driver.js.map +1 -1
- package/singlestore/session.cjs.map +1 -1
- package/singlestore/session.d.cts +4 -4
- package/singlestore/session.d.ts +4 -4
- package/singlestore/session.js.map +1 -1
- package/singlestore-core/db.cjs.map +1 -1
- package/singlestore-core/db.d.cts +3 -3
- package/singlestore-core/db.d.ts +3 -3
- package/singlestore-core/db.js.map +1 -1
- package/singlestore-core/dialect.cjs +16 -6
- package/singlestore-core/dialect.cjs.map +1 -1
- package/singlestore-core/dialect.d.cts +6 -6
- package/singlestore-core/dialect.d.ts +6 -6
- package/singlestore-core/dialect.js +6 -12
- package/singlestore-core/dialect.js.map +1 -1
- package/singlestore-core/query-builders/query.cjs +12 -2
- package/singlestore-core/query-builders/query.cjs.map +1 -1
- package/singlestore-core/query-builders/query.d.cts +6 -6
- package/singlestore-core/query-builders/query.d.ts +6 -6
- package/singlestore-core/query-builders/query.js +2 -4
- package/singlestore-core/query-builders/query.js.map +1 -1
- package/singlestore-core/session.cjs.map +1 -1
- package/singlestore-core/session.d.cts +5 -5
- package/singlestore-core/session.d.ts +5 -5
- package/singlestore-core/session.js.map +1 -1
- package/singlestore-proxy/driver.cjs +1 -1
- package/singlestore-proxy/driver.cjs.map +1 -1
- package/singlestore-proxy/driver.js +3 -3
- package/singlestore-proxy/driver.js.map +1 -1
- package/singlestore-proxy/session.cjs.map +1 -1
- package/singlestore-proxy/session.d.cts +4 -4
- package/singlestore-proxy/session.d.ts +4 -4
- package/singlestore-proxy/session.js.map +1 -1
- package/sql/expressions/conditions.cjs.map +1 -1
- package/sql/expressions/conditions.d.cts +4 -4
- package/sql/expressions/conditions.d.ts +4 -4
- package/sql/expressions/conditions.js.map +1 -1
- package/sql/sql.cjs +21 -0
- package/sql/sql.cjs.map +1 -1
- package/sql/sql.d.cts +8 -8
- package/sql/sql.d.ts +8 -8
- package/sql/sql.js +22 -1
- package/sql/sql.js.map +1 -1
- package/sql-js/driver.cjs +16 -5
- package/sql-js/driver.cjs.map +1 -1
- package/sql-js/driver.d.cts +3 -2
- package/sql-js/driver.d.ts +3 -2
- package/sql-js/driver.js +6 -8
- package/sql-js/driver.js.map +1 -1
- package/sql-js/migrator.cjs.map +1 -1
- package/sql-js/migrator.d.cts +2 -1
- package/sql-js/migrator.d.ts +2 -1
- package/sql-js/migrator.js.map +1 -1
- package/sql-js/session.cjs +71 -36
- package/sql-js/session.cjs.map +1 -1
- package/sql-js/session.d.cts +16 -13
- package/sql-js/session.d.ts +16 -13
- package/sql-js/session.js +71 -36
- package/sql-js/session.js.map +1 -1
- package/sqlite-core/columns/blob.cjs +12 -0
- package/sqlite-core/columns/blob.cjs.map +1 -1
- package/sqlite-core/columns/blob.d.cts +2 -1
- package/sqlite-core/columns/blob.d.ts +2 -1
- package/sqlite-core/columns/blob.js +12 -0
- package/sqlite-core/columns/blob.js.map +1 -1
- package/sqlite-core/db.cjs +39 -12
- package/sqlite-core/db.cjs.map +1 -1
- package/sqlite-core/db.d.cts +16 -8
- package/sqlite-core/db.d.ts +16 -8
- package/sqlite-core/db.js +38 -11
- package/sqlite-core/db.js.map +1 -1
- package/sqlite-core/dialect.cjs +193 -7
- package/sqlite-core/dialect.cjs.map +1 -1
- package/sqlite-core/dialect.d.cts +31 -9
- package/sqlite-core/dialect.d.ts +31 -9
- package/sqlite-core/dialect.js +191 -14
- package/sqlite-core/dialect.js.map +1 -1
- package/sqlite-core/query-builders/_query.cjs +187 -0
- package/sqlite-core/query-builders/_query.cjs.map +1 -0
- package/sqlite-core/query-builders/_query.d.cts +55 -0
- package/sqlite-core/query-builders/_query.d.ts +55 -0
- package/sqlite-core/query-builders/_query.js +151 -0
- package/sqlite-core/query-builders/_query.js.map +1 -0
- package/sqlite-core/query-builders/count.cjs.map +1 -1
- package/sqlite-core/query-builders/count.d.cts +1 -1
- package/sqlite-core/query-builders/count.d.ts +1 -1
- package/sqlite-core/query-builders/count.js.map +1 -1
- package/sqlite-core/query-builders/delete.cjs.map +1 -1
- package/sqlite-core/query-builders/delete.d.cts +1 -1
- package/sqlite-core/query-builders/delete.d.ts +1 -1
- package/sqlite-core/query-builders/delete.js.map +1 -1
- package/sqlite-core/query-builders/insert.cjs.map +1 -1
- package/sqlite-core/query-builders/insert.d.cts +3 -3
- package/sqlite-core/query-builders/insert.d.ts +3 -3
- package/sqlite-core/query-builders/insert.js.map +1 -1
- package/sqlite-core/query-builders/query.cjs +56 -35
- package/sqlite-core/query-builders/query.cjs.map +1 -1
- package/sqlite-core/query-builders/query.d.cts +18 -17
- package/sqlite-core/query-builders/query.d.ts +18 -17
- package/sqlite-core/query-builders/query.js +56 -35
- package/sqlite-core/query-builders/query.js.map +1 -1
- package/sqlite-core/query-builders/select.cjs.map +1 -1
- package/sqlite-core/query-builders/select.d.cts +3 -3
- package/sqlite-core/query-builders/select.d.ts +3 -3
- package/sqlite-core/query-builders/select.js.map +1 -1
- package/sqlite-core/query-builders/update.cjs.map +1 -1
- package/sqlite-core/query-builders/update.d.cts +3 -3
- package/sqlite-core/query-builders/update.d.ts +3 -3
- package/sqlite-core/query-builders/update.js.map +1 -1
- package/sqlite-core/session.cjs +6 -2
- package/sqlite-core/session.cjs.map +1 -1
- package/sqlite-core/session.d.cts +15 -7
- package/sqlite-core/session.d.ts +15 -7
- package/sqlite-core/session.js +6 -2
- package/sqlite-core/session.js.map +1 -1
- package/sqlite-proxy/driver.cjs +23 -5
- package/sqlite-proxy/driver.cjs.map +1 -1
- package/sqlite-proxy/driver.d.cts +4 -3
- package/sqlite-proxy/driver.d.ts +4 -3
- package/sqlite-proxy/driver.js +13 -5
- package/sqlite-proxy/driver.js.map +1 -1
- package/sqlite-proxy/migrator.cjs.map +1 -1
- package/sqlite-proxy/migrator.d.cts +2 -1
- package/sqlite-proxy/migrator.d.ts +2 -1
- package/sqlite-proxy/migrator.js.map +1 -1
- package/sqlite-proxy/session.cjs +50 -6
- package/sqlite-proxy/session.cjs.map +1 -1
- package/sqlite-proxy/session.d.cts +14 -8
- package/sqlite-proxy/session.d.ts +14 -8
- package/sqlite-proxy/session.js +50 -6
- package/sqlite-proxy/session.js.map +1 -1
- package/table.cjs.map +1 -1
- package/table.d.cts +2 -2
- package/table.d.ts +2 -2
- package/table.js.map +1 -1
- package/tidb-serverless/driver.cjs +22 -5
- package/tidb-serverless/driver.cjs.map +1 -1
- package/tidb-serverless/driver.d.cts +7 -6
- package/tidb-serverless/driver.d.ts +7 -6
- package/tidb-serverless/driver.js +12 -8
- package/tidb-serverless/driver.js.map +1 -1
- package/tidb-serverless/migrator.cjs.map +1 -1
- package/tidb-serverless/migrator.d.cts +2 -1
- package/tidb-serverless/migrator.d.ts +2 -1
- package/tidb-serverless/migrator.js.map +1 -1
- package/tidb-serverless/session.cjs +62 -5
- package/tidb-serverless/session.cjs.map +1 -1
- package/tidb-serverless/session.d.cts +14 -9
- package/tidb-serverless/session.d.ts +14 -9
- package/tidb-serverless/session.js +62 -5
- package/tidb-serverless/session.js.map +1 -1
- package/utils.cjs +2 -2
- package/utils.cjs.map +1 -1
- package/utils.d.cts +3 -1
- package/utils.d.ts +3 -1
- package/utils.js +2 -2
- package/utils.js.map +1 -1
- package/vercel-postgres/driver.cjs +23 -7
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.d.cts +9 -8
- package/vercel-postgres/driver.d.ts +9 -8
- package/vercel-postgres/driver.js +13 -10
- package/vercel-postgres/driver.js.map +1 -1
- package/vercel-postgres/migrator.cjs.map +1 -1
- package/vercel-postgres/migrator.d.cts +2 -1
- package/vercel-postgres/migrator.d.ts +2 -1
- package/vercel-postgres/migrator.js.map +1 -1
- package/vercel-postgres/session.cjs +58 -4
- package/vercel-postgres/session.cjs.map +1 -1
- package/vercel-postgres/session.d.cts +13 -8
- package/vercel-postgres/session.d.ts +13 -8
- package/vercel-postgres/session.js +58 -4
- package/vercel-postgres/session.js.map +1 -1
- package/version.cjs +2 -2
- package/version.cjs.map +1 -1
- package/version.d.cts +2 -2
- package/version.d.ts +2 -2
- package/version.js +2 -2
- package/version.js.map +1 -1
- package/xata-http/driver.cjs +17 -5
- package/xata-http/driver.cjs.map +1 -1
- package/xata-http/driver.d.cts +5 -4
- package/xata-http/driver.d.ts +5 -4
- package/xata-http/driver.js +7 -5
- package/xata-http/driver.js.map +1 -1
- package/xata-http/migrator.cjs.map +1 -1
- package/xata-http/migrator.d.cts +2 -1
- package/xata-http/migrator.d.ts +2 -1
- package/xata-http/migrator.js.map +1 -1
- package/xata-http/session.cjs +30 -2
- package/xata-http/session.cjs.map +1 -1
- package/xata-http/session.d.cts +13 -8
- package/xata-http/session.d.ts +13 -8
- package/xata-http/session.js +30 -2
- package/xata-http/session.js.map +1 -1
package/sqlite-proxy/session.cjs
CHANGED
|
@@ -30,9 +30,10 @@ var import_sqlite_core = require("../sqlite-core/index.cjs");
|
|
|
30
30
|
var import_session = require("../sqlite-core/session.cjs");
|
|
31
31
|
var import_utils = require("../utils.cjs");
|
|
32
32
|
class SQLiteRemoteSession extends import_session.SQLiteSession {
|
|
33
|
-
constructor(client, dialect, schema, batchCLient, options = {}) {
|
|
33
|
+
constructor(client, dialect, relations, schema, batchCLient, options = {}) {
|
|
34
34
|
super(dialect);
|
|
35
35
|
this.client = client;
|
|
36
|
+
this.relations = relations;
|
|
36
37
|
this.schema = schema;
|
|
37
38
|
this.batchCLient = batchCLient;
|
|
38
39
|
this.logger = options.logger ?? new import_logger.NoopLogger();
|
|
@@ -50,6 +51,18 @@ class SQLiteRemoteSession extends import_session.SQLiteSession {
|
|
|
50
51
|
customResultMapper
|
|
51
52
|
);
|
|
52
53
|
}
|
|
54
|
+
prepareRelationalQuery(query, fields, executeMethod, customResultMapper) {
|
|
55
|
+
return new RemotePreparedQuery(
|
|
56
|
+
this.client,
|
|
57
|
+
query,
|
|
58
|
+
this.logger,
|
|
59
|
+
fields,
|
|
60
|
+
executeMethod,
|
|
61
|
+
true,
|
|
62
|
+
customResultMapper,
|
|
63
|
+
true
|
|
64
|
+
);
|
|
65
|
+
}
|
|
53
66
|
async batch(queries) {
|
|
54
67
|
const preparedQueries = [];
|
|
55
68
|
const builtQueries = [];
|
|
@@ -63,7 +76,7 @@ class SQLiteRemoteSession extends import_session.SQLiteSession {
|
|
|
63
76
|
return batchResults.map((result, i) => preparedQueries[i].mapResult(result, true));
|
|
64
77
|
}
|
|
65
78
|
async transaction(transaction, config) {
|
|
66
|
-
const tx = new SQLiteProxyTransaction("async", this.dialect, this, this.schema);
|
|
79
|
+
const tx = new SQLiteProxyTransaction("async", this.dialect, this, this.relations, this.schema, void 0, true);
|
|
67
80
|
await this.run(import_sql.sql.raw(`begin${config?.behavior ? " " + config.behavior : ""}`));
|
|
68
81
|
try {
|
|
69
82
|
const result = await transaction(tx);
|
|
@@ -88,7 +101,15 @@ class SQLiteProxyTransaction extends import_sqlite_core.SQLiteTransaction {
|
|
|
88
101
|
static [import_entity.entityKind] = "SQLiteProxyTransaction";
|
|
89
102
|
async transaction(transaction) {
|
|
90
103
|
const savepointName = `sp${this.nestedIndex}`;
|
|
91
|
-
const tx = new SQLiteProxyTransaction(
|
|
104
|
+
const tx = new SQLiteProxyTransaction(
|
|
105
|
+
"async",
|
|
106
|
+
this.dialect,
|
|
107
|
+
this.session,
|
|
108
|
+
this.relations,
|
|
109
|
+
this.schema,
|
|
110
|
+
this.nestedIndex + 1,
|
|
111
|
+
true
|
|
112
|
+
);
|
|
92
113
|
await this.session.run(import_sql.sql.raw(`savepoint ${savepointName}`));
|
|
93
114
|
try {
|
|
94
115
|
const result = await transaction(tx);
|
|
@@ -101,13 +122,14 @@ class SQLiteProxyTransaction extends import_sqlite_core.SQLiteTransaction {
|
|
|
101
122
|
}
|
|
102
123
|
}
|
|
103
124
|
class RemotePreparedQuery extends import_session.SQLitePreparedQuery {
|
|
104
|
-
constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
|
|
125
|
+
constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
|
|
105
126
|
super("async", executeMethod, query);
|
|
106
127
|
this.client = client;
|
|
107
128
|
this.logger = logger;
|
|
108
129
|
this.fields = fields;
|
|
109
130
|
this._isResponseInArrayMode = _isResponseInArrayMode;
|
|
110
131
|
this.customResultMapper = customResultMapper;
|
|
132
|
+
this.isRqbV2Query = isRqbV2Query;
|
|
111
133
|
this.customResultMapper = customResultMapper;
|
|
112
134
|
this.method = executeMethod;
|
|
113
135
|
}
|
|
@@ -129,7 +151,9 @@ class RemotePreparedQuery extends import_session.SQLitePreparedQuery {
|
|
|
129
151
|
return rows;
|
|
130
152
|
}
|
|
131
153
|
if (this.customResultMapper) {
|
|
132
|
-
return this.customResultMapper(
|
|
154
|
+
return this.customResultMapper(
|
|
155
|
+
this.isRqbV2Query ? rows.map((r) => JSON.parse(r[0])) : rows
|
|
156
|
+
);
|
|
133
157
|
}
|
|
134
158
|
return rows.map((row) => {
|
|
135
159
|
return (0, import_utils.mapResultRow)(
|
|
@@ -140,6 +164,8 @@ class RemotePreparedQuery extends import_session.SQLitePreparedQuery {
|
|
|
140
164
|
});
|
|
141
165
|
}
|
|
142
166
|
async all(placeholderValues) {
|
|
167
|
+
if (this.isRqbV2Query)
|
|
168
|
+
return this.allRqbV2(placeholderValues);
|
|
143
169
|
const { query, logger, client } = this;
|
|
144
170
|
const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
|
|
145
171
|
logger.logQuery(query.sql, params);
|
|
@@ -147,12 +173,28 @@ class RemotePreparedQuery extends import_session.SQLitePreparedQuery {
|
|
|
147
173
|
return this.mapAllResult(rows);
|
|
148
174
|
}
|
|
149
175
|
async get(placeholderValues) {
|
|
176
|
+
if (this.isRqbV2Query)
|
|
177
|
+
return this.getRqbV2(placeholderValues);
|
|
150
178
|
const { query, logger, client } = this;
|
|
151
179
|
const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
|
|
152
180
|
logger.logQuery(query.sql, params);
|
|
153
181
|
const clientResult = await client(query.sql, params, "get");
|
|
154
182
|
return this.mapGetResult(clientResult.rows);
|
|
155
183
|
}
|
|
184
|
+
async allRqbV2(placeholderValues) {
|
|
185
|
+
const { query, logger, client } = this;
|
|
186
|
+
const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
|
|
187
|
+
logger.logQuery(query.sql, params);
|
|
188
|
+
const { rows } = await client(query.sql, params, "all");
|
|
189
|
+
return this.mapAllResult(rows);
|
|
190
|
+
}
|
|
191
|
+
async getRqbV2(placeholderValues) {
|
|
192
|
+
const { query, logger, client } = this;
|
|
193
|
+
const params = (0, import_sql.fillPlaceholders)(query.params, placeholderValues ?? {});
|
|
194
|
+
logger.logQuery(query.sql, params);
|
|
195
|
+
const { rows } = await client(query.sql, params, "get");
|
|
196
|
+
return this.mapGetResult(rows);
|
|
197
|
+
}
|
|
156
198
|
mapGetResult(rows, isFromBatch) {
|
|
157
199
|
if (isFromBatch) {
|
|
158
200
|
rows = rows.rows;
|
|
@@ -165,7 +207,9 @@ class RemotePreparedQuery extends import_session.SQLitePreparedQuery {
|
|
|
165
207
|
return void 0;
|
|
166
208
|
}
|
|
167
209
|
if (this.customResultMapper) {
|
|
168
|
-
return this.customResultMapper(
|
|
210
|
+
return this.customResultMapper(
|
|
211
|
+
[this.isRqbV2Query ? JSON.parse(row) : rows]
|
|
212
|
+
);
|
|
169
213
|
}
|
|
170
214
|
return (0, import_utils.mapResultRow)(
|
|
171
215
|
this.fields,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/sqlite-proxy/session.ts"],"sourcesContent":["import type { BatchItem } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\nimport type { AsyncBatchRemoteCallback, AsyncRemoteCallback, RemoteCallback, SqliteRemoteResult } from './driver.ts';\n\nexport interface SQLiteRemoteSessionOptions {\n\tlogger?: Logger;\n}\n\nexport type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteRemoteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', SqliteRemoteResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteRemoteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate batchCLient?: AsyncBatchRemoteCallback,\n\t\toptions: SQLiteRemoteSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): RemotePreparedQuery<T> {\n\t\treturn new RemotePreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tasync batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: { sql: string; params: any[]; method: 'run' | 'all' | 'values' | 'get' }[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = (preparedQuery as RemotePreparedQuery).getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push({ sql: builtQuery.sql, params: builtQuery.params, method: builtQuery.method });\n\t\t}\n\n\t\tconst batchResults = await (this.batchCLient as AsyncBatchRemoteCallback)(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SQLiteProxyTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Promise<T> {\n\t\tconst tx = new SQLiteProxyTransaction('async', this.dialect, this, this.schema);\n\t\tawait this.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as SqliteRemoteResult).rows;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as SqliteRemoteResult).rows![0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as SqliteRemoteResult).rows;\n\t}\n}\n\nexport class SQLiteProxyTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', SqliteRemoteResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteProxyTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SQLiteProxyTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new SQLiteProxyTransaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tawait this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class RemotePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: SqliteRemoteResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteProxyPreparedQuery';\n\n\tprivate method: SQLiteExecuteMethod;\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\t/** @internal */ public customResultMapper?: (\n\t\t\trows: unknown[][],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown,\n\t) {\n\t\tsuper('async', executeMethod, query);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.method = executeMethod;\n\t}\n\n\toverride getQuery(): Query & { method: SQLiteExecuteMethod } {\n\t\treturn { ...this.query, method: this.method };\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): Promise<SqliteRemoteResult> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn (this.client as AsyncRemoteCallback)(this.query.sql, params, 'run') as Promise<\n\t\t\tSqliteRemoteResult\n\t\t>;\n\t}\n\n\toverride mapAllResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as SqliteRemoteResult).rows;\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn rows;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][]) as T['all'];\n\t\t}\n\n\t\treturn (rows as unknown[][]).map((row) => {\n\t\t\treturn mapResultRow(\n\t\t\t\tthis.fields!,\n\t\t\t\trow,\n\t\t\t\tthis.joinsNotNullableMap,\n\t\t\t);\n\t\t});\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { query, logger, client } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst { rows } = await (client as AsyncRemoteCallback)(query.sql, params, 'all');\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { query, logger, client } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst clientResult = await (client as AsyncRemoteCallback)(query.sql, params, 'get');\n\n\t\treturn this.mapGetResult(clientResult.rows);\n\t}\n\n\toverride mapGetResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as SqliteRemoteResult).rows;\n\t\t}\n\n\t\tconst row = rows as unknown[];\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn row;\n\t\t}\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper([rows] as unknown[][]) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(\n\t\t\tthis.fields!,\n\t\t\trow,\n\t\t\tthis.joinsNotNullableMap,\n\t\t);\n\t}\n\n\tasync values<T extends any[] = unknown[]>(placeholderValues?: Record<string, unknown>): Promise<T[]> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst clientResult = await (this.client as AsyncRemoteCallback)(this.query.sql, params, 'values');\n\t\treturn clientResult.rows as T[];\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/sqlite-proxy/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport type { BatchItem } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\nimport type { AsyncBatchRemoteCallback, AsyncRemoteCallback, RemoteCallback, SqliteRemoteResult } from './driver.ts';\n\nexport interface SQLiteRemoteSessionOptions {\n\tlogger?: Logger;\n}\n\nexport type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteRemoteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<'async', SqliteRemoteResult, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteRemoteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate batchCLient?: AsyncBatchRemoteCallback,\n\t\toptions: SQLiteRemoteSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): RemotePreparedQuery<T> {\n\t\treturn new RemotePreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => unknown,\n\t): RemotePreparedQuery<T, true> {\n\t\treturn new RemotePreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\ttrue,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tasync batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: { sql: string; params: any[]; method: 'run' | 'all' | 'values' | 'get' }[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = (preparedQuery as RemotePreparedQuery).getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push({ sql: builtQuery.sql, params: builtQuery.params, method: builtQuery.method });\n\t\t}\n\n\t\tconst batchResults = await (this.batchCLient as AsyncBatchRemoteCallback)(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SQLiteProxyTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Promise<T> {\n\t\tconst tx = new SQLiteProxyTransaction('async', this.dialect, this, this.relations, this.schema, undefined, true);\n\t\tawait this.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as SqliteRemoteResult).rows;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as SqliteRemoteResult).rows![0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as SqliteRemoteResult).rows;\n\t}\n}\n\nexport class SQLiteProxyTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<'async', SqliteRemoteResult, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteProxyTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SQLiteProxyTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new SQLiteProxyTransaction(\n\t\t\t'async',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t\ttrue,\n\t\t);\n\t\tawait this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class RemotePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends SQLitePreparedQuery<\n\t\t{ type: 'async'; run: SqliteRemoteResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteProxyPreparedQuery';\n\n\tprivate method: SQLiteExecuteMethod;\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\t/** @internal */ public customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper('async', executeMethod, query);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.method = executeMethod;\n\t}\n\n\toverride getQuery(): Query & { method: SQLiteExecuteMethod } {\n\t\treturn { ...this.query, method: this.method };\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): Promise<SqliteRemoteResult> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn (this.client as AsyncRemoteCallback)(this.query.sql, params, 'run') as Promise<\n\t\t\tSqliteRemoteResult\n\t\t>;\n\t}\n\n\toverride mapAllResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as SqliteRemoteResult).rows;\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn rows;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn (this.customResultMapper as (rows: unknown[][]) => unknown)(\n\t\t\t\tthis.isRqbV2Query ? (rows as unknown[][]).map((r) => JSON.parse(r[0] as string)) : rows as unknown[][],\n\t\t\t) as T['all'];\n\t\t}\n\n\t\treturn (rows as unknown[][]).map((row) => {\n\t\t\treturn mapResultRow(\n\t\t\t\tthis.fields!,\n\t\t\t\trow,\n\t\t\t\tthis.joinsNotNullableMap,\n\t\t\t);\n\t\t});\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\n\t\tconst { query, logger, client } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst { rows } = await (client as AsyncRemoteCallback)(query.sql, params, 'all');\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\n\t\tconst { query, logger, client } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst clientResult = await (client as AsyncRemoteCallback)(query.sql, params, 'get');\n\n\t\treturn this.mapGetResult(clientResult.rows);\n\t}\n\n\tprivate async allRqbV2(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { query, logger, client } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst { rows } = await (client as AsyncRemoteCallback)(query.sql, params, 'all');\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\tprivate async getRqbV2(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { query, logger, client } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst { rows } = await (client as AsyncRemoteCallback)(query.sql, params, 'get');\n\n\t\treturn this.mapGetResult(rows);\n\t}\n\n\toverride mapGetResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as SqliteRemoteResult).rows;\n\t\t}\n\n\t\tconst row = rows as unknown[] | string;\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn row;\n\t\t}\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn (this.customResultMapper as (rows: unknown[][]) => unknown)(\n\t\t\t\t[this.isRqbV2Query ? JSON.parse(row as string) : rows] as unknown[][],\n\t\t\t) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(\n\t\t\tthis.fields!,\n\t\t\trow as unknown[],\n\t\t\tthis.joinsNotNullableMap,\n\t\t);\n\t}\n\n\tasync values<T extends any[] = unknown[]>(placeholderValues?: Record<string, unknown>): Promise<T[]> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst clientResult = await (this.client as AsyncRemoteCallback)(this.query.sql, params, 'values');\n\t\treturn clientResult.rows as T[];\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type * as V1 from "../_relations.cjs";
|
|
1
2
|
import type { BatchItem } from "../batch.cjs";
|
|
2
3
|
import { entityKind } from "../entity.cjs";
|
|
3
4
|
import type { Logger } from "../logger.cjs";
|
|
4
|
-
import type {
|
|
5
|
+
import type { AnyRelations, TablesRelationalConfig } from "../relations.cjs";
|
|
5
6
|
import { type Query } from "../sql/sql.cjs";
|
|
6
7
|
import type { SQLiteAsyncDialect } from "../sqlite-core/dialect.cjs";
|
|
7
8
|
import { SQLiteTransaction } from "../sqlite-core/index.cjs";
|
|
@@ -13,25 +14,27 @@ export interface SQLiteRemoteSessionOptions {
|
|
|
13
14
|
logger?: Logger;
|
|
14
15
|
}
|
|
15
16
|
export type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
|
|
16
|
-
export declare class SQLiteRemoteSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'async', SqliteRemoteResult, TFullSchema, TSchema> {
|
|
17
|
+
export declare class SQLiteRemoteSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteSession<'async', SqliteRemoteResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
|
|
17
18
|
private client;
|
|
19
|
+
private relations;
|
|
18
20
|
private schema;
|
|
19
21
|
private batchCLient?;
|
|
20
22
|
static readonly [entityKind]: string;
|
|
21
23
|
private logger;
|
|
22
|
-
constructor(client: RemoteCallback, dialect: SQLiteAsyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, batchCLient?: AsyncBatchRemoteCallback | undefined, options?: SQLiteRemoteSessionOptions);
|
|
24
|
+
constructor(client: RemoteCallback, dialect: SQLiteAsyncDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined, batchCLient?: AsyncBatchRemoteCallback | undefined, options?: SQLiteRemoteSessionOptions);
|
|
23
25
|
prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): RemotePreparedQuery<T>;
|
|
26
|
+
prepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[]) => unknown): RemotePreparedQuery<T, true>;
|
|
24
27
|
batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T): Promise<unknown[]>;
|
|
25
|
-
transaction<T>(transaction: (tx: SQLiteProxyTransaction<TFullSchema, TSchema>) => Promise<T>, config?: SQLiteTransactionConfig): Promise<T>;
|
|
28
|
+
transaction<T>(transaction: (tx: SQLiteProxyTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>, config?: SQLiteTransactionConfig): Promise<T>;
|
|
26
29
|
extractRawAllValueFromBatchResult(result: unknown): unknown;
|
|
27
30
|
extractRawGetValueFromBatchResult(result: unknown): unknown;
|
|
28
31
|
extractRawValuesValueFromBatchResult(result: unknown): unknown;
|
|
29
32
|
}
|
|
30
|
-
export declare class SQLiteProxyTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'async', SqliteRemoteResult, TFullSchema, TSchema> {
|
|
33
|
+
export declare class SQLiteProxyTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteTransaction<'async', SqliteRemoteResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
|
|
31
34
|
static readonly [entityKind]: string;
|
|
32
|
-
transaction<T>(transaction: (tx: SQLiteProxyTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
|
|
35
|
+
transaction<T>(transaction: (tx: SQLiteProxyTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>): Promise<T>;
|
|
33
36
|
}
|
|
34
|
-
export declare class RemotePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<{
|
|
37
|
+
export declare class RemotePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends SQLitePreparedQuery<{
|
|
35
38
|
type: 'async';
|
|
36
39
|
run: SqliteRemoteResult;
|
|
37
40
|
all: T['all'];
|
|
@@ -43,10 +46,11 @@ export declare class RemotePreparedQuery<T extends PreparedQueryConfig = Prepare
|
|
|
43
46
|
private logger;
|
|
44
47
|
private fields;
|
|
45
48
|
private _isResponseInArrayMode;
|
|
49
|
+
private isRqbV2Query?;
|
|
46
50
|
static readonly [entityKind]: string;
|
|
47
51
|
private method;
|
|
48
52
|
constructor(client: RemoteCallback, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean,
|
|
49
|
-
/** @internal */ customResultMapper?: ((rows: unknown[]
|
|
53
|
+
/** @internal */ customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
|
|
50
54
|
getQuery(): Query & {
|
|
51
55
|
method: SQLiteExecuteMethod;
|
|
52
56
|
};
|
|
@@ -54,6 +58,8 @@ export declare class RemotePreparedQuery<T extends PreparedQueryConfig = Prepare
|
|
|
54
58
|
mapAllResult(rows: unknown, isFromBatch?: boolean): unknown;
|
|
55
59
|
all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;
|
|
56
60
|
get(placeholderValues?: Record<string, unknown>): Promise<T['get']>;
|
|
61
|
+
private allRqbV2;
|
|
62
|
+
private getRqbV2;
|
|
57
63
|
mapGetResult(rows: unknown, isFromBatch?: boolean): unknown;
|
|
58
64
|
values<T extends any[] = unknown[]>(placeholderValues?: Record<string, unknown>): Promise<T[]>;
|
|
59
65
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type * as V1 from "../_relations.js";
|
|
1
2
|
import type { BatchItem } from "../batch.js";
|
|
2
3
|
import { entityKind } from "../entity.js";
|
|
3
4
|
import type { Logger } from "../logger.js";
|
|
4
|
-
import type {
|
|
5
|
+
import type { AnyRelations, TablesRelationalConfig } from "../relations.js";
|
|
5
6
|
import { type Query } from "../sql/sql.js";
|
|
6
7
|
import type { SQLiteAsyncDialect } from "../sqlite-core/dialect.js";
|
|
7
8
|
import { SQLiteTransaction } from "../sqlite-core/index.js";
|
|
@@ -13,25 +14,27 @@ export interface SQLiteRemoteSessionOptions {
|
|
|
13
14
|
logger?: Logger;
|
|
14
15
|
}
|
|
15
16
|
export type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;
|
|
16
|
-
export declare class SQLiteRemoteSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteSession<'async', SqliteRemoteResult, TFullSchema, TSchema> {
|
|
17
|
+
export declare class SQLiteRemoteSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteSession<'async', SqliteRemoteResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
|
|
17
18
|
private client;
|
|
19
|
+
private relations;
|
|
18
20
|
private schema;
|
|
19
21
|
private batchCLient?;
|
|
20
22
|
static readonly [entityKind]: string;
|
|
21
23
|
private logger;
|
|
22
|
-
constructor(client: RemoteCallback, dialect: SQLiteAsyncDialect, schema: RelationalSchemaConfig<TSchema> | undefined, batchCLient?: AsyncBatchRemoteCallback | undefined, options?: SQLiteRemoteSessionOptions);
|
|
24
|
+
constructor(client: RemoteCallback, dialect: SQLiteAsyncDialect, relations: AnyRelations | undefined, schema: V1.RelationalSchemaConfig<TSchema> | undefined, batchCLient?: AsyncBatchRemoteCallback | undefined, options?: SQLiteRemoteSessionOptions);
|
|
23
25
|
prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => unknown): RemotePreparedQuery<T>;
|
|
26
|
+
prepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[]) => unknown): RemotePreparedQuery<T, true>;
|
|
24
27
|
batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T): Promise<unknown[]>;
|
|
25
|
-
transaction<T>(transaction: (tx: SQLiteProxyTransaction<TFullSchema, TSchema>) => Promise<T>, config?: SQLiteTransactionConfig): Promise<T>;
|
|
28
|
+
transaction<T>(transaction: (tx: SQLiteProxyTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>, config?: SQLiteTransactionConfig): Promise<T>;
|
|
26
29
|
extractRawAllValueFromBatchResult(result: unknown): unknown;
|
|
27
30
|
extractRawGetValueFromBatchResult(result: unknown): unknown;
|
|
28
31
|
extractRawValuesValueFromBatchResult(result: unknown): unknown;
|
|
29
32
|
}
|
|
30
|
-
export declare class SQLiteProxyTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends SQLiteTransaction<'async', SqliteRemoteResult, TFullSchema, TSchema> {
|
|
33
|
+
export declare class SQLiteProxyTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TTablesConfig extends TablesRelationalConfig, TSchema extends V1.TablesRelationalConfig> extends SQLiteTransaction<'async', SqliteRemoteResult, TFullSchema, TRelations, TTablesConfig, TSchema> {
|
|
31
34
|
static readonly [entityKind]: string;
|
|
32
|
-
transaction<T>(transaction: (tx: SQLiteProxyTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
|
|
35
|
+
transaction<T>(transaction: (tx: SQLiteProxyTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>): Promise<T>;
|
|
33
36
|
}
|
|
34
|
-
export declare class RemotePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<{
|
|
37
|
+
export declare class RemotePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends SQLitePreparedQuery<{
|
|
35
38
|
type: 'async';
|
|
36
39
|
run: SqliteRemoteResult;
|
|
37
40
|
all: T['all'];
|
|
@@ -43,10 +46,11 @@ export declare class RemotePreparedQuery<T extends PreparedQueryConfig = Prepare
|
|
|
43
46
|
private logger;
|
|
44
47
|
private fields;
|
|
45
48
|
private _isResponseInArrayMode;
|
|
49
|
+
private isRqbV2Query?;
|
|
46
50
|
static readonly [entityKind]: string;
|
|
47
51
|
private method;
|
|
48
52
|
constructor(client: RemoteCallback, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, _isResponseInArrayMode: boolean,
|
|
49
|
-
/** @internal */ customResultMapper?: ((rows: unknown[]
|
|
53
|
+
/** @internal */ customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
|
|
50
54
|
getQuery(): Query & {
|
|
51
55
|
method: SQLiteExecuteMethod;
|
|
52
56
|
};
|
|
@@ -54,6 +58,8 @@ export declare class RemotePreparedQuery<T extends PreparedQueryConfig = Prepare
|
|
|
54
58
|
mapAllResult(rows: unknown, isFromBatch?: boolean): unknown;
|
|
55
59
|
all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;
|
|
56
60
|
get(placeholderValues?: Record<string, unknown>): Promise<T['get']>;
|
|
61
|
+
private allRqbV2;
|
|
62
|
+
private getRqbV2;
|
|
57
63
|
mapGetResult(rows: unknown, isFromBatch?: boolean): unknown;
|
|
58
64
|
values<T extends any[] = unknown[]>(placeholderValues?: Record<string, unknown>): Promise<T[]>;
|
|
59
65
|
}
|
package/sqlite-proxy/session.js
CHANGED
|
@@ -5,9 +5,10 @@ import { SQLiteTransaction } from "../sqlite-core/index.js";
|
|
|
5
5
|
import { SQLitePreparedQuery, SQLiteSession } from "../sqlite-core/session.js";
|
|
6
6
|
import { mapResultRow } from "../utils.js";
|
|
7
7
|
class SQLiteRemoteSession extends SQLiteSession {
|
|
8
|
-
constructor(client, dialect, schema, batchCLient, options = {}) {
|
|
8
|
+
constructor(client, dialect, relations, schema, batchCLient, options = {}) {
|
|
9
9
|
super(dialect);
|
|
10
10
|
this.client = client;
|
|
11
|
+
this.relations = relations;
|
|
11
12
|
this.schema = schema;
|
|
12
13
|
this.batchCLient = batchCLient;
|
|
13
14
|
this.logger = options.logger ?? new NoopLogger();
|
|
@@ -25,6 +26,18 @@ class SQLiteRemoteSession extends SQLiteSession {
|
|
|
25
26
|
customResultMapper
|
|
26
27
|
);
|
|
27
28
|
}
|
|
29
|
+
prepareRelationalQuery(query, fields, executeMethod, customResultMapper) {
|
|
30
|
+
return new RemotePreparedQuery(
|
|
31
|
+
this.client,
|
|
32
|
+
query,
|
|
33
|
+
this.logger,
|
|
34
|
+
fields,
|
|
35
|
+
executeMethod,
|
|
36
|
+
true,
|
|
37
|
+
customResultMapper,
|
|
38
|
+
true
|
|
39
|
+
);
|
|
40
|
+
}
|
|
28
41
|
async batch(queries) {
|
|
29
42
|
const preparedQueries = [];
|
|
30
43
|
const builtQueries = [];
|
|
@@ -38,7 +51,7 @@ class SQLiteRemoteSession extends SQLiteSession {
|
|
|
38
51
|
return batchResults.map((result, i) => preparedQueries[i].mapResult(result, true));
|
|
39
52
|
}
|
|
40
53
|
async transaction(transaction, config) {
|
|
41
|
-
const tx = new SQLiteProxyTransaction("async", this.dialect, this, this.schema);
|
|
54
|
+
const tx = new SQLiteProxyTransaction("async", this.dialect, this, this.relations, this.schema, void 0, true);
|
|
42
55
|
await this.run(sql.raw(`begin${config?.behavior ? " " + config.behavior : ""}`));
|
|
43
56
|
try {
|
|
44
57
|
const result = await transaction(tx);
|
|
@@ -63,7 +76,15 @@ class SQLiteProxyTransaction extends SQLiteTransaction {
|
|
|
63
76
|
static [entityKind] = "SQLiteProxyTransaction";
|
|
64
77
|
async transaction(transaction) {
|
|
65
78
|
const savepointName = `sp${this.nestedIndex}`;
|
|
66
|
-
const tx = new SQLiteProxyTransaction(
|
|
79
|
+
const tx = new SQLiteProxyTransaction(
|
|
80
|
+
"async",
|
|
81
|
+
this.dialect,
|
|
82
|
+
this.session,
|
|
83
|
+
this.relations,
|
|
84
|
+
this.schema,
|
|
85
|
+
this.nestedIndex + 1,
|
|
86
|
+
true
|
|
87
|
+
);
|
|
67
88
|
await this.session.run(sql.raw(`savepoint ${savepointName}`));
|
|
68
89
|
try {
|
|
69
90
|
const result = await transaction(tx);
|
|
@@ -76,13 +97,14 @@ class SQLiteProxyTransaction extends SQLiteTransaction {
|
|
|
76
97
|
}
|
|
77
98
|
}
|
|
78
99
|
class RemotePreparedQuery extends SQLitePreparedQuery {
|
|
79
|
-
constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper) {
|
|
100
|
+
constructor(client, query, logger, fields, executeMethod, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
|
|
80
101
|
super("async", executeMethod, query);
|
|
81
102
|
this.client = client;
|
|
82
103
|
this.logger = logger;
|
|
83
104
|
this.fields = fields;
|
|
84
105
|
this._isResponseInArrayMode = _isResponseInArrayMode;
|
|
85
106
|
this.customResultMapper = customResultMapper;
|
|
107
|
+
this.isRqbV2Query = isRqbV2Query;
|
|
86
108
|
this.customResultMapper = customResultMapper;
|
|
87
109
|
this.method = executeMethod;
|
|
88
110
|
}
|
|
@@ -104,7 +126,9 @@ class RemotePreparedQuery extends SQLitePreparedQuery {
|
|
|
104
126
|
return rows;
|
|
105
127
|
}
|
|
106
128
|
if (this.customResultMapper) {
|
|
107
|
-
return this.customResultMapper(
|
|
129
|
+
return this.customResultMapper(
|
|
130
|
+
this.isRqbV2Query ? rows.map((r) => JSON.parse(r[0])) : rows
|
|
131
|
+
);
|
|
108
132
|
}
|
|
109
133
|
return rows.map((row) => {
|
|
110
134
|
return mapResultRow(
|
|
@@ -115,6 +139,8 @@ class RemotePreparedQuery extends SQLitePreparedQuery {
|
|
|
115
139
|
});
|
|
116
140
|
}
|
|
117
141
|
async all(placeholderValues) {
|
|
142
|
+
if (this.isRqbV2Query)
|
|
143
|
+
return this.allRqbV2(placeholderValues);
|
|
118
144
|
const { query, logger, client } = this;
|
|
119
145
|
const params = fillPlaceholders(query.params, placeholderValues ?? {});
|
|
120
146
|
logger.logQuery(query.sql, params);
|
|
@@ -122,12 +148,28 @@ class RemotePreparedQuery extends SQLitePreparedQuery {
|
|
|
122
148
|
return this.mapAllResult(rows);
|
|
123
149
|
}
|
|
124
150
|
async get(placeholderValues) {
|
|
151
|
+
if (this.isRqbV2Query)
|
|
152
|
+
return this.getRqbV2(placeholderValues);
|
|
125
153
|
const { query, logger, client } = this;
|
|
126
154
|
const params = fillPlaceholders(query.params, placeholderValues ?? {});
|
|
127
155
|
logger.logQuery(query.sql, params);
|
|
128
156
|
const clientResult = await client(query.sql, params, "get");
|
|
129
157
|
return this.mapGetResult(clientResult.rows);
|
|
130
158
|
}
|
|
159
|
+
async allRqbV2(placeholderValues) {
|
|
160
|
+
const { query, logger, client } = this;
|
|
161
|
+
const params = fillPlaceholders(query.params, placeholderValues ?? {});
|
|
162
|
+
logger.logQuery(query.sql, params);
|
|
163
|
+
const { rows } = await client(query.sql, params, "all");
|
|
164
|
+
return this.mapAllResult(rows);
|
|
165
|
+
}
|
|
166
|
+
async getRqbV2(placeholderValues) {
|
|
167
|
+
const { query, logger, client } = this;
|
|
168
|
+
const params = fillPlaceholders(query.params, placeholderValues ?? {});
|
|
169
|
+
logger.logQuery(query.sql, params);
|
|
170
|
+
const { rows } = await client(query.sql, params, "get");
|
|
171
|
+
return this.mapGetResult(rows);
|
|
172
|
+
}
|
|
131
173
|
mapGetResult(rows, isFromBatch) {
|
|
132
174
|
if (isFromBatch) {
|
|
133
175
|
rows = rows.rows;
|
|
@@ -140,7 +182,9 @@ class RemotePreparedQuery extends SQLitePreparedQuery {
|
|
|
140
182
|
return void 0;
|
|
141
183
|
}
|
|
142
184
|
if (this.customResultMapper) {
|
|
143
|
-
return this.customResultMapper(
|
|
185
|
+
return this.customResultMapper(
|
|
186
|
+
[this.isRqbV2Query ? JSON.parse(row) : rows]
|
|
187
|
+
);
|
|
144
188
|
}
|
|
145
189
|
return mapResultRow(
|
|
146
190
|
this.fields,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/sqlite-proxy/session.ts"],"sourcesContent":["import type { BatchItem } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\nimport type { AsyncBatchRemoteCallback, AsyncRemoteCallback, RemoteCallback, SqliteRemoteResult } from './driver.ts';\n\nexport interface SQLiteRemoteSessionOptions {\n\tlogger?: Logger;\n}\n\nexport type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteRemoteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', SqliteRemoteResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteRemoteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate batchCLient?: AsyncBatchRemoteCallback,\n\t\toptions: SQLiteRemoteSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): RemotePreparedQuery<T> {\n\t\treturn new RemotePreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tasync batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: { sql: string; params: any[]; method: 'run' | 'all' | 'values' | 'get' }[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = (preparedQuery as RemotePreparedQuery).getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push({ sql: builtQuery.sql, params: builtQuery.params, method: builtQuery.method });\n\t\t}\n\n\t\tconst batchResults = await (this.batchCLient as AsyncBatchRemoteCallback)(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SQLiteProxyTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Promise<T> {\n\t\tconst tx = new SQLiteProxyTransaction('async', this.dialect, this, this.schema);\n\t\tawait this.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as SqliteRemoteResult).rows;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as SqliteRemoteResult).rows![0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as SqliteRemoteResult).rows;\n\t}\n}\n\nexport class SQLiteProxyTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', SqliteRemoteResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteProxyTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SQLiteProxyTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new SQLiteProxyTransaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tawait this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class RemotePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends SQLitePreparedQuery<\n\t{ type: 'async'; run: SqliteRemoteResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteProxyPreparedQuery';\n\n\tprivate method: SQLiteExecuteMethod;\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\t/** @internal */ public customResultMapper?: (\n\t\t\trows: unknown[][],\n\t\t\tmapColumnValue?: (value: unknown) => unknown,\n\t\t) => unknown,\n\t) {\n\t\tsuper('async', executeMethod, query);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.method = executeMethod;\n\t}\n\n\toverride getQuery(): Query & { method: SQLiteExecuteMethod } {\n\t\treturn { ...this.query, method: this.method };\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): Promise<SqliteRemoteResult> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn (this.client as AsyncRemoteCallback)(this.query.sql, params, 'run') as Promise<\n\t\t\tSqliteRemoteResult\n\t\t>;\n\t}\n\n\toverride mapAllResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as SqliteRemoteResult).rows;\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn rows;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][]) as T['all'];\n\t\t}\n\n\t\treturn (rows as unknown[][]).map((row) => {\n\t\t\treturn mapResultRow(\n\t\t\t\tthis.fields!,\n\t\t\t\trow,\n\t\t\t\tthis.joinsNotNullableMap,\n\t\t\t);\n\t\t});\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { query, logger, client } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst { rows } = await (client as AsyncRemoteCallback)(query.sql, params, 'all');\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { query, logger, client } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst clientResult = await (client as AsyncRemoteCallback)(query.sql, params, 'get');\n\n\t\treturn this.mapGetResult(clientResult.rows);\n\t}\n\n\toverride mapGetResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as SqliteRemoteResult).rows;\n\t\t}\n\n\t\tconst row = rows as unknown[];\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn row;\n\t\t}\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper([rows] as unknown[][]) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(\n\t\t\tthis.fields!,\n\t\t\trow,\n\t\t\tthis.joinsNotNullableMap,\n\t\t);\n\t}\n\n\tasync values<T extends any[] = unknown[]>(placeholderValues?: Record<string, unknown>): Promise<T[]> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst clientResult = await (this.client as AsyncRemoteCallback)(this.query.sql, params, 'values');\n\t\treturn clientResult.rows as T[];\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/sqlite-proxy/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport type { BatchItem } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\nimport type { AsyncBatchRemoteCallback, AsyncRemoteCallback, RemoteCallback, SqliteRemoteResult } from './driver.ts';\n\nexport interface SQLiteRemoteSessionOptions {\n\tlogger?: Logger;\n}\n\nexport type PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteRemoteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<'async', SqliteRemoteResult, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteRemoteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate batchCLient?: AsyncBatchRemoteCallback,\n\t\toptions: SQLiteRemoteSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): RemotePreparedQuery<T> {\n\t\treturn new RemotePreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => unknown,\n\t): RemotePreparedQuery<T, true> {\n\t\treturn new RemotePreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\ttrue,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tasync batch<T extends BatchItem<'sqlite'>[] | readonly BatchItem<'sqlite'>[]>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: { sql: string; params: any[]; method: 'run' | 'all' | 'values' | 'get' }[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = (preparedQuery as RemotePreparedQuery).getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tbuiltQueries.push({ sql: builtQuery.sql, params: builtQuery.params, method: builtQuery.method });\n\t\t}\n\n\t\tconst batchResults = await (this.batchCLient as AsyncBatchRemoteCallback)(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SQLiteProxyTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Promise<T> {\n\t\tconst tx = new SQLiteProxyTransaction('async', this.dialect, this, this.relations, this.schema, undefined, true);\n\t\tawait this.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as SqliteRemoteResult).rows;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as SqliteRemoteResult).rows![0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as SqliteRemoteResult).rows;\n\t}\n}\n\nexport class SQLiteProxyTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<'async', SqliteRemoteResult, TFullSchema, TRelations, TTablesConfig, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteProxyTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: SQLiteProxyTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new SQLiteProxyTransaction(\n\t\t\t'async',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t\ttrue,\n\t\t);\n\t\tawait this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class RemotePreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends SQLitePreparedQuery<\n\t\t{ type: 'async'; run: SqliteRemoteResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteProxyPreparedQuery';\n\n\tprivate method: SQLiteExecuteMethod;\n\n\tconstructor(\n\t\tprivate client: RemoteCallback,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\t/** @internal */ public customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper('async', executeMethod, query);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.method = executeMethod;\n\t}\n\n\toverride getQuery(): Query & { method: SQLiteExecuteMethod } {\n\t\treturn { ...this.query, method: this.method };\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): Promise<SqliteRemoteResult> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn (this.client as AsyncRemoteCallback)(this.query.sql, params, 'run') as Promise<\n\t\t\tSqliteRemoteResult\n\t\t>;\n\t}\n\n\toverride mapAllResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as SqliteRemoteResult).rows;\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn rows;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn (this.customResultMapper as (rows: unknown[][]) => unknown)(\n\t\t\t\tthis.isRqbV2Query ? (rows as unknown[][]).map((r) => JSON.parse(r[0] as string)) : rows as unknown[][],\n\t\t\t) as T['all'];\n\t\t}\n\n\t\treturn (rows as unknown[][]).map((row) => {\n\t\t\treturn mapResultRow(\n\t\t\t\tthis.fields!,\n\t\t\t\trow,\n\t\t\t\tthis.joinsNotNullableMap,\n\t\t\t);\n\t\t});\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\n\t\tconst { query, logger, client } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst { rows } = await (client as AsyncRemoteCallback)(query.sql, params, 'all');\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\tasync get(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\n\t\tconst { query, logger, client } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst clientResult = await (client as AsyncRemoteCallback)(query.sql, params, 'get');\n\n\t\treturn this.mapGetResult(clientResult.rows);\n\t}\n\n\tprivate async allRqbV2(placeholderValues?: Record<string, unknown>): Promise<T['all']> {\n\t\tconst { query, logger, client } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst { rows } = await (client as AsyncRemoteCallback)(query.sql, params, 'all');\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\tprivate async getRqbV2(placeholderValues?: Record<string, unknown>): Promise<T['get']> {\n\t\tconst { query, logger, client } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst { rows } = await (client as AsyncRemoteCallback)(query.sql, params, 'get');\n\n\t\treturn this.mapGetResult(rows);\n\t}\n\n\toverride mapGetResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = (rows as SqliteRemoteResult).rows;\n\t\t}\n\n\t\tconst row = rows as unknown[] | string;\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn row;\n\t\t}\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn (this.customResultMapper as (rows: unknown[][]) => unknown)(\n\t\t\t\t[this.isRqbV2Query ? JSON.parse(row as string) : rows] as unknown[][],\n\t\t\t) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(\n\t\t\tthis.fields!,\n\t\t\trow as unknown[],\n\t\t\tthis.joinsNotNullableMap,\n\t\t);\n\t}\n\n\tasync values<T extends any[] = unknown[]>(placeholderValues?: Record<string, unknown>): Promise<T[]> {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst clientResult = await (this.client as AsyncRemoteCallback)(this.query.sql, params, 'values');\n\t\treturn clientResult.rows as T[];\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
|
package/table.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/table.ts"],"sourcesContent":["import type { Column, GetColumnData } from './column.ts';\nimport { entityKind } from './entity.ts';\nimport type { OptionalKeyOnly, RequiredKeyOnly } from './operations.ts';\nimport type { SQLWrapper } from './sql/sql.ts';\nimport { TableName } from './table.utils.ts';\nimport type { Simplify, Update } from './utils.ts';\n\nexport interface TableConfig<TColumn extends Column = Column<any>> {\n\tname: string;\n\tschema: string | undefined;\n\tcolumns: Record<string, TColumn>;\n\tdialect: string;\n}\n\nexport type UpdateTableConfig<T extends TableConfig, TUpdate extends Partial<TableConfig>> = Required<\n\tUpdate<T, TUpdate>\n>;\n\n/** @internal */\nexport const Schema = Symbol.for('drizzle:Schema');\n\n/** @internal */\nexport const Columns = Symbol.for('drizzle:Columns');\n\n/** @internal */\nexport const ExtraConfigColumns = Symbol.for('drizzle:ExtraConfigColumns');\n\n/** @internal */\nexport const OriginalName = Symbol.for('drizzle:OriginalName');\n\n/** @internal */\nexport const BaseName = Symbol.for('drizzle:BaseName');\n\n/** @internal */\nexport const IsAlias = Symbol.for('drizzle:IsAlias');\n\n/** @internal */\nexport const ExtraConfigBuilder = Symbol.for('drizzle:ExtraConfigBuilder');\n\nconst IsDrizzleTable = Symbol.for('drizzle:IsDrizzleTable');\n\nexport interface Table<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends TableConfig = TableConfig,\n> extends SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\n\nexport class Table<T extends TableConfig = TableConfig> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Table';\n\n\tdeclare readonly _: {\n\t\treadonly brand: 'Table';\n\t\treadonly config: T;\n\t\treadonly name: T['name'];\n\t\treadonly schema: T['schema'];\n\t\treadonly columns: T['columns'];\n\t\treadonly inferSelect: InferSelectModel<Table<T>>;\n\t\treadonly inferInsert: InferInsertModel<Table<T>>;\n\t};\n\n\tdeclare readonly $inferSelect: InferSelectModel<Table<T>>;\n\tdeclare readonly $inferInsert: InferInsertModel<Table<T>>;\n\n\t/** @internal */\n\tstatic readonly Symbol = {\n\t\tName: TableName as typeof TableName,\n\t\tSchema: Schema as typeof Schema,\n\t\tOriginalName: OriginalName as typeof OriginalName,\n\t\tColumns: Columns as typeof Columns,\n\t\tExtraConfigColumns: ExtraConfigColumns as typeof ExtraConfigColumns,\n\t\tBaseName: BaseName as typeof BaseName,\n\t\tIsAlias: IsAlias as typeof IsAlias,\n\t\tExtraConfigBuilder: ExtraConfigBuilder as typeof ExtraConfigBuilder,\n\t};\n\n\t/**\n\t * @internal\n\t * Can be changed if the table is aliased.\n\t */\n\t[TableName]: string;\n\n\t/**\n\t * @internal\n\t * Used to store the original name of the table, before any aliasing.\n\t */\n\t[OriginalName]: string;\n\n\t/** @internal */\n\t[Schema]: string | undefined;\n\n\t/** @internal */\n\t[Columns]!: T['columns'];\n\n\t/** @internal */\n\t[ExtraConfigColumns]!: Record<string, unknown>;\n\n\t/**\n\t * @internal\n\t * Used to store the table name before the transformation via the `tableCreator` functions.\n\t */\n\t[BaseName]: string;\n\n\t/** @internal */\n\t[IsAlias] = false;\n\n\t/** @internal */\n\t[IsDrizzleTable] = true;\n\n\t/** @internal */\n\t[ExtraConfigBuilder]: ((self: any) => Record<string, unknown> | unknown[]) | undefined = undefined;\n\n\tconstructor(name: string, schema: string | undefined, baseName: string) {\n\t\tthis[TableName] = this[OriginalName] = name;\n\t\tthis[Schema] = schema;\n\t\tthis[BaseName] = baseName;\n\t}\n}\n\nexport function isTable(table: unknown): table is Table {\n\treturn typeof table === 'object' && table !== null && IsDrizzleTable in table;\n}\n\n/**\n * Any table with a specified boundary.\n *\n * @example\n\t```ts\n\t// Any table with a specific name\n\ttype AnyUsersTable = AnyTable<{ name: 'users' }>;\n\t```\n *\n * To describe any table with any config, simply use `Table` without any type arguments, like this:\n *\n\t```ts\n\tfunction needsTable(table: Table) {\n\t\t...\n\t}\n\t```\n */\nexport type AnyTable<TPartial extends Partial<TableConfig>> = Table<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport function getTableName<T extends Table>(table: T): T['_']['name'] {\n\treturn table[TableName];\n}\n\nexport function getTableUniqueName
|
|
1
|
+
{"version":3,"sources":["../src/table.ts"],"sourcesContent":["import type { Column, GetColumnData } from './column.ts';\nimport { entityKind } from './entity.ts';\nimport type { OptionalKeyOnly, RequiredKeyOnly } from './operations.ts';\nimport type { SQLWrapper, View } from './sql/sql.ts';\nimport { TableName } from './table.utils.ts';\nimport type { Simplify, Update } from './utils.ts';\n\nexport interface TableConfig<TColumn extends Column = Column<any>> {\n\tname: string;\n\tschema: string | undefined;\n\tcolumns: Record<string, TColumn>;\n\tdialect: string;\n}\n\nexport type UpdateTableConfig<T extends TableConfig, TUpdate extends Partial<TableConfig>> = Required<\n\tUpdate<T, TUpdate>\n>;\n\n/** @internal */\nexport const Schema = Symbol.for('drizzle:Schema');\n\n/** @internal */\nexport const Columns = Symbol.for('drizzle:Columns');\n\n/** @internal */\nexport const ExtraConfigColumns = Symbol.for('drizzle:ExtraConfigColumns');\n\n/** @internal */\nexport const OriginalName = Symbol.for('drizzle:OriginalName');\n\n/** @internal */\nexport const BaseName = Symbol.for('drizzle:BaseName');\n\n/** @internal */\nexport const IsAlias = Symbol.for('drizzle:IsAlias');\n\n/** @internal */\nexport const ExtraConfigBuilder = Symbol.for('drizzle:ExtraConfigBuilder');\n\nconst IsDrizzleTable = Symbol.for('drizzle:IsDrizzleTable');\n\nexport interface Table<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends TableConfig = TableConfig,\n> extends SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\n\nexport class Table<T extends TableConfig = TableConfig> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Table';\n\n\tdeclare readonly _: {\n\t\treadonly brand: 'Table';\n\t\treadonly config: T;\n\t\treadonly name: T['name'];\n\t\treadonly schema: T['schema'];\n\t\treadonly columns: T['columns'];\n\t\treadonly inferSelect: InferSelectModel<Table<T>>;\n\t\treadonly inferInsert: InferInsertModel<Table<T>>;\n\t};\n\n\tdeclare readonly $inferSelect: InferSelectModel<Table<T>>;\n\tdeclare readonly $inferInsert: InferInsertModel<Table<T>>;\n\n\t/** @internal */\n\tstatic readonly Symbol = {\n\t\tName: TableName as typeof TableName,\n\t\tSchema: Schema as typeof Schema,\n\t\tOriginalName: OriginalName as typeof OriginalName,\n\t\tColumns: Columns as typeof Columns,\n\t\tExtraConfigColumns: ExtraConfigColumns as typeof ExtraConfigColumns,\n\t\tBaseName: BaseName as typeof BaseName,\n\t\tIsAlias: IsAlias as typeof IsAlias,\n\t\tExtraConfigBuilder: ExtraConfigBuilder as typeof ExtraConfigBuilder,\n\t};\n\n\t/**\n\t * @internal\n\t * Can be changed if the table is aliased.\n\t */\n\t[TableName]: string;\n\n\t/**\n\t * @internal\n\t * Used to store the original name of the table, before any aliasing.\n\t */\n\t[OriginalName]: string;\n\n\t/** @internal */\n\t[Schema]: string | undefined;\n\n\t/** @internal */\n\t[Columns]!: T['columns'];\n\n\t/** @internal */\n\t[ExtraConfigColumns]!: Record<string, unknown>;\n\n\t/**\n\t * @internal\n\t * Used to store the table name before the transformation via the `tableCreator` functions.\n\t */\n\t[BaseName]: string;\n\n\t/** @internal */\n\t[IsAlias] = false;\n\n\t/** @internal */\n\t[IsDrizzleTable] = true;\n\n\t/** @internal */\n\t[ExtraConfigBuilder]: ((self: any) => Record<string, unknown> | unknown[]) | undefined = undefined;\n\n\tconstructor(name: string, schema: string | undefined, baseName: string) {\n\t\tthis[TableName] = this[OriginalName] = name;\n\t\tthis[Schema] = schema;\n\t\tthis[BaseName] = baseName;\n\t}\n}\n\nexport function isTable(table: unknown): table is Table {\n\treturn typeof table === 'object' && table !== null && IsDrizzleTable in table;\n}\n\n/**\n * Any table with a specified boundary.\n *\n * @example\n\t```ts\n\t// Any table with a specific name\n\ttype AnyUsersTable = AnyTable<{ name: 'users' }>;\n\t```\n *\n * To describe any table with any config, simply use `Table` without any type arguments, like this:\n *\n\t```ts\n\tfunction needsTable(table: Table) {\n\t\t...\n\t}\n\t```\n */\nexport type AnyTable<TPartial extends Partial<TableConfig>> = Table<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport function getTableName<T extends Table>(table: T): T['_']['name'] {\n\treturn table[TableName];\n}\n\nexport function getTableUniqueName<\n\tT extends Table | View,\n\tTResult extends string = T extends Table ? T['_']['schema'] extends undefined ? `public.${T['_']['name']}`\n\t\t: `${T['_']['schema']}.${T['_']['name']}`\n\t\t// Views don't have type-level schema names, to be added\n\t\t: `${string}.${T['_']['name']}`,\n>(\n\ttable: T,\n): TResult {\n\treturn `${table[Schema] ?? 'public'}.${table[TableName]}` as TResult;\n}\n\nexport type MapColumnName<TName extends string, TColumn extends Column, TDBColumNames extends boolean> =\n\tTDBColumNames extends true ? TColumn['_']['name']\n\t\t: TName;\n\nexport type InferModelFromColumns<\n\tTColumns extends Record<string, Column>,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean; override?: boolean } = { dbColumnNames: false; override: false },\n> = Simplify<\n\tTInferMode extends 'insert' ?\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as RequiredKeyOnly<\n\t\t\t\t\t\tMapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]: GetColumnData<TColumns[Key], 'query'>;\n\t\t\t}\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as OptionalKeyOnly<\n\t\t\t\t\t\tMapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,\n\t\t\t\t\t\tTColumns[Key],\n\t\t\t\t\t\tTConfig['override']\n\t\t\t\t\t>\n\t\t\t\t]?: GetColumnData<TColumns[Key], 'query'> | undefined;\n\t\t\t}\n\t\t: {\n\t\t\t[\n\t\t\t\tKey in keyof TColumns & string as MapColumnName<\n\t\t\t\t\tKey,\n\t\t\t\t\tTColumns[Key],\n\t\t\t\t\tTConfig['dbColumnNames']\n\t\t\t\t>\n\t\t\t]: GetColumnData<TColumns[Key], 'query'>;\n\t\t}\n>;\n\n/** @deprecated Use one of the alternatives: {@link InferSelectModel} / {@link InferInsertModel}, or `table.$inferSelect` / `table.$inferInsert`\n */\nexport type InferModel<\n\tTTable extends Table,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], TInferMode, TConfig>;\n\nexport type InferSelectModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns<TTable['_']['columns'], 'select', TConfig>;\n\nexport type InferInsertModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean; override?: boolean } = { dbColumnNames: false; override: false },\n> = InferModelFromColumns<TTable['_']['columns'], 'insert', TConfig>;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAG3B,yBAA0B;AAenB,MAAM,SAAS,OAAO,IAAI,gBAAgB;AAG1C,MAAM,UAAU,OAAO,IAAI,iBAAiB;AAG5C,MAAM,qBAAqB,OAAO,IAAI,4BAA4B;AAGlE,MAAM,eAAe,OAAO,IAAI,sBAAsB;AAGtD,MAAM,WAAW,OAAO,IAAI,kBAAkB;AAG9C,MAAM,UAAU,OAAO,IAAI,iBAAiB;AAG5C,MAAM,qBAAqB,OAAO,IAAI,4BAA4B;AAEzE,MAAM,iBAAiB,OAAO,IAAI,wBAAwB;AASnD,MAAM,MAAiE;AAAA,EAC7E,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAgBvC,OAAgB,SAAS;AAAA,IACxB,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,CAAC,4BAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMV,CAAC,YAAY;AAAA;AAAA,EAGb,CAAC,MAAM;AAAA;AAAA,EAGP,CAAC,OAAO;AAAA;AAAA,EAGR,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnB,CAAC,QAAQ;AAAA;AAAA,EAGT,CAAC,OAAO,IAAI;AAAA;AAAA,EAGZ,CAAC,cAAc,IAAI;AAAA;AAAA,EAGnB,CAAC,kBAAkB,IAAsE;AAAA,EAEzF,YAAY,MAAc,QAA4B,UAAkB;AACvE,SAAK,4BAAS,IAAI,KAAK,YAAY,IAAI;AACvC,SAAK,MAAM,IAAI;AACf,SAAK,QAAQ,IAAI;AAAA,EAClB;AACD;AAEO,SAAS,QAAQ,OAAgC;AACvD,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,kBAAkB;AACzE;AAqBO,SAAS,aAA8B,OAA0B;AACvE,SAAO,MAAM,4BAAS;AACvB;AAEO,SAAS,mBAOf,OACU;AACV,SAAO,GAAG,MAAM,MAAM,KAAK,QAAQ,IAAI,MAAM,4BAAS,CAAC;AACxD;","names":[]}
|
package/table.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Column, GetColumnData } from "./column.cjs";
|
|
2
2
|
import { entityKind } from "./entity.cjs";
|
|
3
3
|
import type { OptionalKeyOnly, RequiredKeyOnly } from "./operations.cjs";
|
|
4
|
-
import type { SQLWrapper } from "./sql/sql.cjs";
|
|
4
|
+
import type { SQLWrapper, View } from "./sql/sql.cjs";
|
|
5
5
|
import type { Simplify, Update } from "./utils.cjs";
|
|
6
6
|
export interface TableConfig<TColumn extends Column = Column<any>> {
|
|
7
7
|
name: string;
|
|
@@ -47,7 +47,7 @@ export declare function isTable(table: unknown): table is Table;
|
|
|
47
47
|
*/
|
|
48
48
|
export type AnyTable<TPartial extends Partial<TableConfig>> = Table<UpdateTableConfig<TableConfig, TPartial>>;
|
|
49
49
|
export declare function getTableName<T extends Table>(table: T): T['_']['name'];
|
|
50
|
-
export declare function getTableUniqueName<T extends Table
|
|
50
|
+
export declare function getTableUniqueName<T extends Table | View, TResult extends string = T extends Table ? T['_']['schema'] extends undefined ? `public.${T['_']['name']}` : `${T['_']['schema']}.${T['_']['name']}` : `${string}.${T['_']['name']}`>(table: T): TResult;
|
|
51
51
|
export type MapColumnName<TName extends string, TColumn extends Column, TDBColumNames extends boolean> = TDBColumNames extends true ? TColumn['_']['name'] : TName;
|
|
52
52
|
export type InferModelFromColumns<TColumns extends Record<string, Column>, TInferMode extends 'select' | 'insert' = 'select', TConfig extends {
|
|
53
53
|
dbColumnNames: boolean;
|
package/table.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Column, GetColumnData } from "./column.js";
|
|
2
2
|
import { entityKind } from "./entity.js";
|
|
3
3
|
import type { OptionalKeyOnly, RequiredKeyOnly } from "./operations.js";
|
|
4
|
-
import type { SQLWrapper } from "./sql/sql.js";
|
|
4
|
+
import type { SQLWrapper, View } from "./sql/sql.js";
|
|
5
5
|
import type { Simplify, Update } from "./utils.js";
|
|
6
6
|
export interface TableConfig<TColumn extends Column = Column<any>> {
|
|
7
7
|
name: string;
|
|
@@ -47,7 +47,7 @@ export declare function isTable(table: unknown): table is Table;
|
|
|
47
47
|
*/
|
|
48
48
|
export type AnyTable<TPartial extends Partial<TableConfig>> = Table<UpdateTableConfig<TableConfig, TPartial>>;
|
|
49
49
|
export declare function getTableName<T extends Table>(table: T): T['_']['name'];
|
|
50
|
-
export declare function getTableUniqueName<T extends Table
|
|
50
|
+
export declare function getTableUniqueName<T extends Table | View, TResult extends string = T extends Table ? T['_']['schema'] extends undefined ? `public.${T['_']['name']}` : `${T['_']['schema']}.${T['_']['name']}` : `${string}.${T['_']['name']}`>(table: T): TResult;
|
|
51
51
|
export type MapColumnName<TName extends string, TColumn extends Column, TDBColumNames extends boolean> = TDBColumNames extends true ? TColumn['_']['name'] : TName;
|
|
52
52
|
export type InferModelFromColumns<TColumns extends Record<string, Column>, TInferMode extends 'select' | 'insert' = 'select', TConfig extends {
|
|
53
53
|
dbColumnNames: boolean;
|