drizzle-orm 0.43.1-26a0497 → 0.43.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/aws-data-api/pg/driver.cjs +1 -5
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.d.cts +0 -1
- package/aws-data-api/pg/driver.d.ts +0 -1
- package/aws-data-api/pg/driver.js +1 -5
- package/aws-data-api/pg/driver.js.map +1 -1
- package/aws-data-api/pg/session.cjs +4 -15
- package/aws-data-api/pg/session.cjs.map +1 -1
- package/aws-data-api/pg/session.d.cts +2 -13
- package/aws-data-api/pg/session.d.ts +2 -13
- package/aws-data-api/pg/session.js +4 -15
- package/aws-data-api/pg/session.js.map +1 -1
- package/better-sqlite3/driver.cjs.map +1 -1
- package/better-sqlite3/driver.js.map +1 -1
- package/better-sqlite3/session.cjs +3 -9
- package/better-sqlite3/session.cjs.map +1 -1
- package/better-sqlite3/session.d.cts +2 -12
- package/better-sqlite3/session.d.ts +2 -12
- package/better-sqlite3/session.js +3 -9
- package/better-sqlite3/session.js.map +1 -1
- package/bun-sql/driver.cjs +1 -5
- package/bun-sql/driver.cjs.map +1 -1
- package/bun-sql/driver.js +1 -5
- package/bun-sql/driver.js.map +1 -1
- package/bun-sql/session.cjs +9 -21
- package/bun-sql/session.cjs.map +1 -1
- package/bun-sql/session.d.cts +2 -12
- package/bun-sql/session.d.ts +2 -12
- package/bun-sql/session.js +9 -21
- package/bun-sql/session.js.map +1 -1
- package/d1/driver.cjs +1 -5
- package/d1/driver.cjs.map +1 -1
- package/d1/driver.js +1 -5
- package/d1/driver.js.map +1 -1
- package/d1/session.cjs +9 -23
- package/d1/session.cjs.map +1 -1
- package/d1/session.d.cts +2 -12
- package/d1/session.d.ts +2 -12
- package/d1/session.js +9 -23
- package/d1/session.js.map +1 -1
- package/durable-sqlite/session.cjs +1 -1
- package/durable-sqlite/session.cjs.map +1 -1
- package/durable-sqlite/session.js +1 -1
- package/durable-sqlite/session.js.map +1 -1
- package/gel/driver.cjs +2 -9
- package/gel/driver.cjs.map +1 -1
- package/gel/driver.d.cts +0 -2
- package/gel/driver.d.ts +0 -2
- package/gel/driver.js +2 -9
- package/gel/driver.js.map +1 -1
- package/gel/session.cjs +10 -25
- package/gel/session.cjs.map +1 -1
- package/gel/session.d.cts +2 -12
- package/gel/session.d.ts +2 -12
- package/gel/session.js +10 -25
- package/gel/session.js.map +1 -1
- package/gel-core/db.cjs +0 -1
- package/gel-core/db.cjs.map +1 -1
- package/gel-core/db.d.cts +0 -4
- package/gel-core/db.d.ts +0 -4
- package/gel-core/db.js +0 -1
- package/gel-core/db.js.map +1 -1
- package/gel-core/query-builders/delete.cjs +1 -5
- package/gel-core/query-builders/delete.cjs.map +1 -1
- package/gel-core/query-builders/delete.js +1 -5
- package/gel-core/query-builders/delete.js.map +1 -1
- package/gel-core/query-builders/insert.cjs +1 -5
- package/gel-core/query-builders/insert.cjs.map +1 -1
- package/gel-core/query-builders/insert.js +1 -5
- package/gel-core/query-builders/insert.js.map +1 -1
- package/gel-core/query-builders/select.cjs +4 -29
- package/gel-core/query-builders/select.cjs.map +1 -1
- package/gel-core/query-builders/select.d.cts +0 -9
- package/gel-core/query-builders/select.d.ts +0 -9
- package/gel-core/query-builders/select.js +4 -29
- package/gel-core/query-builders/select.js.map +1 -1
- package/gel-core/query-builders/update.cjs +1 -5
- package/gel-core/query-builders/update.cjs.map +1 -1
- package/gel-core/query-builders/update.js +1 -5
- package/gel-core/query-builders/update.js.map +1 -1
- package/gel-core/session.cjs +1 -52
- package/gel-core/session.cjs.map +1 -1
- package/gel-core/session.d.cts +3 -14
- package/gel-core/session.d.ts +3 -14
- package/gel-core/session.js +2 -53
- package/gel-core/session.js.map +1 -1
- package/gel-core/utils.cjs +0 -16
- package/gel-core/utils.cjs.map +1 -1
- package/gel-core/utils.d.cts +4 -8
- package/gel-core/utils.d.ts +4 -8
- package/gel-core/utils.js +0 -15
- package/gel-core/utils.js.map +1 -1
- package/libsql/driver-core.cjs +1 -5
- package/libsql/driver-core.cjs.map +1 -1
- package/libsql/driver-core.js +1 -5
- package/libsql/driver-core.js.map +1 -1
- package/libsql/session.cjs +13 -27
- package/libsql/session.cjs.map +1 -1
- package/libsql/session.d.cts +2 -12
- package/libsql/session.d.ts +2 -12
- package/libsql/session.js +13 -27
- package/libsql/session.js.map +1 -1
- package/mysql-core/db.cjs +0 -1
- package/mysql-core/db.cjs.map +1 -1
- package/mysql-core/db.d.cts +0 -4
- package/mysql-core/db.d.ts +0 -4
- package/mysql-core/db.js +0 -1
- package/mysql-core/db.js.map +1 -1
- package/mysql-core/query-builders/delete.cjs +1 -9
- package/mysql-core/query-builders/delete.cjs.map +1 -1
- package/mysql-core/query-builders/delete.js +1 -9
- package/mysql-core/query-builders/delete.js.map +1 -1
- package/mysql-core/query-builders/insert.cjs +1 -8
- package/mysql-core/query-builders/insert.cjs.map +1 -1
- package/mysql-core/query-builders/insert.d.cts +0 -2
- package/mysql-core/query-builders/insert.d.ts +0 -2
- package/mysql-core/query-builders/insert.js +1 -8
- package/mysql-core/query-builders/insert.js.map +1 -1
- package/mysql-core/query-builders/select.cjs +3 -27
- package/mysql-core/query-builders/select.cjs.map +1 -1
- package/mysql-core/query-builders/select.d.cts +0 -9
- package/mysql-core/query-builders/select.d.ts +0 -9
- package/mysql-core/query-builders/select.js +4 -28
- package/mysql-core/query-builders/select.js.map +1 -1
- package/mysql-core/query-builders/update.cjs +1 -11
- package/mysql-core/query-builders/update.cjs.map +1 -1
- package/mysql-core/query-builders/update.d.cts +0 -2
- package/mysql-core/query-builders/update.d.ts +0 -2
- package/mysql-core/query-builders/update.js +1 -11
- package/mysql-core/query-builders/update.js.map +1 -1
- package/mysql-core/session.cjs +0 -53
- package/mysql-core/session.cjs.map +1 -1
- package/mysql-core/session.d.cts +2 -15
- package/mysql-core/session.d.ts +2 -15
- package/mysql-core/session.js +1 -54
- package/mysql-core/session.js.map +1 -1
- package/mysql-core/utils.cjs +0 -16
- package/mysql-core/utils.cjs.map +1 -1
- package/mysql-core/utils.d.cts +2 -6
- package/mysql-core/utils.d.ts +2 -6
- package/mysql-core/utils.js +0 -15
- package/mysql-core/utils.js.map +1 -1
- package/mysql-proxy/session.cjs +5 -15
- package/mysql-proxy/session.cjs.map +1 -1
- package/mysql-proxy/session.d.cts +2 -12
- package/mysql-proxy/session.d.ts +2 -12
- package/mysql-proxy/session.js +5 -15
- package/mysql-proxy/session.js.map +1 -1
- package/mysql2/driver.cjs +2 -10
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.d.cts +0 -2
- package/mysql2/driver.d.ts +0 -2
- package/mysql2/driver.js +2 -10
- package/mysql2/driver.js.map +1 -1
- package/mysql2/session.cjs +5 -15
- package/mysql2/session.cjs.map +1 -1
- package/mysql2/session.d.cts +2 -12
- package/mysql2/session.d.ts +2 -12
- package/mysql2/session.js +5 -15
- package/mysql2/session.js.map +1 -1
- package/neon-http/driver.cjs +2 -9
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.d.cts +0 -2
- package/neon-http/driver.d.ts +0 -2
- package/neon-http/driver.js +2 -9
- package/neon-http/driver.js.map +1 -1
- package/neon-http/session.cjs +15 -25
- package/neon-http/session.cjs.map +1 -1
- package/neon-http/session.d.cts +2 -12
- package/neon-http/session.d.ts +2 -12
- package/neon-http/session.js +15 -25
- package/neon-http/session.js.map +1 -1
- package/neon-serverless/driver.cjs +2 -9
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.d.cts +0 -2
- package/neon-serverless/driver.d.ts +0 -2
- package/neon-serverless/driver.js +2 -9
- package/neon-serverless/driver.js.map +1 -1
- package/neon-serverless/session.cjs +7 -21
- package/neon-serverless/session.cjs.map +1 -1
- package/neon-serverless/session.d.cts +2 -12
- package/neon-serverless/session.d.ts +2 -12
- package/neon-serverless/session.js +7 -21
- package/neon-serverless/session.js.map +1 -1
- package/node-postgres/driver.cjs +2 -9
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.d.cts +0 -2
- package/node-postgres/driver.d.ts +0 -2
- package/node-postgres/driver.js +2 -9
- package/node-postgres/driver.js.map +1 -1
- package/node-postgres/session.cjs +6 -19
- package/node-postgres/session.cjs.map +1 -1
- package/node-postgres/session.d.cts +2 -13
- package/node-postgres/session.d.ts +2 -13
- package/node-postgres/session.js +6 -19
- package/node-postgres/session.js.map +1 -1
- package/op-sqlite/driver.cjs +1 -5
- package/op-sqlite/driver.cjs.map +1 -1
- package/op-sqlite/driver.js +1 -5
- package/op-sqlite/driver.js.map +1 -1
- package/op-sqlite/session.cjs +9 -23
- package/op-sqlite/session.cjs.map +1 -1
- package/op-sqlite/session.d.cts +2 -12
- package/op-sqlite/session.d.ts +2 -12
- package/op-sqlite/session.js +9 -23
- package/op-sqlite/session.js.map +1 -1
- package/package.json +4 -69
- package/pg-core/db.cjs +0 -1
- package/pg-core/db.cjs.map +1 -1
- package/pg-core/db.d.cts +0 -4
- package/pg-core/db.d.ts +0 -4
- package/pg-core/db.js +0 -1
- package/pg-core/db.js.map +1 -1
- package/pg-core/query-builders/delete.cjs +1 -6
- package/pg-core/query-builders/delete.cjs.map +1 -1
- package/pg-core/query-builders/delete.d.cts +1 -3
- package/pg-core/query-builders/delete.d.ts +1 -3
- package/pg-core/query-builders/delete.js +1 -6
- package/pg-core/query-builders/delete.js.map +1 -1
- package/pg-core/query-builders/insert.cjs +1 -6
- package/pg-core/query-builders/insert.cjs.map +1 -1
- package/pg-core/query-builders/insert.d.cts +0 -2
- package/pg-core/query-builders/insert.d.ts +0 -2
- package/pg-core/query-builders/insert.js +1 -6
- package/pg-core/query-builders/insert.js.map +1 -1
- package/pg-core/query-builders/select.cjs +5 -31
- package/pg-core/query-builders/select.cjs.map +1 -1
- package/pg-core/query-builders/select.d.cts +6 -15
- package/pg-core/query-builders/select.d.ts +6 -15
- package/pg-core/query-builders/select.js +5 -31
- package/pg-core/query-builders/select.js.map +1 -1
- package/pg-core/query-builders/update.cjs +1 -6
- package/pg-core/query-builders/update.cjs.map +1 -1
- package/pg-core/query-builders/update.d.cts +2 -4
- package/pg-core/query-builders/update.d.ts +2 -4
- package/pg-core/query-builders/update.js +1 -6
- package/pg-core/query-builders/update.js.map +1 -1
- package/pg-core/session.cjs +1 -52
- package/pg-core/session.cjs.map +1 -1
- package/pg-core/session.d.cts +3 -14
- package/pg-core/session.d.ts +3 -14
- package/pg-core/session.js +2 -53
- package/pg-core/session.js.map +1 -1
- package/pg-core/utils.cjs +0 -16
- package/pg-core/utils.cjs.map +1 -1
- package/pg-core/utils.d.cts +4 -8
- package/pg-core/utils.d.ts +4 -8
- package/pg-core/utils.js +1 -16
- package/pg-core/utils.js.map +1 -1
- package/pg-proxy/driver.cjs +2 -7
- package/pg-proxy/driver.cjs.map +1 -1
- package/pg-proxy/driver.js +2 -7
- package/pg-proxy/driver.js.map +1 -1
- package/pg-proxy/session.cjs +5 -15
- package/pg-proxy/session.cjs.map +1 -1
- package/pg-proxy/session.d.cts +2 -12
- package/pg-proxy/session.d.ts +2 -12
- package/pg-proxy/session.js +5 -15
- package/pg-proxy/session.js.map +1 -1
- package/pglite/driver.cjs +2 -9
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.d.cts +0 -2
- package/pglite/driver.d.ts +0 -2
- package/pglite/driver.js +2 -9
- package/pglite/driver.js.map +1 -1
- package/pglite/session.cjs +7 -19
- package/pglite/session.cjs.map +1 -1
- package/pglite/session.d.cts +2 -12
- package/pglite/session.d.ts +2 -12
- package/pglite/session.js +7 -19
- package/pglite/session.js.map +1 -1
- package/planetscale-serverless/driver.cjs +1 -5
- package/planetscale-serverless/driver.cjs.map +1 -1
- package/planetscale-serverless/driver.d.cts +0 -1
- package/planetscale-serverless/driver.d.ts +0 -1
- package/planetscale-serverless/driver.js +1 -5
- package/planetscale-serverless/driver.js.map +1 -1
- package/planetscale-serverless/session.cjs +5 -15
- package/planetscale-serverless/session.cjs.map +1 -1
- package/planetscale-serverless/session.d.cts +2 -12
- package/planetscale-serverless/session.d.ts +2 -12
- package/planetscale-serverless/session.js +5 -15
- package/planetscale-serverless/session.js.map +1 -1
- package/postgres-js/driver.cjs +1 -5
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.js +1 -5
- package/postgres-js/driver.js.map +1 -1
- package/postgres-js/session.cjs +6 -18
- package/postgres-js/session.cjs.map +1 -1
- package/postgres-js/session.d.cts +2 -12
- package/postgres-js/session.d.ts +2 -12
- package/postgres-js/session.js +6 -18
- package/postgres-js/session.js.map +1 -1
- package/prisma/mysql/session.cjs +1 -1
- package/prisma/mysql/session.cjs.map +1 -1
- package/prisma/mysql/session.js +1 -1
- package/prisma/mysql/session.js.map +1 -1
- package/prisma/pg/session.cjs +1 -1
- package/prisma/pg/session.cjs.map +1 -1
- package/prisma/pg/session.js +1 -1
- package/prisma/pg/session.js.map +1 -1
- package/query-builders/query-builder.cjs.map +1 -1
- package/query-builders/query-builder.d.cts +1 -2
- package/query-builders/query-builder.d.ts +1 -2
- package/query-builders/query-builder.js.map +1 -1
- package/singlestore/driver.cjs +2 -12
- package/singlestore/driver.cjs.map +1 -1
- package/singlestore/driver.d.cts +0 -2
- package/singlestore/driver.d.ts +0 -2
- package/singlestore/driver.js +2 -12
- package/singlestore/driver.js.map +1 -1
- package/singlestore/session.cjs +5 -15
- package/singlestore/session.cjs.map +1 -1
- package/singlestore/session.d.cts +2 -12
- package/singlestore/session.d.ts +2 -12
- package/singlestore/session.js +5 -15
- package/singlestore/session.js.map +1 -1
- package/singlestore-core/db.cjs +0 -1
- package/singlestore-core/db.cjs.map +1 -1
- package/singlestore-core/db.d.cts +0 -4
- package/singlestore-core/db.d.ts +0 -4
- package/singlestore-core/db.js +0 -1
- package/singlestore-core/db.js.map +1 -1
- package/singlestore-core/query-builders/delete.cjs +1 -9
- package/singlestore-core/query-builders/delete.cjs.map +1 -1
- package/singlestore-core/query-builders/delete.js +1 -9
- package/singlestore-core/query-builders/delete.js.map +1 -1
- package/singlestore-core/query-builders/insert.cjs +1 -6
- package/singlestore-core/query-builders/insert.cjs.map +1 -1
- package/singlestore-core/query-builders/insert.js +1 -6
- package/singlestore-core/query-builders/insert.js.map +1 -1
- package/singlestore-core/query-builders/select.cjs +3 -28
- package/singlestore-core/query-builders/select.cjs.map +1 -1
- package/singlestore-core/query-builders/select.d.cts +0 -9
- package/singlestore-core/query-builders/select.d.ts +0 -9
- package/singlestore-core/query-builders/select.js +3 -28
- package/singlestore-core/query-builders/select.js.map +1 -1
- package/singlestore-core/query-builders/update.cjs +1 -9
- package/singlestore-core/query-builders/update.cjs.map +1 -1
- package/singlestore-core/query-builders/update.js +1 -9
- package/singlestore-core/query-builders/update.js.map +1 -1
- package/singlestore-core/session.cjs +0 -53
- package/singlestore-core/session.cjs.map +1 -1
- package/singlestore-core/session.d.cts +2 -14
- package/singlestore-core/session.d.ts +2 -14
- package/singlestore-core/session.js +1 -54
- package/singlestore-core/session.js.map +1 -1
- package/singlestore-core/utils.cjs +0 -16
- package/singlestore-core/utils.cjs.map +1 -1
- package/singlestore-core/utils.d.cts +0 -3
- package/singlestore-core/utils.d.ts +0 -3
- package/singlestore-core/utils.js +0 -15
- package/singlestore-core/utils.js.map +1 -1
- package/sql/sql.cjs +0 -10
- package/sql/sql.cjs.map +1 -1
- package/sql/sql.js +0 -10
- package/sql/sql.js.map +1 -1
- package/sqlite-core/db.cjs +0 -1
- package/sqlite-core/db.cjs.map +1 -1
- package/sqlite-core/db.d.cts +0 -4
- package/sqlite-core/db.d.ts +0 -4
- package/sqlite-core/db.js +0 -1
- package/sqlite-core/db.js.map +1 -1
- package/sqlite-core/query-builders/delete.cjs +1 -7
- package/sqlite-core/query-builders/delete.cjs.map +1 -1
- package/sqlite-core/query-builders/delete.js +1 -7
- package/sqlite-core/query-builders/delete.js.map +1 -1
- package/sqlite-core/query-builders/insert.cjs +1 -7
- package/sqlite-core/query-builders/insert.cjs.map +1 -1
- package/sqlite-core/query-builders/insert.js +1 -7
- package/sqlite-core/query-builders/insert.js.map +1 -1
- package/sqlite-core/query-builders/select.cjs +3 -31
- package/sqlite-core/query-builders/select.cjs.map +1 -1
- package/sqlite-core/query-builders/select.d.cts +0 -9
- package/sqlite-core/query-builders/select.d.ts +0 -9
- package/sqlite-core/query-builders/select.js +3 -31
- package/sqlite-core/query-builders/select.js.map +1 -1
- package/sqlite-core/query-builders/update.cjs +1 -7
- package/sqlite-core/query-builders/update.cjs.map +1 -1
- package/sqlite-core/query-builders/update.js +1 -7
- package/sqlite-core/query-builders/update.js.map +1 -1
- package/sqlite-core/session.cjs +3 -62
- package/sqlite-core/session.cjs.map +1 -1
- package/sqlite-core/session.d.cts +4 -18
- package/sqlite-core/session.d.ts +4 -18
- package/sqlite-core/session.js +4 -63
- package/sqlite-core/session.js.map +1 -1
- package/sqlite-core/utils.cjs +0 -16
- package/sqlite-core/utils.cjs.map +1 -1
- package/sqlite-core/utils.d.cts +2 -6
- package/sqlite-core/utils.d.ts +2 -6
- package/sqlite-core/utils.js +0 -15
- package/sqlite-core/utils.js.map +1 -1
- package/sqlite-proxy/driver.cjs +2 -9
- package/sqlite-proxy/driver.cjs.map +1 -1
- package/sqlite-proxy/driver.js +2 -9
- package/sqlite-proxy/driver.js.map +1 -1
- package/sqlite-proxy/session.cjs +8 -22
- package/sqlite-proxy/session.cjs.map +1 -1
- package/sqlite-proxy/session.d.cts +2 -12
- package/sqlite-proxy/session.d.ts +2 -12
- package/sqlite-proxy/session.js +8 -22
- package/sqlite-proxy/session.js.map +1 -1
- package/subquery.cjs +3 -4
- package/subquery.cjs.map +1 -1
- package/subquery.d.cts +1 -2
- package/subquery.d.ts +1 -2
- package/subquery.js +3 -4
- package/subquery.js.map +1 -1
- package/tidb-serverless/driver.cjs +1 -5
- package/tidb-serverless/driver.cjs.map +1 -1
- package/tidb-serverless/driver.d.cts +0 -1
- package/tidb-serverless/driver.d.ts +0 -1
- package/tidb-serverless/driver.js +1 -5
- package/tidb-serverless/driver.js.map +1 -1
- package/tidb-serverless/session.cjs +5 -15
- package/tidb-serverless/session.cjs.map +1 -1
- package/tidb-serverless/session.d.cts +2 -12
- package/tidb-serverless/session.d.ts +2 -12
- package/tidb-serverless/session.js +5 -15
- package/tidb-serverless/session.js.map +1 -1
- package/utils.cjs +0 -22
- package/utils.cjs.map +1 -1
- package/utils.d.cts +0 -3
- package/utils.d.ts +0 -3
- package/utils.js +0 -11
- package/utils.js.map +1 -1
- package/vercel-postgres/driver.cjs +2 -9
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.d.cts +0 -2
- package/vercel-postgres/driver.d.ts +0 -2
- package/vercel-postgres/driver.js +2 -9
- package/vercel-postgres/driver.js.map +1 -1
- package/vercel-postgres/session.cjs +7 -21
- package/vercel-postgres/session.cjs.map +1 -1
- package/vercel-postgres/session.d.cts +2 -12
- package/vercel-postgres/session.d.ts +2 -12
- package/vercel-postgres/session.js +7 -21
- package/vercel-postgres/session.js.map +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/xata-http/driver.cjs +2 -7
- package/xata-http/driver.cjs.map +1 -1
- package/xata-http/driver.d.cts +0 -2
- package/xata-http/driver.d.ts +0 -2
- package/xata-http/driver.js +2 -7
- package/xata-http/driver.js.map +1 -1
- package/xata-http/session.cjs +7 -21
- package/xata-http/session.cjs.map +1 -1
- package/xata-http/session.d.cts +2 -12
- package/xata-http/session.d.ts +2 -12
- package/xata-http/session.js +7 -21
- package/xata-http/session.js.map +1 -1
- package/cache/core/cache.cjs +0 -47
- package/cache/core/cache.cjs.map +0 -1
- package/cache/core/cache.d.cts +0 -35
- package/cache/core/cache.d.ts +0 -35
- package/cache/core/cache.js +0 -22
- package/cache/core/cache.js.map +0 -1
- package/cache/core/index.cjs +0 -23
- package/cache/core/index.cjs.map +0 -1
- package/cache/core/index.d.cts +0 -1
- package/cache/core/index.d.ts +0 -1
- package/cache/core/index.js +0 -2
- package/cache/core/index.js.map +0 -1
- package/cache/core/types.cjs +0 -17
- package/cache/core/types.cjs.map +0 -1
- package/cache/core/types.d.cts +0 -33
- package/cache/core/types.d.ts +0 -33
- package/cache/core/types.js +0 -1
- package/cache/core/types.js.map +0 -1
- package/cache/upstash/cache.cjs +0 -148
- package/cache/upstash/cache.cjs.map +0 -1
- package/cache/upstash/cache.d.cts +0 -29
- package/cache/upstash/cache.d.ts +0 -29
- package/cache/upstash/cache.js +0 -123
- package/cache/upstash/cache.js.map +0 -1
- package/cache/upstash/index.cjs +0 -23
- package/cache/upstash/index.cjs.map +0 -1
- package/cache/upstash/index.d.cts +0 -1
- package/cache/upstash/index.d.ts +0 -1
- package/cache/upstash/index.js +0 -2
- package/cache/upstash/index.js.map +0 -1
package/sqlite-core/session.cjs
CHANGED
|
@@ -24,11 +24,9 @@ __export(session_exports, {
|
|
|
24
24
|
SQLiteTransaction: () => SQLiteTransaction
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(session_exports);
|
|
27
|
-
var import_cache = require("../cache/core/cache.cjs");
|
|
28
27
|
var import_entity = require("../entity.cjs");
|
|
29
28
|
var import_errors = require("../errors.cjs");
|
|
30
29
|
var import_query_promise = require("../query-promise.cjs");
|
|
31
|
-
var import_utils = require("../utils.cjs");
|
|
32
30
|
var import_db = require("./db.cjs");
|
|
33
31
|
class ExecuteResultSync extends import_query_promise.QueryPromise {
|
|
34
32
|
constructor(resultCb) {
|
|
@@ -44,63 +42,14 @@ class ExecuteResultSync extends import_query_promise.QueryPromise {
|
|
|
44
42
|
}
|
|
45
43
|
}
|
|
46
44
|
class SQLitePreparedQuery {
|
|
47
|
-
constructor(mode, executeMethod, query
|
|
45
|
+
constructor(mode, executeMethod, query) {
|
|
48
46
|
this.mode = mode;
|
|
49
47
|
this.executeMethod = executeMethod;
|
|
50
48
|
this.query = query;
|
|
51
|
-
this.cache = cache;
|
|
52
|
-
this.queryMetadata = queryMetadata;
|
|
53
|
-
this.cacheConfig = cacheConfig;
|
|
54
|
-
if (cache && cache.strategy() === "all" && cacheConfig === void 0) {
|
|
55
|
-
this.cacheConfig = { enable: true, autoInvalidate: true };
|
|
56
|
-
}
|
|
57
|
-
if (!this.cacheConfig?.enable) {
|
|
58
|
-
this.cacheConfig = void 0;
|
|
59
|
-
}
|
|
60
49
|
}
|
|
61
50
|
static [import_entity.entityKind] = "PreparedQuery";
|
|
62
51
|
/** @internal */
|
|
63
52
|
joinsNotNullableMap;
|
|
64
|
-
/** @internal */
|
|
65
|
-
async queryWithCache(queryString, params, query) {
|
|
66
|
-
if (this.cache === void 0 || (0, import_entity.is)(this.cache, import_cache.NoopCache) || this.queryMetadata === void 0) {
|
|
67
|
-
return await query();
|
|
68
|
-
}
|
|
69
|
-
if (this.cacheConfig && !this.cacheConfig.enable) {
|
|
70
|
-
return await query();
|
|
71
|
-
}
|
|
72
|
-
if ((this.queryMetadata.type === "insert" || this.queryMetadata.type === "update" || this.queryMetadata.type === "delete") && this.queryMetadata.tables.length > 0) {
|
|
73
|
-
const [res] = await Promise.all([
|
|
74
|
-
query(),
|
|
75
|
-
this.cache.onMutate({ tables: this.queryMetadata.tables })
|
|
76
|
-
]);
|
|
77
|
-
return res;
|
|
78
|
-
}
|
|
79
|
-
if (!this.cacheConfig) {
|
|
80
|
-
return await query();
|
|
81
|
-
}
|
|
82
|
-
if (this.queryMetadata.type === "select") {
|
|
83
|
-
const fromCache = await this.cache.get(
|
|
84
|
-
this.cacheConfig.tag ?? (await (0, import_utils.hashQuery)(queryString, params)),
|
|
85
|
-
this.queryMetadata.tables,
|
|
86
|
-
this.cacheConfig.tag !== void 0
|
|
87
|
-
);
|
|
88
|
-
if (fromCache === void 0) {
|
|
89
|
-
const result = await query();
|
|
90
|
-
await this.cache.put(
|
|
91
|
-
this.cacheConfig.tag ?? (await (0, import_utils.hashQuery)(queryString, params)),
|
|
92
|
-
result,
|
|
93
|
-
// make sure we send tables that were used in a query only if user wants to invalidate it on each write
|
|
94
|
-
this.cacheConfig.autoInvalidate ? this.queryMetadata.tables : [],
|
|
95
|
-
this.cacheConfig.tag !== void 0,
|
|
96
|
-
this.cacheConfig.config
|
|
97
|
-
);
|
|
98
|
-
return result;
|
|
99
|
-
}
|
|
100
|
-
return fromCache;
|
|
101
|
-
}
|
|
102
|
-
return await query();
|
|
103
|
-
}
|
|
104
53
|
getQuery() {
|
|
105
54
|
return this.query;
|
|
106
55
|
}
|
|
@@ -138,16 +87,8 @@ class SQLiteSession {
|
|
|
138
87
|
this.dialect = dialect;
|
|
139
88
|
}
|
|
140
89
|
static [import_entity.entityKind] = "SQLiteSession";
|
|
141
|
-
prepareOneTimeQuery(query, fields, executeMethod, isResponseInArrayMode
|
|
142
|
-
return this.prepareQuery(
|
|
143
|
-
query,
|
|
144
|
-
fields,
|
|
145
|
-
executeMethod,
|
|
146
|
-
isResponseInArrayMode,
|
|
147
|
-
customResultMapper,
|
|
148
|
-
queryMetadata,
|
|
149
|
-
cacheConfig
|
|
150
|
-
);
|
|
90
|
+
prepareOneTimeQuery(query, fields, executeMethod, isResponseInArrayMode) {
|
|
91
|
+
return this.prepareQuery(query, fields, executeMethod, isResponseInArrayMode);
|
|
151
92
|
}
|
|
152
93
|
run(query) {
|
|
153
94
|
const staticQuery = this.dialect.sqlToQuery(query);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/sqlite-core/session.ts"],"sourcesContent":["import { type Cache, NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleError, TransactionRollbackError } from '~/errors.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { hashQuery } from '~/utils.ts';\nimport { BaseSQLiteDatabase } from './db.ts';\nimport type { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\ttype: 'sync' | 'async';\n\trun: unknown;\n\tall: unknown;\n\tget: unknown;\n\tvalues: unknown;\n\texecute: unknown;\n}\n\nexport class ExecuteResultSync<T> extends QueryPromise<T> {\n\tstatic override readonly [entityKind]: string = 'ExecuteResultSync';\n\n\tconstructor(private resultCb: () => T) {\n\t\tsuper();\n\t}\n\n\toverride async execute(): Promise<T> {\n\t\treturn this.resultCb();\n\t}\n\n\tsync(): T {\n\t\treturn this.resultCb();\n\t}\n}\n\nexport type ExecuteResult<TType extends 'sync' | 'async', TResult> = TType extends 'async' ? Promise<TResult>\n\t: ExecuteResultSync<TResult>;\n\nexport abstract class SQLitePreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tstatic readonly [entityKind]: string = 'PreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tconstructor(\n\t\tprivate mode: 'sync' | 'async',\n\t\tprivate executeMethod: SQLiteExecuteMethod,\n\t\tprotected query: Query,\n\t\tprivate cache?: Cache,\n\t\t// per query related metadata\n\t\tprivate queryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\t// config that was passed through $withCache\n\t\tprivate cacheConfig?: WithCacheConfig,\n\t) {\n\t\t// it means that no $withCache options were passed and it should be just enabled\n\t\tif (cache && cache.strategy() === 'all' && cacheConfig === undefined) {\n\t\t\tthis.cacheConfig = { enable: true, autoInvalidate: true };\n\t\t}\n\t\tif (!this.cacheConfig?.enable) {\n\t\t\tthis.cacheConfig = undefined;\n\t\t}\n\t}\n\n\t/** @internal */\n\tprotected async queryWithCache<T>(\n\t\tqueryString: string,\n\t\tparams: any[],\n\t\tquery: () => Promise<T>,\n\t): Promise<T> {\n\t\tif (this.cache === undefined || is(this.cache, NoopCache) || this.queryMetadata === undefined) {\n\t\t\treturn await query();\n\t\t}\n\n\t\t// don't do any mutations, if globally is false\n\t\tif (this.cacheConfig && !this.cacheConfig.enable) {\n\t\t\treturn await query();\n\t\t}\n\n\t\t// For mutate queries, we should query the database, wait for a response, and then perform invalidation\n\t\tif (\n\t\t\t(\n\t\t\t\tthis.queryMetadata.type === 'insert' || this.queryMetadata.type === 'update'\n\t\t\t\t|| this.queryMetadata.type === 'delete'\n\t\t\t) && this.queryMetadata.tables.length > 0\n\t\t) {\n\t\t\tconst [res] = await Promise.all([\n\t\t\t\tquery(),\n\t\t\t\tthis.cache.onMutate({ tables: this.queryMetadata.tables }),\n\t\t\t]);\n\t\t\treturn res;\n\t\t}\n\n\t\t// don't do any reads if globally disabled\n\t\tif (!this.cacheConfig) {\n\t\t\treturn await query();\n\t\t}\n\n\t\tif (this.queryMetadata.type === 'select') {\n\t\t\tconst fromCache = await this.cache.get(\n\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\tthis.queryMetadata.tables,\n\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t);\n\t\t\tif (fromCache === undefined) {\n\t\t\t\tconst result = await query();\n\t\t\t\t// put actual key\n\t\t\t\tawait this.cache.put(\n\t\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\t\tresult,\n\t\t\t\t\t// make sure we send tables that were used in a query only if user wants to invalidate it on each write\n\t\t\t\t\tthis.cacheConfig.autoInvalidate ? this.queryMetadata.tables : [],\n\t\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t\t\tthis.cacheConfig.config,\n\t\t\t\t);\n\t\t\t\t// put flag if we should invalidate or not\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\treturn fromCache as unknown as T;\n\t\t}\n\t\treturn await query();\n\t}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tabstract run(placeholderValues?: Record<string, unknown>): Result<T['type'], T['run']>;\n\n\tmapRunResult(result: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn result;\n\t}\n\n\tabstract all(placeholderValues?: Record<string, unknown>): Result<T['type'], T['all']>;\n\n\tmapAllResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract get(placeholderValues?: Record<string, unknown>): Result<T['type'], T['get']>;\n\n\tmapGetResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract values(placeholderValues?: Record<string, unknown>): Result<T['type'], T['values']>;\n\n\texecute(placeholderValues?: Record<string, unknown>): ExecuteResult<T['type'], T['execute']> {\n\t\tif (this.mode === 'async') {\n\t\t\treturn this[this.executeMethod](placeholderValues) as ExecuteResult<T['type'], T['execute']>;\n\t\t}\n\t\treturn new ExecuteResultSync(() => this[this.executeMethod](placeholderValues));\n\t}\n\n\tmapResult(response: unknown, isFromBatch?: boolean) {\n\t\tswitch (this.executeMethod) {\n\t\t\tcase 'run': {\n\t\t\t\treturn this.mapRunResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'all': {\n\t\t\t\treturn this.mapAllResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'get': {\n\t\t\t\treturn this.mapGetResult(response, isFromBatch);\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface SQLiteTransactionConfig {\n\tbehavior?: 'deferred' | 'immediate' | 'exclusive';\n}\n\nexport type SQLiteExecuteMethod = 'run' | 'all' | 'get';\n\nexport abstract class SQLiteSession<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteSession';\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t) {}\n\n\tabstract prepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareQuery(\n\t\t\tquery,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<TResultKind, T>;\n\n\trun(query: SQL): Result<TResultKind, TRunResult> {\n\t\tconst staticQuery = this.dialect.sqlToQuery(query);\n\t\ttry {\n\t\t\treturn this.prepareOneTimeQuery(staticQuery, undefined, 'run', false).run() as Result<TResultKind, TRunResult>;\n\t\t} catch (err) {\n\t\t\tthrow new DrizzleError({ cause: err, message: `Failed to run the query '${staticQuery.sql}'` });\n\t\t}\n\t}\n\n\t/** @internal */\n\textractRawRunValueFromBatchResult(result: unknown) {\n\t\treturn result;\n\t}\n\n\tall<T = unknown>(query: SQL): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).all() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawAllValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tget<T = unknown>(query: SQL): Result<TResultKind, T> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).get() as Result<\n\t\t\tTResultKind,\n\t\t\tT\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawGetValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tvalues<T extends any[] = unknown[]>(\n\t\tquery: SQL,\n\t): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).values() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\tasync count(sql: SQL) {\n\t\tconst result = await this.values(sql) as [[number]];\n\n\t\treturn result[0][0];\n\t}\n\n\t/** @internal */\n\textractRawValuesValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n}\n\nexport type Result<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: Promise<TResult> }[TKind];\n\nexport type DBResult<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: SQLiteRaw<TResult> }[TKind];\n\nexport abstract class SQLiteTransaction<\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends BaseSQLiteDatabase<TResultType, TRunResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTransaction';\n\n\tconstructor(\n\t\tresultType: TResultType,\n\t\tdialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultType],\n\t\tsession: SQLiteSession<TResultType, TRunResult, TFullSchema, TSchema>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(resultType, dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/sqlite-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { DrizzleError, TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\n// import { QueryPromise } from '../index.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport { BaseSQLiteDatabase } from './db.ts';\nimport type { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\ttype: 'sync' | 'async';\n\trun: unknown;\n\tall: unknown;\n\tget: unknown;\n\tvalues: unknown;\n\texecute: unknown;\n}\n\nexport class ExecuteResultSync<T> extends QueryPromise<T> {\n\tstatic override readonly [entityKind]: string = 'ExecuteResultSync';\n\n\tconstructor(private resultCb: () => T) {\n\t\tsuper();\n\t}\n\n\toverride async execute(): Promise<T> {\n\t\treturn this.resultCb();\n\t}\n\n\tsync(): T {\n\t\treturn this.resultCb();\n\t}\n}\n\nexport type ExecuteResult<TType extends 'sync' | 'async', TResult> = TType extends 'async' ? Promise<TResult>\n\t: ExecuteResultSync<TResult>;\n\nexport abstract class SQLitePreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tstatic readonly [entityKind]: string = 'PreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tconstructor(\n\t\tprivate mode: 'sync' | 'async',\n\t\tprivate executeMethod: SQLiteExecuteMethod,\n\t\tprotected query: Query,\n\t) {}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tabstract run(placeholderValues?: Record<string, unknown>): Result<T['type'], T['run']>;\n\n\tmapRunResult(result: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn result;\n\t}\n\n\tabstract all(placeholderValues?: Record<string, unknown>): Result<T['type'], T['all']>;\n\n\tmapAllResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract get(placeholderValues?: Record<string, unknown>): Result<T['type'], T['get']>;\n\n\tmapGetResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract values(placeholderValues?: Record<string, unknown>): Result<T['type'], T['values']>;\n\n\texecute(placeholderValues?: Record<string, unknown>): ExecuteResult<T['type'], T['execute']> {\n\t\tif (this.mode === 'async') {\n\t\t\treturn this[this.executeMethod](placeholderValues) as ExecuteResult<T['type'], T['execute']>;\n\t\t}\n\t\treturn new ExecuteResultSync(() => this[this.executeMethod](placeholderValues));\n\t}\n\n\tmapResult(response: unknown, isFromBatch?: boolean) {\n\t\tswitch (this.executeMethod) {\n\t\t\tcase 'run': {\n\t\t\t\treturn this.mapRunResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'all': {\n\t\t\t\treturn this.mapAllResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'get': {\n\t\t\t\treturn this.mapGetResult(response, isFromBatch);\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface SQLiteTransactionConfig {\n\tbehavior?: 'deferred' | 'immediate' | 'exclusive';\n}\n\nexport type SQLiteExecuteMethod = 'run' | 'all' | 'get';\n\nexport abstract class SQLiteSession<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteSession';\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t) {}\n\n\tabstract prepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareQuery(query, fields, executeMethod, isResponseInArrayMode);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<TResultKind, T>;\n\n\trun(query: SQL): Result<TResultKind, TRunResult> {\n\t\tconst staticQuery = this.dialect.sqlToQuery(query);\n\t\ttry {\n\t\t\treturn this.prepareOneTimeQuery(staticQuery, undefined, 'run', false).run() as Result<TResultKind, TRunResult>;\n\t\t} catch (err) {\n\t\t\tthrow new DrizzleError({ cause: err, message: `Failed to run the query '${staticQuery.sql}'` });\n\t\t}\n\t}\n\n\t/** @internal */\n\textractRawRunValueFromBatchResult(result: unknown) {\n\t\treturn result;\n\t}\n\n\tall<T = unknown>(query: SQL): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).all() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawAllValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tget<T = unknown>(query: SQL): Result<TResultKind, T> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).get() as Result<\n\t\t\tTResultKind,\n\t\t\tT\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawGetValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tvalues<T extends any[] = unknown[]>(\n\t\tquery: SQL,\n\t): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).values() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\tasync count(sql: SQL) {\n\t\tconst result = await this.values(sql) as [[number]];\n\n\t\treturn result[0][0];\n\t}\n\n\t/** @internal */\n\textractRawValuesValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n}\n\nexport type Result<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: Promise<TResult> }[TKind];\n\nexport type DBResult<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: SQLiteRaw<TResult> }[TKind];\n\nexport abstract class SQLiteTransaction<\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends BaseSQLiteDatabase<TResultType, TRunResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTransaction';\n\n\tconstructor(\n\t\tresultType: TResultType,\n\t\tdialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultType],\n\t\tsession: SQLiteSession<TResultType, TRunResult, TFullSchema, TSchema>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(resultType, dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { type Cache } from "../cache/core/cache.cjs";
|
|
2
|
-
import type { WithCacheConfig } from "../cache/core/types.cjs";
|
|
3
1
|
import { entityKind } from "../entity.cjs";
|
|
4
|
-
import { QueryPromise } from "../query-promise.cjs";
|
|
5
2
|
import type { TablesRelationalConfig } from "../relations.cjs";
|
|
6
3
|
import type { PreparedQuery } from "../session.cjs";
|
|
7
4
|
import type { Query, SQL } from "../sql/sql.cjs";
|
|
8
5
|
import type { SQLiteAsyncDialect, SQLiteSyncDialect } from "./dialect.cjs";
|
|
6
|
+
import { QueryPromise } from "../query-promise.cjs";
|
|
9
7
|
import { BaseSQLiteDatabase } from "./db.cjs";
|
|
10
8
|
import type { SQLiteRaw } from "./query-builders/raw.cjs";
|
|
11
9
|
import type { SelectedFieldsOrdered } from "./query-builders/select.types.cjs";
|
|
@@ -29,14 +27,8 @@ export declare abstract class SQLitePreparedQuery<T extends PreparedQueryConfig>
|
|
|
29
27
|
private mode;
|
|
30
28
|
private executeMethod;
|
|
31
29
|
protected query: Query;
|
|
32
|
-
private cache?;
|
|
33
|
-
private queryMetadata?;
|
|
34
|
-
private cacheConfig?;
|
|
35
30
|
static readonly [entityKind]: string;
|
|
36
|
-
constructor(mode: 'sync' | 'async', executeMethod: SQLiteExecuteMethod, query: Query
|
|
37
|
-
type: 'select' | 'update' | 'delete' | 'insert';
|
|
38
|
-
tables: string[];
|
|
39
|
-
} | undefined, cacheConfig?: WithCacheConfig | undefined);
|
|
31
|
+
constructor(mode: 'sync' | 'async', executeMethod: SQLiteExecuteMethod, query: Query);
|
|
40
32
|
getQuery(): Query;
|
|
41
33
|
abstract run(placeholderValues?: Record<string, unknown>): Result<T['type'], T['run']>;
|
|
42
34
|
mapRunResult(result: unknown, _isFromBatch?: boolean): unknown;
|
|
@@ -60,16 +52,10 @@ export declare abstract class SQLiteSession<TResultKind extends 'sync' | 'async'
|
|
|
60
52
|
sync: SQLiteSyncDialect;
|
|
61
53
|
async: SQLiteAsyncDialect;
|
|
62
54
|
}[TResultKind]);
|
|
63
|
-
abstract prepareQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown
|
|
64
|
-
type: 'select' | 'update' | 'delete' | 'insert';
|
|
65
|
-
tables: string[];
|
|
66
|
-
}, cacheConfig?: WithCacheConfig): SQLitePreparedQuery<PreparedQueryConfig & {
|
|
55
|
+
abstract prepareQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown): SQLitePreparedQuery<PreparedQueryConfig & {
|
|
67
56
|
type: TResultKind;
|
|
68
57
|
}>;
|
|
69
|
-
prepareOneTimeQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean
|
|
70
|
-
type: 'select' | 'update' | 'delete' | 'insert';
|
|
71
|
-
tables: string[];
|
|
72
|
-
}, cacheConfig?: WithCacheConfig): SQLitePreparedQuery<PreparedQueryConfig & {
|
|
58
|
+
prepareOneTimeQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean): SQLitePreparedQuery<PreparedQueryConfig & {
|
|
73
59
|
type: TResultKind;
|
|
74
60
|
}>;
|
|
75
61
|
abstract transaction<T>(transaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>, config?: SQLiteTransactionConfig): Result<TResultKind, T>;
|
package/sqlite-core/session.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { type Cache } from "../cache/core/cache.js";
|
|
2
|
-
import type { WithCacheConfig } from "../cache/core/types.js";
|
|
3
1
|
import { entityKind } from "../entity.js";
|
|
4
|
-
import { QueryPromise } from "../query-promise.js";
|
|
5
2
|
import type { TablesRelationalConfig } from "../relations.js";
|
|
6
3
|
import type { PreparedQuery } from "../session.js";
|
|
7
4
|
import type { Query, SQL } from "../sql/sql.js";
|
|
8
5
|
import type { SQLiteAsyncDialect, SQLiteSyncDialect } from "./dialect.js";
|
|
6
|
+
import { QueryPromise } from "../query-promise.js";
|
|
9
7
|
import { BaseSQLiteDatabase } from "./db.js";
|
|
10
8
|
import type { SQLiteRaw } from "./query-builders/raw.js";
|
|
11
9
|
import type { SelectedFieldsOrdered } from "./query-builders/select.types.js";
|
|
@@ -29,14 +27,8 @@ export declare abstract class SQLitePreparedQuery<T extends PreparedQueryConfig>
|
|
|
29
27
|
private mode;
|
|
30
28
|
private executeMethod;
|
|
31
29
|
protected query: Query;
|
|
32
|
-
private cache?;
|
|
33
|
-
private queryMetadata?;
|
|
34
|
-
private cacheConfig?;
|
|
35
30
|
static readonly [entityKind]: string;
|
|
36
|
-
constructor(mode: 'sync' | 'async', executeMethod: SQLiteExecuteMethod, query: Query
|
|
37
|
-
type: 'select' | 'update' | 'delete' | 'insert';
|
|
38
|
-
tables: string[];
|
|
39
|
-
} | undefined, cacheConfig?: WithCacheConfig | undefined);
|
|
31
|
+
constructor(mode: 'sync' | 'async', executeMethod: SQLiteExecuteMethod, query: Query);
|
|
40
32
|
getQuery(): Query;
|
|
41
33
|
abstract run(placeholderValues?: Record<string, unknown>): Result<T['type'], T['run']>;
|
|
42
34
|
mapRunResult(result: unknown, _isFromBatch?: boolean): unknown;
|
|
@@ -60,16 +52,10 @@ export declare abstract class SQLiteSession<TResultKind extends 'sync' | 'async'
|
|
|
60
52
|
sync: SQLiteSyncDialect;
|
|
61
53
|
async: SQLiteAsyncDialect;
|
|
62
54
|
}[TResultKind]);
|
|
63
|
-
abstract prepareQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown
|
|
64
|
-
type: 'select' | 'update' | 'delete' | 'insert';
|
|
65
|
-
tables: string[];
|
|
66
|
-
}, cacheConfig?: WithCacheConfig): SQLitePreparedQuery<PreparedQueryConfig & {
|
|
55
|
+
abstract prepareQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown): SQLitePreparedQuery<PreparedQueryConfig & {
|
|
67
56
|
type: TResultKind;
|
|
68
57
|
}>;
|
|
69
|
-
prepareOneTimeQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean
|
|
70
|
-
type: 'select' | 'update' | 'delete' | 'insert';
|
|
71
|
-
tables: string[];
|
|
72
|
-
}, cacheConfig?: WithCacheConfig): SQLitePreparedQuery<PreparedQueryConfig & {
|
|
58
|
+
prepareOneTimeQuery(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, isResponseInArrayMode: boolean): SQLitePreparedQuery<PreparedQueryConfig & {
|
|
73
59
|
type: TResultKind;
|
|
74
60
|
}>;
|
|
75
61
|
abstract transaction<T>(transaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>, config?: SQLiteTransactionConfig): Result<TResultKind, T>;
|
package/sqlite-core/session.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { entityKind, is } from "../entity.js";
|
|
1
|
+
import { entityKind } from "../entity.js";
|
|
3
2
|
import { DrizzleError, TransactionRollbackError } from "../errors.js";
|
|
4
3
|
import { QueryPromise } from "../query-promise.js";
|
|
5
|
-
import { hashQuery } from "../utils.js";
|
|
6
4
|
import { BaseSQLiteDatabase } from "./db.js";
|
|
7
5
|
class ExecuteResultSync extends QueryPromise {
|
|
8
6
|
constructor(resultCb) {
|
|
@@ -18,63 +16,14 @@ class ExecuteResultSync extends QueryPromise {
|
|
|
18
16
|
}
|
|
19
17
|
}
|
|
20
18
|
class SQLitePreparedQuery {
|
|
21
|
-
constructor(mode, executeMethod, query
|
|
19
|
+
constructor(mode, executeMethod, query) {
|
|
22
20
|
this.mode = mode;
|
|
23
21
|
this.executeMethod = executeMethod;
|
|
24
22
|
this.query = query;
|
|
25
|
-
this.cache = cache;
|
|
26
|
-
this.queryMetadata = queryMetadata;
|
|
27
|
-
this.cacheConfig = cacheConfig;
|
|
28
|
-
if (cache && cache.strategy() === "all" && cacheConfig === void 0) {
|
|
29
|
-
this.cacheConfig = { enable: true, autoInvalidate: true };
|
|
30
|
-
}
|
|
31
|
-
if (!this.cacheConfig?.enable) {
|
|
32
|
-
this.cacheConfig = void 0;
|
|
33
|
-
}
|
|
34
23
|
}
|
|
35
24
|
static [entityKind] = "PreparedQuery";
|
|
36
25
|
/** @internal */
|
|
37
26
|
joinsNotNullableMap;
|
|
38
|
-
/** @internal */
|
|
39
|
-
async queryWithCache(queryString, params, query) {
|
|
40
|
-
if (this.cache === void 0 || is(this.cache, NoopCache) || this.queryMetadata === void 0) {
|
|
41
|
-
return await query();
|
|
42
|
-
}
|
|
43
|
-
if (this.cacheConfig && !this.cacheConfig.enable) {
|
|
44
|
-
return await query();
|
|
45
|
-
}
|
|
46
|
-
if ((this.queryMetadata.type === "insert" || this.queryMetadata.type === "update" || this.queryMetadata.type === "delete") && this.queryMetadata.tables.length > 0) {
|
|
47
|
-
const [res] = await Promise.all([
|
|
48
|
-
query(),
|
|
49
|
-
this.cache.onMutate({ tables: this.queryMetadata.tables })
|
|
50
|
-
]);
|
|
51
|
-
return res;
|
|
52
|
-
}
|
|
53
|
-
if (!this.cacheConfig) {
|
|
54
|
-
return await query();
|
|
55
|
-
}
|
|
56
|
-
if (this.queryMetadata.type === "select") {
|
|
57
|
-
const fromCache = await this.cache.get(
|
|
58
|
-
this.cacheConfig.tag ?? (await hashQuery(queryString, params)),
|
|
59
|
-
this.queryMetadata.tables,
|
|
60
|
-
this.cacheConfig.tag !== void 0
|
|
61
|
-
);
|
|
62
|
-
if (fromCache === void 0) {
|
|
63
|
-
const result = await query();
|
|
64
|
-
await this.cache.put(
|
|
65
|
-
this.cacheConfig.tag ?? (await hashQuery(queryString, params)),
|
|
66
|
-
result,
|
|
67
|
-
// make sure we send tables that were used in a query only if user wants to invalidate it on each write
|
|
68
|
-
this.cacheConfig.autoInvalidate ? this.queryMetadata.tables : [],
|
|
69
|
-
this.cacheConfig.tag !== void 0,
|
|
70
|
-
this.cacheConfig.config
|
|
71
|
-
);
|
|
72
|
-
return result;
|
|
73
|
-
}
|
|
74
|
-
return fromCache;
|
|
75
|
-
}
|
|
76
|
-
return await query();
|
|
77
|
-
}
|
|
78
27
|
getQuery() {
|
|
79
28
|
return this.query;
|
|
80
29
|
}
|
|
@@ -112,16 +61,8 @@ class SQLiteSession {
|
|
|
112
61
|
this.dialect = dialect;
|
|
113
62
|
}
|
|
114
63
|
static [entityKind] = "SQLiteSession";
|
|
115
|
-
prepareOneTimeQuery(query, fields, executeMethod, isResponseInArrayMode
|
|
116
|
-
return this.prepareQuery(
|
|
117
|
-
query,
|
|
118
|
-
fields,
|
|
119
|
-
executeMethod,
|
|
120
|
-
isResponseInArrayMode,
|
|
121
|
-
customResultMapper,
|
|
122
|
-
queryMetadata,
|
|
123
|
-
cacheConfig
|
|
124
|
-
);
|
|
64
|
+
prepareOneTimeQuery(query, fields, executeMethod, isResponseInArrayMode) {
|
|
65
|
+
return this.prepareQuery(query, fields, executeMethod, isResponseInArrayMode);
|
|
125
66
|
}
|
|
126
67
|
run(query) {
|
|
127
68
|
const staticQuery = this.dialect.sqlToQuery(query);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/sqlite-core/session.ts"],"sourcesContent":["import { type Cache, NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleError, TransactionRollbackError } from '~/errors.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { hashQuery } from '~/utils.ts';\nimport { BaseSQLiteDatabase } from './db.ts';\nimport type { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\ttype: 'sync' | 'async';\n\trun: unknown;\n\tall: unknown;\n\tget: unknown;\n\tvalues: unknown;\n\texecute: unknown;\n}\n\nexport class ExecuteResultSync<T> extends QueryPromise<T> {\n\tstatic override readonly [entityKind]: string = 'ExecuteResultSync';\n\n\tconstructor(private resultCb: () => T) {\n\t\tsuper();\n\t}\n\n\toverride async execute(): Promise<T> {\n\t\treturn this.resultCb();\n\t}\n\n\tsync(): T {\n\t\treturn this.resultCb();\n\t}\n}\n\nexport type ExecuteResult<TType extends 'sync' | 'async', TResult> = TType extends 'async' ? Promise<TResult>\n\t: ExecuteResultSync<TResult>;\n\nexport abstract class SQLitePreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tstatic readonly [entityKind]: string = 'PreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tconstructor(\n\t\tprivate mode: 'sync' | 'async',\n\t\tprivate executeMethod: SQLiteExecuteMethod,\n\t\tprotected query: Query,\n\t\tprivate cache?: Cache,\n\t\t// per query related metadata\n\t\tprivate queryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\t// config that was passed through $withCache\n\t\tprivate cacheConfig?: WithCacheConfig,\n\t) {\n\t\t// it means that no $withCache options were passed and it should be just enabled\n\t\tif (cache && cache.strategy() === 'all' && cacheConfig === undefined) {\n\t\t\tthis.cacheConfig = { enable: true, autoInvalidate: true };\n\t\t}\n\t\tif (!this.cacheConfig?.enable) {\n\t\t\tthis.cacheConfig = undefined;\n\t\t}\n\t}\n\n\t/** @internal */\n\tprotected async queryWithCache<T>(\n\t\tqueryString: string,\n\t\tparams: any[],\n\t\tquery: () => Promise<T>,\n\t): Promise<T> {\n\t\tif (this.cache === undefined || is(this.cache, NoopCache) || this.queryMetadata === undefined) {\n\t\t\treturn await query();\n\t\t}\n\n\t\t// don't do any mutations, if globally is false\n\t\tif (this.cacheConfig && !this.cacheConfig.enable) {\n\t\t\treturn await query();\n\t\t}\n\n\t\t// For mutate queries, we should query the database, wait for a response, and then perform invalidation\n\t\tif (\n\t\t\t(\n\t\t\t\tthis.queryMetadata.type === 'insert' || this.queryMetadata.type === 'update'\n\t\t\t\t|| this.queryMetadata.type === 'delete'\n\t\t\t) && this.queryMetadata.tables.length > 0\n\t\t) {\n\t\t\tconst [res] = await Promise.all([\n\t\t\t\tquery(),\n\t\t\t\tthis.cache.onMutate({ tables: this.queryMetadata.tables }),\n\t\t\t]);\n\t\t\treturn res;\n\t\t}\n\n\t\t// don't do any reads if globally disabled\n\t\tif (!this.cacheConfig) {\n\t\t\treturn await query();\n\t\t}\n\n\t\tif (this.queryMetadata.type === 'select') {\n\t\t\tconst fromCache = await this.cache.get(\n\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\tthis.queryMetadata.tables,\n\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t);\n\t\t\tif (fromCache === undefined) {\n\t\t\t\tconst result = await query();\n\t\t\t\t// put actual key\n\t\t\t\tawait this.cache.put(\n\t\t\t\t\tthis.cacheConfig.tag ?? await hashQuery(queryString, params),\n\t\t\t\t\tresult,\n\t\t\t\t\t// make sure we send tables that were used in a query only if user wants to invalidate it on each write\n\t\t\t\t\tthis.cacheConfig.autoInvalidate ? this.queryMetadata.tables : [],\n\t\t\t\t\tthis.cacheConfig.tag !== undefined,\n\t\t\t\t\tthis.cacheConfig.config,\n\t\t\t\t);\n\t\t\t\t// put flag if we should invalidate or not\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\treturn fromCache as unknown as T;\n\t\t}\n\t\treturn await query();\n\t}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tabstract run(placeholderValues?: Record<string, unknown>): Result<T['type'], T['run']>;\n\n\tmapRunResult(result: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn result;\n\t}\n\n\tabstract all(placeholderValues?: Record<string, unknown>): Result<T['type'], T['all']>;\n\n\tmapAllResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract get(placeholderValues?: Record<string, unknown>): Result<T['type'], T['get']>;\n\n\tmapGetResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract values(placeholderValues?: Record<string, unknown>): Result<T['type'], T['values']>;\n\n\texecute(placeholderValues?: Record<string, unknown>): ExecuteResult<T['type'], T['execute']> {\n\t\tif (this.mode === 'async') {\n\t\t\treturn this[this.executeMethod](placeholderValues) as ExecuteResult<T['type'], T['execute']>;\n\t\t}\n\t\treturn new ExecuteResultSync(() => this[this.executeMethod](placeholderValues));\n\t}\n\n\tmapResult(response: unknown, isFromBatch?: boolean) {\n\t\tswitch (this.executeMethod) {\n\t\t\tcase 'run': {\n\t\t\t\treturn this.mapRunResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'all': {\n\t\t\t\treturn this.mapAllResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'get': {\n\t\t\t\treturn this.mapGetResult(response, isFromBatch);\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface SQLiteTransactionConfig {\n\tbehavior?: 'deferred' | 'immediate' | 'exclusive';\n}\n\nexport type SQLiteExecuteMethod = 'run' | 'all' | 'get';\n\nexport abstract class SQLiteSession<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteSession';\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t) {}\n\n\tabstract prepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareQuery(\n\t\t\tquery,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<TResultKind, T>;\n\n\trun(query: SQL): Result<TResultKind, TRunResult> {\n\t\tconst staticQuery = this.dialect.sqlToQuery(query);\n\t\ttry {\n\t\t\treturn this.prepareOneTimeQuery(staticQuery, undefined, 'run', false).run() as Result<TResultKind, TRunResult>;\n\t\t} catch (err) {\n\t\t\tthrow new DrizzleError({ cause: err, message: `Failed to run the query '${staticQuery.sql}'` });\n\t\t}\n\t}\n\n\t/** @internal */\n\textractRawRunValueFromBatchResult(result: unknown) {\n\t\treturn result;\n\t}\n\n\tall<T = unknown>(query: SQL): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).all() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawAllValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tget<T = unknown>(query: SQL): Result<TResultKind, T> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).get() as Result<\n\t\t\tTResultKind,\n\t\t\tT\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawGetValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tvalues<T extends any[] = unknown[]>(\n\t\tquery: SQL,\n\t): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).values() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\tasync count(sql: SQL) {\n\t\tconst result = await this.values(sql) as [[number]];\n\n\t\treturn result[0][0];\n\t}\n\n\t/** @internal */\n\textractRawValuesValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n}\n\nexport type Result<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: Promise<TResult> }[TKind];\n\nexport type DBResult<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: SQLiteRaw<TResult> }[TKind];\n\nexport abstract class SQLiteTransaction<\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends BaseSQLiteDatabase<TResultType, TRunResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTransaction';\n\n\tconstructor(\n\t\tresultType: TResultType,\n\t\tdialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultType],\n\t\tsession: SQLiteSession<TResultType, TRunResult, TFullSchema, TSchema>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(resultType, dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/sqlite-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { DrizzleError, TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\n// import { QueryPromise } from '../index.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport { BaseSQLiteDatabase } from './db.ts';\nimport type { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\ttype: 'sync' | 'async';\n\trun: unknown;\n\tall: unknown;\n\tget: unknown;\n\tvalues: unknown;\n\texecute: unknown;\n}\n\nexport class ExecuteResultSync<T> extends QueryPromise<T> {\n\tstatic override readonly [entityKind]: string = 'ExecuteResultSync';\n\n\tconstructor(private resultCb: () => T) {\n\t\tsuper();\n\t}\n\n\toverride async execute(): Promise<T> {\n\t\treturn this.resultCb();\n\t}\n\n\tsync(): T {\n\t\treturn this.resultCb();\n\t}\n}\n\nexport type ExecuteResult<TType extends 'sync' | 'async', TResult> = TType extends 'async' ? Promise<TResult>\n\t: ExecuteResultSync<TResult>;\n\nexport abstract class SQLitePreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tstatic readonly [entityKind]: string = 'PreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tconstructor(\n\t\tprivate mode: 'sync' | 'async',\n\t\tprivate executeMethod: SQLiteExecuteMethod,\n\t\tprotected query: Query,\n\t) {}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tabstract run(placeholderValues?: Record<string, unknown>): Result<T['type'], T['run']>;\n\n\tmapRunResult(result: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn result;\n\t}\n\n\tabstract all(placeholderValues?: Record<string, unknown>): Result<T['type'], T['all']>;\n\n\tmapAllResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract get(placeholderValues?: Record<string, unknown>): Result<T['type'], T['get']>;\n\n\tmapGetResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract values(placeholderValues?: Record<string, unknown>): Result<T['type'], T['values']>;\n\n\texecute(placeholderValues?: Record<string, unknown>): ExecuteResult<T['type'], T['execute']> {\n\t\tif (this.mode === 'async') {\n\t\t\treturn this[this.executeMethod](placeholderValues) as ExecuteResult<T['type'], T['execute']>;\n\t\t}\n\t\treturn new ExecuteResultSync(() => this[this.executeMethod](placeholderValues));\n\t}\n\n\tmapResult(response: unknown, isFromBatch?: boolean) {\n\t\tswitch (this.executeMethod) {\n\t\t\tcase 'run': {\n\t\t\t\treturn this.mapRunResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'all': {\n\t\t\t\treturn this.mapAllResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'get': {\n\t\t\t\treturn this.mapGetResult(response, isFromBatch);\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface SQLiteTransactionConfig {\n\tbehavior?: 'deferred' | 'immediate' | 'exclusive';\n}\n\nexport type SQLiteExecuteMethod = 'run' | 'all' | 'get';\n\nexport abstract class SQLiteSession<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteSession';\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t) {}\n\n\tabstract prepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }>;\n\n\tprepareOneTimeQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t): SQLitePreparedQuery<PreparedQueryConfig & { type: TResultKind }> {\n\t\treturn this.prepareQuery(query, fields, executeMethod, isResponseInArrayMode);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: SQLiteTransaction<TResultKind, TRunResult, TFullSchema, TSchema>) => Result<TResultKind, T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<TResultKind, T>;\n\n\trun(query: SQL): Result<TResultKind, TRunResult> {\n\t\tconst staticQuery = this.dialect.sqlToQuery(query);\n\t\ttry {\n\t\t\treturn this.prepareOneTimeQuery(staticQuery, undefined, 'run', false).run() as Result<TResultKind, TRunResult>;\n\t\t} catch (err) {\n\t\t\tthrow new DrizzleError({ cause: err, message: `Failed to run the query '${staticQuery.sql}'` });\n\t\t}\n\t}\n\n\t/** @internal */\n\textractRawRunValueFromBatchResult(result: unknown) {\n\t\treturn result;\n\t}\n\n\tall<T = unknown>(query: SQL): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).all() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawAllValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tget<T = unknown>(query: SQL): Result<TResultKind, T> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).get() as Result<\n\t\t\tTResultKind,\n\t\t\tT\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawGetValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tvalues<T extends any[] = unknown[]>(\n\t\tquery: SQL,\n\t): Result<TResultKind, T[]> {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run', false).values() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\tasync count(sql: SQL) {\n\t\tconst result = await this.values(sql) as [[number]];\n\n\t\treturn result[0][0];\n\t}\n\n\t/** @internal */\n\textractRawValuesValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n}\n\nexport type Result<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: Promise<TResult> }[TKind];\n\nexport type DBResult<TKind extends 'sync' | 'async', TResult> = { sync: TResult; async: SQLiteRaw<TResult> }[TKind];\n\nexport abstract class SQLiteTransaction<\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends BaseSQLiteDatabase<TResultType, TRunResult, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTransaction';\n\n\tconstructor(\n\t\tresultType: TResultType,\n\t\tdialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultType],\n\t\tsession: SQLiteSession<TResultType, TRunResult, TFullSchema, TSchema>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(resultType, dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n}\n"],"mappings":"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","names":[]}
|
package/sqlite-core/utils.cjs
CHANGED
|
@@ -18,14 +18,11 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var utils_exports = {};
|
|
20
20
|
__export(utils_exports, {
|
|
21
|
-
extractUsedTable: () => extractUsedTable,
|
|
22
21
|
getTableConfig: () => getTableConfig,
|
|
23
22
|
getViewConfig: () => getViewConfig
|
|
24
23
|
});
|
|
25
24
|
module.exports = __toCommonJS(utils_exports);
|
|
26
25
|
var import_entity = require("../entity.cjs");
|
|
27
|
-
var import_sql = require("../sql/sql.cjs");
|
|
28
|
-
var import_subquery = require("../subquery.cjs");
|
|
29
26
|
var import_table = require("../table.cjs");
|
|
30
27
|
var import_view_common = require("../view-common.cjs");
|
|
31
28
|
var import_checks = require("./checks.cjs");
|
|
@@ -70,18 +67,6 @@ function getTableConfig(table) {
|
|
|
70
67
|
name
|
|
71
68
|
};
|
|
72
69
|
}
|
|
73
|
-
function extractUsedTable(table) {
|
|
74
|
-
if ((0, import_entity.is)(table, import_table2.SQLiteTable)) {
|
|
75
|
-
return [`${table[import_table.Table.Symbol.BaseName]}`];
|
|
76
|
-
}
|
|
77
|
-
if ((0, import_entity.is)(table, import_subquery.Subquery)) {
|
|
78
|
-
return table._.usedTables ?? [];
|
|
79
|
-
}
|
|
80
|
-
if ((0, import_entity.is)(table, import_sql.SQL)) {
|
|
81
|
-
return table.usedTables ?? [];
|
|
82
|
-
}
|
|
83
|
-
return [];
|
|
84
|
-
}
|
|
85
70
|
function getViewConfig(view) {
|
|
86
71
|
return {
|
|
87
72
|
...view[import_view_common.ViewBaseConfig]
|
|
@@ -90,7 +75,6 @@ function getViewConfig(view) {
|
|
|
90
75
|
}
|
|
91
76
|
// Annotate the CommonJS export names for ESM import in node:
|
|
92
77
|
0 && (module.exports = {
|
|
93
|
-
extractUsedTable,
|
|
94
78
|
getTableConfig,
|
|
95
79
|
getViewConfig
|
|
96
80
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/sqlite-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/sqlite-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { Check } from './checks.ts';\nimport { CheckBuilder } from './checks.ts';\nimport type { ForeignKey } from './foreign-keys.ts';\nimport { ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport type { PrimaryKey } from './primary-keys.ts';\nimport { PrimaryKeyBuilder } from './primary-keys.ts';\nimport { SQLiteTable } from './table.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\nimport type { SQLiteView } from './view.ts';\n\nexport function getTableConfig<TTable extends SQLiteTable>(table: TTable) {\n\tconst columns = Object.values(table[SQLiteTable.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[SQLiteTable.Symbol.InlineForeignKeys]);\n\tconst name = table[Table.Symbol.Name];\n\n\tconst extraConfigBuilder = table[SQLiteTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[SQLiteTable.Symbol.Columns]);\n\t\tconst extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) as any[] : Object.values(extraConfig);\n\t\tfor (const builder of Object.values(extraValues)) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, CheckBuilder)) {\n\t\t\t\tchecks.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, ForeignKeyBuilder)) {\n\t\t\t\tforeignKeys.push(builder.build(table));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t};\n}\n\nexport type OnConflict = 'rollback' | 'abort' | 'fail' | 'ignore' | 'replace';\n\nexport function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: SQLiteView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t// ...view[SQLiteViewConfig],\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AACnB,mBAAsB;AACtB,yBAA+B;AAE/B,oBAA6B;AAE7B,0BAAkC;AAElC,qBAA6B;AAE7B,0BAAkC;AAClC,IAAAA,gBAA4B;AAC5B,+BAA+D;AAGxD,SAAS,eAA2C,OAAe;AACzE,QAAM,UAAU,OAAO,OAAO,MAAM,0BAAY,OAAO,OAAO,CAAC;AAC/D,QAAM,UAAmB,CAAC;AAC1B,QAAM,SAAkB,CAAC;AACzB,QAAM,cAA4B,CAAC;AACnC,QAAM,oBAAwC,CAAC;AAC/C,QAAM,cAA4B,OAAO,OAAO,MAAM,0BAAY,OAAO,iBAAiB,CAAC;AAC3F,QAAM,OAAO,MAAM,mBAAM,OAAO,IAAI;AAEpC,QAAM,qBAAqB,MAAM,0BAAY,OAAO,kBAAkB;AAEtE,MAAI,uBAAuB,QAAW;AACrC,UAAM,cAAc,mBAAmB,MAAM,0BAAY,OAAO,OAAO,CAAC;AACxE,UAAM,cAAc,MAAM,QAAQ,WAAW,IAAI,YAAY,KAAK,CAAC,IAAa,OAAO,OAAO,WAAW;AACzG,eAAW,WAAW,OAAO,OAAO,WAAW,GAAG;AACjD,cAAI,kBAAG,SAAS,2BAAY,GAAG;AAC9B,gBAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAClC,eAAW,kBAAG,SAAS,0BAAY,GAAG;AACrC,eAAO,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACjC,eAAW,kBAAG,SAAS,gDAAuB,GAAG;AAChD,0BAAkB,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAC5C,eAAW,kBAAG,SAAS,qCAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,eAAW,kBAAG,SAAS,qCAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAIO,SAAS,cAGd,MAAoC;AACrC,SAAO;AAAA,IACN,GAAG,KAAK,iCAAc;AAAA;AAAA,EAEvB;AACD;","names":["import_table"]}
|
package/sqlite-core/utils.d.cts
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import { SQL } from "../sql/sql.cjs";
|
|
2
|
-
import { Subquery } from "../subquery.cjs";
|
|
3
1
|
import type { Check } from "./checks.cjs";
|
|
4
2
|
import type { ForeignKey } from "./foreign-keys.cjs";
|
|
5
3
|
import type { Index } from "./indexes.cjs";
|
|
6
4
|
import type { PrimaryKey } from "./primary-keys.cjs";
|
|
7
5
|
import { SQLiteTable } from "./table.cjs";
|
|
8
6
|
import { type UniqueConstraint } from "./unique-constraint.cjs";
|
|
9
|
-
import type { SQLiteViewBase } from "./view-base.cjs";
|
|
10
7
|
import type { SQLiteView } from "./view.cjs";
|
|
11
8
|
export declare function getTableConfig<TTable extends SQLiteTable>(table: TTable): {
|
|
12
9
|
columns: import("./index.ts").SQLiteColumn<any, {}, {}>[];
|
|
@@ -17,14 +14,13 @@ export declare function getTableConfig<TTable extends SQLiteTable>(table: TTable
|
|
|
17
14
|
uniqueConstraints: UniqueConstraint[];
|
|
18
15
|
name: string;
|
|
19
16
|
};
|
|
20
|
-
export declare function extractUsedTable(table: SQLiteTable | Subquery | SQLiteViewBase | SQL): string[];
|
|
21
17
|
export type OnConflict = 'rollback' | 'abort' | 'fail' | 'ignore' | 'replace';
|
|
22
18
|
export declare function getViewConfig<TName extends string = string, TExisting extends boolean = boolean>(view: SQLiteView<TName, TExisting>): {
|
|
23
19
|
name: TName;
|
|
24
20
|
originalName: TName;
|
|
25
21
|
schema: string | undefined;
|
|
26
|
-
selectedFields: import("../
|
|
22
|
+
selectedFields: import("../index.ts").ColumnsSelection;
|
|
27
23
|
isExisting: TExisting;
|
|
28
|
-
query: TExisting extends true ? undefined : SQL<unknown>;
|
|
24
|
+
query: TExisting extends true ? undefined : import("../index.ts").SQL<unknown>;
|
|
29
25
|
isAlias: boolean;
|
|
30
26
|
};
|
package/sqlite-core/utils.d.ts
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import { SQL } from "../sql/sql.js";
|
|
2
|
-
import { Subquery } from "../subquery.js";
|
|
3
1
|
import type { Check } from "./checks.js";
|
|
4
2
|
import type { ForeignKey } from "./foreign-keys.js";
|
|
5
3
|
import type { Index } from "./indexes.js";
|
|
6
4
|
import type { PrimaryKey } from "./primary-keys.js";
|
|
7
5
|
import { SQLiteTable } from "./table.js";
|
|
8
6
|
import { type UniqueConstraint } from "./unique-constraint.js";
|
|
9
|
-
import type { SQLiteViewBase } from "./view-base.js";
|
|
10
7
|
import type { SQLiteView } from "./view.js";
|
|
11
8
|
export declare function getTableConfig<TTable extends SQLiteTable>(table: TTable): {
|
|
12
9
|
columns: import("./index.js").SQLiteColumn<any, {}, {}>[];
|
|
@@ -17,14 +14,13 @@ export declare function getTableConfig<TTable extends SQLiteTable>(table: TTable
|
|
|
17
14
|
uniqueConstraints: UniqueConstraint[];
|
|
18
15
|
name: string;
|
|
19
16
|
};
|
|
20
|
-
export declare function extractUsedTable(table: SQLiteTable | Subquery | SQLiteViewBase | SQL): string[];
|
|
21
17
|
export type OnConflict = 'rollback' | 'abort' | 'fail' | 'ignore' | 'replace';
|
|
22
18
|
export declare function getViewConfig<TName extends string = string, TExisting extends boolean = boolean>(view: SQLiteView<TName, TExisting>): {
|
|
23
19
|
name: TName;
|
|
24
20
|
originalName: TName;
|
|
25
21
|
schema: string | undefined;
|
|
26
|
-
selectedFields: import("../
|
|
22
|
+
selectedFields: import("../index.js").ColumnsSelection;
|
|
27
23
|
isExisting: TExisting;
|
|
28
|
-
query: TExisting extends true ? undefined : SQL<unknown>;
|
|
24
|
+
query: TExisting extends true ? undefined : import("../index.js").SQL<unknown>;
|
|
29
25
|
isAlias: boolean;
|
|
30
26
|
};
|
package/sqlite-core/utils.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { is } from "../entity.js";
|
|
2
|
-
import { SQL } from "../sql/sql.js";
|
|
3
|
-
import { Subquery } from "../subquery.js";
|
|
4
2
|
import { Table } from "../table.js";
|
|
5
3
|
import { ViewBaseConfig } from "../view-common.js";
|
|
6
4
|
import { CheckBuilder } from "./checks.js";
|
|
@@ -45,18 +43,6 @@ function getTableConfig(table) {
|
|
|
45
43
|
name
|
|
46
44
|
};
|
|
47
45
|
}
|
|
48
|
-
function extractUsedTable(table) {
|
|
49
|
-
if (is(table, SQLiteTable)) {
|
|
50
|
-
return [`${table[Table.Symbol.BaseName]}`];
|
|
51
|
-
}
|
|
52
|
-
if (is(table, Subquery)) {
|
|
53
|
-
return table._.usedTables ?? [];
|
|
54
|
-
}
|
|
55
|
-
if (is(table, SQL)) {
|
|
56
|
-
return table.usedTables ?? [];
|
|
57
|
-
}
|
|
58
|
-
return [];
|
|
59
|
-
}
|
|
60
46
|
function getViewConfig(view) {
|
|
61
47
|
return {
|
|
62
48
|
...view[ViewBaseConfig]
|
|
@@ -64,7 +50,6 @@ function getViewConfig(view) {
|
|
|
64
50
|
};
|
|
65
51
|
}
|
|
66
52
|
export {
|
|
67
|
-
extractUsedTable,
|
|
68
53
|
getTableConfig,
|
|
69
54
|
getViewConfig
|
|
70
55
|
};
|
package/sqlite-core/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/sqlite-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/sqlite-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { Check } from './checks.ts';\nimport { CheckBuilder } from './checks.ts';\nimport type { ForeignKey } from './foreign-keys.ts';\nimport { ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport type { PrimaryKey } from './primary-keys.ts';\nimport { PrimaryKeyBuilder } from './primary-keys.ts';\nimport { SQLiteTable } from './table.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\nimport type { SQLiteView } from './view.ts';\n\nexport function getTableConfig<TTable extends SQLiteTable>(table: TTable) {\n\tconst columns = Object.values(table[SQLiteTable.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[SQLiteTable.Symbol.InlineForeignKeys]);\n\tconst name = table[Table.Symbol.Name];\n\n\tconst extraConfigBuilder = table[SQLiteTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[SQLiteTable.Symbol.Columns]);\n\t\tconst extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) as any[] : Object.values(extraConfig);\n\t\tfor (const builder of Object.values(extraValues)) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, CheckBuilder)) {\n\t\t\t\tchecks.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, ForeignKeyBuilder)) {\n\t\t\t\tforeignKeys.push(builder.build(table));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t};\n}\n\nexport type OnConflict = 'rollback' | 'abort' | 'fail' | 'ignore' | 'replace';\n\nexport function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: SQLiteView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t// ...view[SQLiteViewConfig],\n\t};\n}\n"],"mappings":"AAAA,SAAS,UAAU;AACnB,SAAS,aAAa;AACtB,SAAS,sBAAsB;AAE/B,SAAS,oBAAoB;AAE7B,SAAS,yBAAyB;AAElC,SAAS,oBAAoB;AAE7B,SAAS,yBAAyB;AAClC,SAAS,mBAAmB;AAC5B,SAAgC,+BAA+B;AAGxD,SAAS,eAA2C,OAAe;AACzE,QAAM,UAAU,OAAO,OAAO,MAAM,YAAY,OAAO,OAAO,CAAC;AAC/D,QAAM,UAAmB,CAAC;AAC1B,QAAM,SAAkB,CAAC;AACzB,QAAM,cAA4B,CAAC;AACnC,QAAM,oBAAwC,CAAC;AAC/C,QAAM,cAA4B,OAAO,OAAO,MAAM,YAAY,OAAO,iBAAiB,CAAC;AAC3F,QAAM,OAAO,MAAM,MAAM,OAAO,IAAI;AAEpC,QAAM,qBAAqB,MAAM,YAAY,OAAO,kBAAkB;AAEtE,MAAI,uBAAuB,QAAW;AACrC,UAAM,cAAc,mBAAmB,MAAM,YAAY,OAAO,OAAO,CAAC;AACxE,UAAM,cAAc,MAAM,QAAQ,WAAW,IAAI,YAAY,KAAK,CAAC,IAAa,OAAO,OAAO,WAAW;AACzG,eAAW,WAAW,OAAO,OAAO,WAAW,GAAG;AACjD,UAAI,GAAG,SAAS,YAAY,GAAG;AAC9B,gBAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAClC,WAAW,GAAG,SAAS,YAAY,GAAG;AACrC,eAAO,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACjC,WAAW,GAAG,SAAS,uBAAuB,GAAG;AAChD,0BAAkB,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAC5C,WAAW,GAAG,SAAS,iBAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,WAAW,GAAG,SAAS,iBAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAIO,SAAS,cAGd,MAAoC;AACrC,SAAO;AAAA,IACN,GAAG,KAAK,cAAc;AAAA;AAAA,EAEvB;AACD;","names":[]}
|
package/sqlite-proxy/driver.cjs
CHANGED
|
@@ -37,7 +37,6 @@ class SqliteRemoteDatabase extends import_db.BaseSQLiteDatabase {
|
|
|
37
37
|
function drizzle(callback, batchCallback, config) {
|
|
38
38
|
const dialect = new import_dialect.SQLiteAsyncDialect({ casing: config?.casing });
|
|
39
39
|
let logger;
|
|
40
|
-
let cache;
|
|
41
40
|
let _batchCallback;
|
|
42
41
|
let _config = {};
|
|
43
42
|
if (batchCallback) {
|
|
@@ -52,7 +51,6 @@ function drizzle(callback, batchCallback, config) {
|
|
|
52
51
|
logger = new import_logger.DefaultLogger();
|
|
53
52
|
} else if (_config.logger !== false) {
|
|
54
53
|
logger = _config.logger;
|
|
55
|
-
cache = _config.cache;
|
|
56
54
|
}
|
|
57
55
|
}
|
|
58
56
|
let schema;
|
|
@@ -67,13 +65,8 @@ function drizzle(callback, batchCallback, config) {
|
|
|
67
65
|
tableNamesMap: tablesConfig.tableNamesMap
|
|
68
66
|
};
|
|
69
67
|
}
|
|
70
|
-
const session = new import_session.SQLiteRemoteSession(callback, dialect, schema, _batchCallback, { logger
|
|
71
|
-
|
|
72
|
-
db.$cache = cache;
|
|
73
|
-
if (db.$cache) {
|
|
74
|
-
db.$cache["invalidate"] = cache?.onMutate;
|
|
75
|
-
}
|
|
76
|
-
return db;
|
|
68
|
+
const session = new import_session.SQLiteRemoteSession(callback, dialect, schema, _batchCallback, { logger });
|
|
69
|
+
return new SqliteRemoteDatabase("async", dialect, session, schema);
|
|
77
70
|
}
|
|
78
71
|
// Annotate the CommonJS export names for ESM import in node:
|
|
79
72
|
0 && (module.exports = {
|