drizzle-orm 1.0.0-beta.22-eaa25cd → 1.0.0-beta.22-46020ee
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/common/index.d.cts +1 -1
- package/aws-data-api/common/index.d.ts +1 -1
- package/aws-data-api/pg/codecs.cjs +162 -0
- package/aws-data-api/pg/codecs.cjs.map +1 -0
- package/aws-data-api/pg/codecs.d.cts +9 -0
- package/aws-data-api/pg/codecs.d.ts +9 -0
- package/aws-data-api/pg/codecs.js +160 -0
- package/aws-data-api/pg/codecs.js.map +1 -0
- package/aws-data-api/pg/driver.cjs +4 -157
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.d.cts +1 -5
- package/aws-data-api/pg/driver.d.ts +1 -5
- package/aws-data-api/pg/driver.js +4 -156
- package/aws-data-api/pg/driver.js.map +1 -1
- package/aws-data-api/pg/index.cjs +2 -1
- package/aws-data-api/pg/index.d.cts +2 -1
- package/aws-data-api/pg/index.d.ts +2 -1
- package/aws-data-api/pg/index.js +2 -1
- package/better-sqlite3/driver.cjs +2 -1
- package/better-sqlite3/driver.cjs.map +1 -1
- package/better-sqlite3/driver.js +2 -1
- package/better-sqlite3/driver.js.map +1 -1
- package/better-sqlite3/session.cjs +8 -8
- package/better-sqlite3/session.cjs.map +1 -1
- package/better-sqlite3/session.d.cts +3 -3
- package/better-sqlite3/session.d.ts +3 -3
- package/better-sqlite3/session.js +8 -8
- package/better-sqlite3/session.js.map +1 -1
- package/bun-sql/mysql/driver.cjs +2 -1
- package/bun-sql/mysql/driver.cjs.map +1 -1
- package/bun-sql/mysql/driver.js +2 -1
- package/bun-sql/mysql/driver.js.map +1 -1
- package/bun-sql/mysql/session.cjs +8 -8
- package/bun-sql/mysql/session.cjs.map +1 -1
- package/bun-sql/mysql/session.d.cts +3 -3
- package/bun-sql/mysql/session.d.ts +3 -3
- package/bun-sql/mysql/session.js +8 -8
- package/bun-sql/mysql/session.js.map +1 -1
- package/bun-sql/postgres/codecs.cjs +176 -0
- package/bun-sql/postgres/codecs.cjs.map +1 -0
- package/bun-sql/postgres/codecs.d.cts +9 -0
- package/bun-sql/postgres/codecs.d.ts +9 -0
- package/bun-sql/postgres/codecs.js +174 -0
- package/bun-sql/postgres/codecs.js.map +1 -0
- package/bun-sql/postgres/driver.cjs +4 -171
- package/bun-sql/postgres/driver.cjs.map +1 -1
- package/bun-sql/postgres/driver.d.cts +1 -5
- package/bun-sql/postgres/driver.d.ts +1 -5
- package/bun-sql/postgres/driver.js +4 -170
- package/bun-sql/postgres/driver.js.map +1 -1
- package/bun-sql/postgres/index.cjs +2 -1
- package/bun-sql/postgres/index.d.cts +2 -1
- package/bun-sql/postgres/index.d.ts +2 -1
- package/bun-sql/postgres/index.js +2 -1
- package/bun-sql/sqlite/driver.cjs +2 -1
- package/bun-sql/sqlite/driver.cjs.map +1 -1
- package/bun-sql/sqlite/driver.js +2 -1
- package/bun-sql/sqlite/driver.js.map +1 -1
- package/bun-sql/sqlite/session.cjs +8 -8
- package/bun-sql/sqlite/session.cjs.map +1 -1
- package/bun-sql/sqlite/session.d.cts +3 -3
- package/bun-sql/sqlite/session.d.ts +3 -3
- package/bun-sql/sqlite/session.js +8 -8
- package/bun-sql/sqlite/session.js.map +1 -1
- package/bun-sqlite/driver.cjs +2 -1
- package/bun-sqlite/driver.cjs.map +1 -1
- package/bun-sqlite/driver.js +2 -1
- package/bun-sqlite/driver.js.map +1 -1
- package/bun-sqlite/session.cjs +8 -8
- package/bun-sqlite/session.cjs.map +1 -1
- package/bun-sqlite/session.d.cts +3 -3
- package/bun-sqlite/session.d.ts +3 -3
- package/bun-sqlite/session.js +8 -8
- package/bun-sqlite/session.js.map +1 -1
- package/cockroach/driver.cjs +3 -2
- package/cockroach/driver.cjs.map +1 -1
- package/cockroach/driver.d.cts +1 -1
- package/cockroach/driver.d.ts +1 -1
- package/cockroach/driver.js +3 -2
- package/cockroach/driver.js.map +1 -1
- package/cockroach/session.cjs +4 -4
- package/cockroach/session.cjs.map +1 -1
- package/cockroach/session.d.cts +3 -3
- package/cockroach/session.d.ts +3 -3
- package/cockroach/session.js +4 -4
- package/cockroach/session.js.map +1 -1
- package/durable-sqlite/driver.cjs +2 -1
- package/durable-sqlite/driver.cjs.map +1 -1
- package/durable-sqlite/driver.js +2 -1
- package/durable-sqlite/driver.js.map +1 -1
- package/durable-sqlite/session.cjs +8 -8
- package/durable-sqlite/session.cjs.map +1 -1
- package/durable-sqlite/session.d.cts +3 -3
- package/durable-sqlite/session.d.ts +3 -3
- package/durable-sqlite/session.js +8 -8
- package/durable-sqlite/session.js.map +1 -1
- package/effect-postgres/codecs.cjs +175 -0
- package/effect-postgres/codecs.cjs.map +1 -0
- package/effect-postgres/codecs.d.cts +9 -0
- package/effect-postgres/codecs.d.ts +9 -0
- package/effect-postgres/codecs.js +173 -0
- package/effect-postgres/codecs.js.map +1 -0
- package/effect-postgres/driver.cjs +5 -171
- package/effect-postgres/driver.cjs.map +1 -1
- package/effect-postgres/driver.d.cts +3 -7
- package/effect-postgres/driver.d.ts +3 -7
- package/effect-postgres/driver.js +5 -170
- package/effect-postgres/driver.js.map +1 -1
- package/effect-postgres/index.cjs +2 -1
- package/effect-postgres/index.d.cts +2 -1
- package/effect-postgres/index.d.ts +2 -1
- package/effect-postgres/index.js +2 -1
- package/effect-postgres/migrator.d.cts +1 -1
- package/effect-postgres/migrator.d.ts +1 -1
- package/effect-postgres/session.cjs.map +1 -1
- package/effect-postgres/session.d.cts +1 -1
- package/effect-postgres/session.d.ts +1 -1
- package/effect-postgres/session.js.map +1 -1
- package/expo-sqlite/driver.cjs +2 -1
- package/expo-sqlite/driver.cjs.map +1 -1
- package/expo-sqlite/driver.js +2 -1
- package/expo-sqlite/driver.js.map +1 -1
- package/expo-sqlite/session.cjs +8 -8
- package/expo-sqlite/session.cjs.map +1 -1
- package/expo-sqlite/session.d.cts +3 -3
- package/expo-sqlite/session.d.ts +3 -3
- package/expo-sqlite/session.js +8 -8
- package/expo-sqlite/session.js.map +1 -1
- package/index.cjs +1 -0
- package/index.js +2 -2
- package/libsql/driver-core.cjs +2 -1
- package/libsql/driver-core.cjs.map +1 -1
- package/libsql/driver-core.js +2 -1
- package/libsql/driver-core.js.map +1 -1
- package/libsql/session.cjs +8 -8
- package/libsql/session.cjs.map +1 -1
- package/libsql/session.d.cts +3 -3
- package/libsql/session.d.ts +3 -3
- package/libsql/session.js +8 -8
- package/libsql/session.js.map +1 -1
- package/mysql-proxy/driver.cjs +2 -1
- package/mysql-proxy/driver.cjs.map +1 -1
- package/mysql-proxy/driver.js +2 -1
- package/mysql-proxy/driver.js.map +1 -1
- package/mysql-proxy/session.cjs +6 -6
- package/mysql-proxy/session.cjs.map +1 -1
- package/mysql-proxy/session.d.cts +3 -3
- package/mysql-proxy/session.d.ts +3 -3
- package/mysql-proxy/session.js +6 -6
- package/mysql-proxy/session.js.map +1 -1
- package/mysql2/driver.cjs +2 -1
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.d.cts +1 -1
- package/mysql2/driver.d.ts +1 -1
- package/mysql2/driver.js +2 -1
- package/mysql2/driver.js.map +1 -1
- package/mysql2/session.cjs +7 -7
- package/mysql2/session.cjs.map +1 -1
- package/mysql2/session.d.cts +3 -3
- package/mysql2/session.d.ts +3 -3
- package/mysql2/session.js +7 -7
- package/mysql2/session.js.map +1 -1
- package/neon-http/codecs.cjs +66 -0
- package/neon-http/codecs.cjs.map +1 -0
- package/neon-http/codecs.d.cts +9 -0
- package/neon-http/codecs.d.ts +9 -0
- package/neon-http/codecs.js +64 -0
- package/neon-http/codecs.js.map +1 -0
- package/neon-http/driver.cjs +4 -61
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.d.cts +1 -5
- package/neon-http/driver.d.ts +1 -5
- package/neon-http/driver.js +4 -60
- package/neon-http/driver.js.map +1 -1
- package/neon-http/index.cjs +2 -1
- package/neon-http/index.d.cts +2 -1
- package/neon-http/index.d.ts +2 -1
- package/neon-http/index.js +2 -1
- package/neon-serverless/codecs.cjs +65 -0
- package/neon-serverless/codecs.cjs.map +1 -0
- package/neon-serverless/codecs.d.cts +9 -0
- package/neon-serverless/codecs.d.ts +9 -0
- package/neon-serverless/codecs.js +63 -0
- package/neon-serverless/codecs.js.map +1 -0
- package/neon-serverless/driver.cjs +4 -60
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.d.cts +2 -6
- package/neon-serverless/driver.d.ts +2 -6
- package/neon-serverless/driver.js +4 -59
- package/neon-serverless/driver.js.map +1 -1
- package/neon-serverless/index.cjs +2 -1
- package/neon-serverless/index.d.cts +2 -1
- package/neon-serverless/index.d.ts +2 -1
- package/neon-serverless/index.js +2 -1
- package/netlify-db/codecs.cjs +122 -0
- package/netlify-db/codecs.cjs.map +1 -0
- package/netlify-db/codecs.d.cts +10 -0
- package/netlify-db/codecs.d.ts +10 -0
- package/netlify-db/codecs.js +119 -0
- package/netlify-db/codecs.js.map +1 -0
- package/netlify-db/driver.cjs +4 -118
- package/netlify-db/driver.cjs.map +1 -1
- package/netlify-db/driver.d.cts +1 -6
- package/netlify-db/driver.d.ts +1 -6
- package/netlify-db/driver.js +4 -116
- package/netlify-db/driver.js.map +1 -1
- package/netlify-db/index.cjs +3 -2
- package/netlify-db/index.d.cts +2 -1
- package/netlify-db/index.d.ts +2 -1
- package/netlify-db/index.js +2 -1
- package/netlify-db/session.d.ts +1 -1
- package/node-mssql/driver.cjs +3 -2
- package/node-mssql/driver.cjs.map +1 -1
- package/node-mssql/driver.d.cts +1 -1
- package/node-mssql/driver.d.ts +1 -1
- package/node-mssql/driver.js +3 -2
- package/node-mssql/driver.js.map +1 -1
- package/node-mssql/session.cjs +5 -5
- package/node-mssql/session.cjs.map +1 -1
- package/node-mssql/session.d.cts +3 -3
- package/node-mssql/session.d.ts +3 -3
- package/node-mssql/session.js +5 -5
- package/node-mssql/session.js.map +1 -1
- package/node-postgres/codecs.cjs +65 -0
- package/node-postgres/codecs.cjs.map +1 -0
- package/node-postgres/codecs.d.cts +9 -0
- package/node-postgres/codecs.d.ts +9 -0
- package/node-postgres/codecs.js +63 -0
- package/node-postgres/codecs.js.map +1 -0
- package/node-postgres/driver.cjs +4 -60
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.d.cts +1 -5
- package/node-postgres/driver.d.ts +1 -5
- package/node-postgres/driver.js +4 -59
- package/node-postgres/driver.js.map +1 -1
- package/node-postgres/index.cjs +2 -1
- package/node-postgres/index.d.cts +2 -1
- package/node-postgres/index.d.ts +2 -1
- package/node-postgres/index.js +2 -1
- package/node-sqlite/driver.cjs +5 -1
- package/node-sqlite/driver.cjs.map +1 -1
- package/node-sqlite/driver.js +5 -1
- package/node-sqlite/driver.js.map +1 -1
- package/node-sqlite/session.cjs +14 -8
- package/node-sqlite/session.cjs.map +1 -1
- package/node-sqlite/session.d.cts +8 -3
- package/node-sqlite/session.d.ts +8 -3
- package/node-sqlite/session.js +15 -9
- package/node-sqlite/session.js.map +1 -1
- package/op-sqlite/driver.cjs +2 -1
- package/op-sqlite/driver.cjs.map +1 -1
- package/op-sqlite/driver.js +2 -1
- package/op-sqlite/driver.js.map +1 -1
- package/op-sqlite/session.cjs +8 -8
- package/op-sqlite/session.cjs.map +1 -1
- package/op-sqlite/session.d.cts +3 -3
- package/op-sqlite/session.d.ts +3 -3
- package/op-sqlite/session.js +8 -8
- package/op-sqlite/session.js.map +1 -1
- package/package.json +133 -1
- package/pg-core/effect/session.d.cts +1 -1
- package/pg-core/effect/session.d.ts +1 -1
- package/pg-proxy/driver.cjs +4 -4
- package/pg-proxy/driver.cjs.map +1 -1
- package/pg-proxy/driver.d.ts +1 -1
- package/pg-proxy/driver.js +4 -4
- package/pg-proxy/driver.js.map +1 -1
- package/pg-proxy/session.cjs.map +1 -1
- package/pg-proxy/session.d.cts +0 -1
- package/pg-proxy/session.d.ts +0 -1
- package/pg-proxy/session.js.map +1 -1
- package/pglite/codecs.cjs +92 -0
- package/pglite/codecs.cjs.map +1 -0
- package/pglite/codecs.d.cts +9 -0
- package/pglite/codecs.d.ts +9 -0
- package/pglite/codecs.js +90 -0
- package/pglite/codecs.js.map +1 -0
- package/pglite/driver.cjs +3 -86
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.d.cts +1 -5
- package/pglite/driver.d.ts +1 -5
- package/pglite/driver.js +4 -86
- package/pglite/driver.js.map +1 -1
- package/pglite/index.cjs +2 -1
- package/pglite/index.d.cts +2 -1
- package/pglite/index.d.ts +2 -1
- package/pglite/index.js +2 -1
- package/planetscale-serverless/driver.cjs +2 -1
- package/planetscale-serverless/driver.cjs.map +1 -1
- package/planetscale-serverless/driver.d.cts +1 -1
- package/planetscale-serverless/driver.d.ts +1 -1
- package/planetscale-serverless/driver.js +2 -1
- package/planetscale-serverless/driver.js.map +1 -1
- package/planetscale-serverless/session.cjs +6 -6
- package/planetscale-serverless/session.cjs.map +1 -1
- package/planetscale-serverless/session.d.cts +3 -3
- package/planetscale-serverless/session.d.ts +3 -3
- package/planetscale-serverless/session.js +6 -6
- package/planetscale-serverless/session.js.map +1 -1
- package/postgres-js/codecs.cjs +147 -0
- package/postgres-js/codecs.cjs.map +1 -0
- package/postgres-js/codecs.d.cts +9 -0
- package/postgres-js/codecs.d.ts +9 -0
- package/postgres-js/codecs.js +145 -0
- package/postgres-js/codecs.js.map +1 -0
- package/postgres-js/driver.cjs +4 -142
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.d.cts +1 -5
- package/postgres-js/driver.d.ts +1 -5
- package/postgres-js/driver.js +4 -141
- package/postgres-js/driver.js.map +1 -1
- package/postgres-js/index.cjs +2 -1
- package/postgres-js/index.d.cts +2 -1
- package/postgres-js/index.d.ts +2 -1
- package/postgres-js/index.js +2 -1
- package/singlestore/driver.cjs +3 -2
- 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 -2
- package/singlestore/driver.js.map +1 -1
- package/singlestore/session.cjs +7 -7
- package/singlestore/session.cjs.map +1 -1
- package/singlestore/session.d.cts +3 -3
- package/singlestore/session.d.ts +3 -3
- package/singlestore/session.js +7 -7
- package/singlestore/session.js.map +1 -1
- package/singlestore-proxy/driver.cjs +2 -1
- package/singlestore-proxy/driver.cjs.map +1 -1
- package/singlestore-proxy/driver.js +2 -1
- package/singlestore-proxy/driver.js.map +1 -1
- package/singlestore-proxy/session.cjs +6 -6
- package/singlestore-proxy/session.cjs.map +1 -1
- package/singlestore-proxy/session.d.cts +3 -3
- package/singlestore-proxy/session.d.ts +3 -3
- package/singlestore-proxy/session.js +6 -6
- package/singlestore-proxy/session.js.map +1 -1
- package/sql-js/driver.cjs +2 -1
- package/sql-js/driver.cjs.map +1 -1
- package/sql-js/driver.js +2 -1
- package/sql-js/driver.js.map +1 -1
- package/sql-js/session.cjs +8 -8
- package/sql-js/session.cjs.map +1 -1
- package/sql-js/session.d.cts +3 -3
- package/sql-js/session.d.ts +3 -3
- package/sql-js/session.js +8 -8
- package/sql-js/session.js.map +1 -1
- package/sqlite-cloud/driver.cjs +2 -1
- package/sqlite-cloud/driver.cjs.map +1 -1
- package/sqlite-cloud/driver.js +2 -1
- package/sqlite-cloud/driver.js.map +1 -1
- package/sqlite-cloud/session.cjs +8 -8
- package/sqlite-cloud/session.cjs.map +1 -1
- package/sqlite-cloud/session.d.cts +3 -3
- package/sqlite-cloud/session.d.ts +3 -3
- package/sqlite-cloud/session.js +8 -8
- package/sqlite-cloud/session.js.map +1 -1
- package/sqlite-proxy/driver.cjs +2 -1
- package/sqlite-proxy/driver.cjs.map +1 -1
- package/sqlite-proxy/driver.js +2 -1
- package/sqlite-proxy/driver.js.map +1 -1
- package/sqlite-proxy/session.cjs +8 -8
- package/sqlite-proxy/session.cjs.map +1 -1
- package/sqlite-proxy/session.d.cts +3 -3
- package/sqlite-proxy/session.d.ts +3 -3
- package/sqlite-proxy/session.js +8 -8
- package/sqlite-proxy/session.js.map +1 -1
- package/tidb-serverless/driver.cjs +2 -1
- package/tidb-serverless/driver.cjs.map +1 -1
- package/tidb-serverless/driver.d.cts +1 -1
- package/tidb-serverless/driver.d.ts +1 -1
- package/tidb-serverless/driver.js +2 -1
- package/tidb-serverless/driver.js.map +1 -1
- package/tidb-serverless/session.cjs +6 -6
- package/tidb-serverless/session.cjs.map +1 -1
- package/tidb-serverless/session.d.cts +3 -3
- package/tidb-serverless/session.d.ts +3 -3
- package/tidb-serverless/session.js +6 -6
- package/tidb-serverless/session.js.map +1 -1
- package/tursodatabase/driver-core.cjs +2 -1
- package/tursodatabase/driver-core.cjs.map +1 -1
- package/tursodatabase/driver-core.js +2 -1
- package/tursodatabase/driver-core.js.map +1 -1
- package/tursodatabase/session.cjs +8 -8
- package/tursodatabase/session.cjs.map +1 -1
- package/tursodatabase/session.d.cts +3 -3
- package/tursodatabase/session.d.ts +3 -3
- package/tursodatabase/session.js +8 -8
- package/tursodatabase/session.js.map +1 -1
- package/utils.cjs +17 -0
- package/utils.cjs.map +1 -1
- package/utils.js +17 -1
- package/utils.js.map +1 -1
- package/vercel-postgres/codecs.cjs +65 -0
- package/vercel-postgres/codecs.cjs.map +1 -0
- package/vercel-postgres/codecs.d.cts +9 -0
- package/vercel-postgres/codecs.d.ts +9 -0
- package/vercel-postgres/codecs.js +63 -0
- package/vercel-postgres/codecs.js.map +1 -0
- package/vercel-postgres/driver.cjs +3 -60
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.d.cts +1 -5
- package/vercel-postgres/driver.d.ts +1 -5
- package/vercel-postgres/driver.js +4 -60
- package/vercel-postgres/driver.js.map +1 -1
- package/vercel-postgres/index.cjs +2 -1
- package/vercel-postgres/index.d.cts +2 -1
- package/vercel-postgres/index.d.ts +2 -1
- package/vercel-postgres/index.js +2 -1
- package/version.cjs +1 -1
- package/version.cjs.map +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
- package/xata-http/codecs.cjs +168 -0
- package/xata-http/codecs.cjs.map +1 -0
- package/xata-http/codecs.d.cts +9 -0
- package/xata-http/codecs.d.ts +9 -0
- package/xata-http/codecs.js +166 -0
- package/xata-http/codecs.js.map +1 -0
- package/xata-http/driver.cjs +4 -163
- package/xata-http/driver.cjs.map +1 -1
- package/xata-http/driver.d.cts +1 -5
- package/xata-http/driver.d.ts +1 -5
- package/xata-http/driver.js +4 -162
- package/xata-http/driver.js.map +1 -1
- package/xata-http/index.cjs +2 -1
- package/xata-http/index.d.cts +2 -1
- package/xata-http/index.d.ts +2 -1
- package/xata-http/index.js +2 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { effectPgCodecs } from "./codecs.js";
|
|
1
2
|
import { EffectPgSession } from "./session.js";
|
|
2
3
|
import { entityKind } from "../entity.js";
|
|
3
|
-
import {
|
|
4
|
-
import { arrayCompatNormalize, arrayCompatNormalizeInput, castToText, castToTextArr, parseGeometryTuple, parseGeometryXY, parsePgArrayAndNormalize, refineGenericPgCodecs, textToDate, textToDateWithTz } from "../pg-core/codecs.js";
|
|
4
|
+
import { jitCompatCheck } from "../utils.js";
|
|
5
5
|
import { PgDialect } from "../pg-core/dialect.js";
|
|
6
6
|
import { PgClient } from "@effect/sql-pg/PgClient";
|
|
7
7
|
import * as Effect from "effect/Effect";
|
|
@@ -15,171 +15,6 @@ var EffectPgDatabase = class extends PgEffectDatabase {
|
|
|
15
15
|
static [entityKind] = "EffectPgDatabase";
|
|
16
16
|
};
|
|
17
17
|
const DefaultServices = Layer.merge(EffectCache.Default, EffectLogger.Default);
|
|
18
|
-
const effectPgCodecs = refineGenericPgCodecs({
|
|
19
|
-
bigint: {
|
|
20
|
-
normalize: BigInt,
|
|
21
|
-
normalizeArray: arrayCompatNormalize(BigInt),
|
|
22
|
-
normalizeParamArray: makePgArray
|
|
23
|
-
},
|
|
24
|
-
bigserial: {
|
|
25
|
-
normalize: BigInt,
|
|
26
|
-
normalizeArray: arrayCompatNormalize(BigInt),
|
|
27
|
-
normalizeParamArray: makePgArray
|
|
28
|
-
},
|
|
29
|
-
bit: {
|
|
30
|
-
normalizeArray: parsePgArray,
|
|
31
|
-
normalizeParamArray: makePgArray
|
|
32
|
-
},
|
|
33
|
-
date: {
|
|
34
|
-
cast: castToText,
|
|
35
|
-
castArray: castToTextArr,
|
|
36
|
-
normalize: textToDate,
|
|
37
|
-
normalizeArray: arrayCompatNormalize(textToDate),
|
|
38
|
-
normalizeParamArray: makePgArray
|
|
39
|
-
},
|
|
40
|
-
"date:string": {
|
|
41
|
-
cast: castToText,
|
|
42
|
-
castArray: castToTextArr,
|
|
43
|
-
normalizeParamArray: makePgArray
|
|
44
|
-
},
|
|
45
|
-
geometry: {
|
|
46
|
-
normalizeArray: parsePgArrayAndNormalize(parseGeometryXY),
|
|
47
|
-
normalizeParamArray: makePgArray
|
|
48
|
-
},
|
|
49
|
-
"geometry:tuple": {
|
|
50
|
-
normalizeArray: parsePgArrayAndNormalize(parseGeometryTuple),
|
|
51
|
-
normalizeParamArray: makePgArray
|
|
52
|
-
},
|
|
53
|
-
interval: {
|
|
54
|
-
cast: castToText,
|
|
55
|
-
castArray: castToTextArr,
|
|
56
|
-
normalizeParamArray: makePgArray
|
|
57
|
-
},
|
|
58
|
-
line: {
|
|
59
|
-
cast: castToText,
|
|
60
|
-
castArray: castToTextArr,
|
|
61
|
-
normalizeParamArray: makePgArray
|
|
62
|
-
},
|
|
63
|
-
"line:tuple": {
|
|
64
|
-
cast: castToText,
|
|
65
|
-
castArray: castToTextArr,
|
|
66
|
-
normalizeParamArray: makePgArray
|
|
67
|
-
},
|
|
68
|
-
macaddr8: {
|
|
69
|
-
castArrayInJson: castToTextArr,
|
|
70
|
-
castArray: castToTextArr,
|
|
71
|
-
normalizeParamArray: makePgArray
|
|
72
|
-
},
|
|
73
|
-
point: {
|
|
74
|
-
cast: castToText,
|
|
75
|
-
castArray: castToTextArr,
|
|
76
|
-
normalizeParamArray: makePgArray
|
|
77
|
-
},
|
|
78
|
-
"point:tuple": {
|
|
79
|
-
cast: castToText,
|
|
80
|
-
castArray: castToTextArr,
|
|
81
|
-
normalizeParamArray: makePgArray
|
|
82
|
-
},
|
|
83
|
-
timestamp: {
|
|
84
|
-
cast: castToText,
|
|
85
|
-
castArray: castToTextArr,
|
|
86
|
-
normalize: textToDateWithTz,
|
|
87
|
-
normalizeArray: arrayCompatNormalize(textToDateWithTz),
|
|
88
|
-
normalizeParamArray: makePgArray
|
|
89
|
-
},
|
|
90
|
-
timestamptz: {
|
|
91
|
-
cast: castToText,
|
|
92
|
-
castArray: castToTextArr,
|
|
93
|
-
normalize: textToDate,
|
|
94
|
-
normalizeArray: arrayCompatNormalize(textToDate),
|
|
95
|
-
normalizeParamArray: makePgArray
|
|
96
|
-
},
|
|
97
|
-
"timestamp:string": {
|
|
98
|
-
cast: castToText,
|
|
99
|
-
castArray: castToTextArr,
|
|
100
|
-
normalizeParamArray: makePgArray
|
|
101
|
-
},
|
|
102
|
-
"timestamptz:string": {
|
|
103
|
-
cast: castToText,
|
|
104
|
-
castArray: castToTextArr,
|
|
105
|
-
normalizeParamArray: makePgArray
|
|
106
|
-
},
|
|
107
|
-
json: {
|
|
108
|
-
normalizeParam: (v) => JSON.stringify(v),
|
|
109
|
-
normalizeParamArray: arrayCompatNormalizeInput((v) => JSON.stringify(v), true)
|
|
110
|
-
},
|
|
111
|
-
jsonb: {
|
|
112
|
-
normalizeParam: (v) => JSON.stringify(v),
|
|
113
|
-
normalizeParamArray: arrayCompatNormalizeInput((v) => JSON.stringify(v), true)
|
|
114
|
-
},
|
|
115
|
-
bool: { normalizeParamArray: makePgArray },
|
|
116
|
-
box: { normalizeParamArray: makePgArray },
|
|
117
|
-
box2d: { normalizeParamArray: makePgArray },
|
|
118
|
-
box3d: { normalizeParamArray: makePgArray },
|
|
119
|
-
char: { normalizeParamArray: makePgArray },
|
|
120
|
-
cidr: { normalizeParamArray: makePgArray },
|
|
121
|
-
circle: { normalizeParamArray: makePgArray },
|
|
122
|
-
datemultirange: { normalizeParamArray: makePgArray },
|
|
123
|
-
daterange: { normalizeParamArray: makePgArray },
|
|
124
|
-
float8: { normalizeParamArray: makePgArray },
|
|
125
|
-
geography: { normalizeParamArray: makePgArray },
|
|
126
|
-
inet: { normalizeParamArray: makePgArray },
|
|
127
|
-
int4multirange: { normalizeParamArray: makePgArray },
|
|
128
|
-
int4range: { normalizeParamArray: makePgArray },
|
|
129
|
-
int8multirange: { normalizeParamArray: makePgArray },
|
|
130
|
-
int8range: { normalizeParamArray: makePgArray },
|
|
131
|
-
lseg: { normalizeParamArray: makePgArray },
|
|
132
|
-
macaddr: { normalizeParamArray: makePgArray },
|
|
133
|
-
money: { normalizeParamArray: makePgArray },
|
|
134
|
-
nummultirange: { normalizeParamArray: makePgArray },
|
|
135
|
-
numrange: { normalizeParamArray: makePgArray },
|
|
136
|
-
oid: { normalizeParamArray: makePgArray },
|
|
137
|
-
path: { normalizeParamArray: makePgArray },
|
|
138
|
-
polygon: { normalizeParamArray: makePgArray },
|
|
139
|
-
raster: { normalizeParamArray: makePgArray },
|
|
140
|
-
regclass: { normalizeParamArray: makePgArray },
|
|
141
|
-
regconfig: { normalizeParamArray: makePgArray },
|
|
142
|
-
regdictionary: { normalizeParamArray: makePgArray },
|
|
143
|
-
regnamespace: { normalizeParamArray: makePgArray },
|
|
144
|
-
regoper: { normalizeParamArray: makePgArray },
|
|
145
|
-
regoperator: { normalizeParamArray: makePgArray },
|
|
146
|
-
regproc: { normalizeParamArray: makePgArray },
|
|
147
|
-
regprocedure: { normalizeParamArray: makePgArray },
|
|
148
|
-
regrole: { normalizeParamArray: makePgArray },
|
|
149
|
-
regtype: { normalizeParamArray: makePgArray },
|
|
150
|
-
serial: { normalizeParamArray: makePgArray },
|
|
151
|
-
smallint: { normalizeParamArray: makePgArray },
|
|
152
|
-
smallserial: { normalizeParamArray: makePgArray },
|
|
153
|
-
text: { normalizeParamArray: makePgArray },
|
|
154
|
-
time: { normalizeParamArray: makePgArray },
|
|
155
|
-
timetz: { normalizeParamArray: makePgArray },
|
|
156
|
-
tsmultirange: { normalizeParamArray: makePgArray },
|
|
157
|
-
tsquery: { normalizeParamArray: makePgArray },
|
|
158
|
-
tsrange: { normalizeParamArray: makePgArray },
|
|
159
|
-
tstzmultirange: { normalizeParamArray: makePgArray },
|
|
160
|
-
tstzrange: { normalizeParamArray: makePgArray },
|
|
161
|
-
tsvector: { normalizeParamArray: makePgArray },
|
|
162
|
-
varbit: { normalizeParamArray: makePgArray },
|
|
163
|
-
varchar: { normalizeParamArray: makePgArray },
|
|
164
|
-
xml: { normalizeParamArray: makePgArray },
|
|
165
|
-
bytea: { normalizeParamArray: makePgArray },
|
|
166
|
-
enum: { normalizeParamArray: makePgArray },
|
|
167
|
-
numeric: { normalizeParamArray: makePgArray },
|
|
168
|
-
"numeric:number": { normalizeParamArray: makePgArray },
|
|
169
|
-
"numeric:bigint": { normalizeParamArray: makePgArray },
|
|
170
|
-
"bigint:number": { normalizeParamArray: makePgArray },
|
|
171
|
-
"bigint:string": { normalizeParamArray: makePgArray },
|
|
172
|
-
"bigserial:number": { normalizeParamArray: makePgArray },
|
|
173
|
-
float4: { normalizeParamArray: makePgArray },
|
|
174
|
-
int: { normalizeParamArray: makePgArray },
|
|
175
|
-
uuid: { normalizeParamArray: makePgArray },
|
|
176
|
-
halfvec: { normalizeParamArray: makePgArray },
|
|
177
|
-
sparsevec: {
|
|
178
|
-
normalizeArray: parsePgArray,
|
|
179
|
-
normalizeParamArray: makePgArray
|
|
180
|
-
},
|
|
181
|
-
vector: { normalizeParamArray: makePgArray }
|
|
182
|
-
});
|
|
183
18
|
/**
|
|
184
19
|
* Creates an EffectPgDatabase instance.
|
|
185
20
|
*
|
|
@@ -211,14 +46,14 @@ const make = Effect.fn("PgDrizzle.make")(function* (config = {}) {
|
|
|
211
46
|
const cache = yield* EffectCache;
|
|
212
47
|
const logger = yield* EffectLogger;
|
|
213
48
|
const dialect = new PgDialect({
|
|
214
|
-
useJitMappers: config.useJitMappers,
|
|
49
|
+
useJitMappers: jitCompatCheck(config.useJitMappers),
|
|
215
50
|
codecs: config.codecs ?? effectPgCodecs
|
|
216
51
|
});
|
|
217
52
|
const relations = config.relations ?? {};
|
|
218
53
|
const db = new EffectPgDatabase(dialect, new EffectPgSession(client, dialect, relations, {
|
|
219
54
|
logger,
|
|
220
55
|
cache,
|
|
221
|
-
|
|
56
|
+
useJitMappers: jitCompatCheck(config.useJitMappers)
|
|
222
57
|
}), relations);
|
|
223
58
|
db.$client = client;
|
|
224
59
|
db.$cache = cache;
|
|
@@ -231,5 +66,5 @@ const make = Effect.fn("PgDrizzle.make")(function* (config = {}) {
|
|
|
231
66
|
const makeWithDefaults = (config = {}) => make(config).pipe(Effect.provide(DefaultServices));
|
|
232
67
|
|
|
233
68
|
//#endregion
|
|
234
|
-
export { DefaultServices, EffectPgDatabase,
|
|
69
|
+
export { DefaultServices, EffectPgDatabase, make, makeWithDefaults };
|
|
235
70
|
//# sourceMappingURL=driver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","names":[],"sources":["../../src/effect-postgres/driver.ts"],"sourcesContent":["import { PgClient } from '@effect/sql-pg/PgClient';\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\nimport { EffectCache } from '~/cache/core/cache-effect.ts';\nimport { EffectLogger } from '~/effect-core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport { makePgArray, parsePgArray } from '~/pg-core/array.ts';\nimport {\n\tarrayCompatNormalize,\n\tarrayCompatNormalizeInput,\n\tcastToText,\n\tcastToTextArr,\n\tparseGeometryTuple,\n\tparseGeometryXY,\n\tparsePgArrayAndNormalize,\n\trefineGenericPgCodecs,\n\ttextToDate,\n\ttextToDateWithTz,\n} from '~/pg-core/codecs.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgEffectDatabase } from '~/pg-core/effect/db.ts';\nimport type { DrizzlePgConfig } from '~/pg-core/utils.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { type EffectPgQueryEffectHKT, type EffectPgQueryResultHKT, EffectPgSession } from './session.ts';\n\nexport class EffectPgDatabase<TRelations extends AnyRelations = EmptyRelations>\n\textends PgEffectDatabase<EffectPgQueryEffectHKT, EffectPgQueryResultHKT, TRelations>\n{\n\tstatic override readonly [entityKind]: string = 'EffectPgDatabase';\n}\n\nexport type EffectDrizzlePgConfig<\n\tTRelations extends AnyRelations = EmptyRelations,\n> = Omit<DrizzlePgConfig<TRelations>, 'cache' | 'logger'>;\n\nexport const DefaultServices = Layer.merge(\n\tEffectCache.Default,\n\tEffectLogger.Default,\n);\n\nexport const effectPgCodecs = refineGenericPgCodecs({\n\tbigint: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tbigserial: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tbit: {\n\t\tnormalizeArray: parsePgArray,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tdate: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate),\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\t'date:string': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tgeometry: {\n\t\tnormalizeArray: parsePgArrayAndNormalize(parseGeometryXY),\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\t'geometry:tuple': {\n\t\tnormalizeArray: parsePgArrayAndNormalize(parseGeometryTuple),\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tinterval: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tline: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\t'line:tuple': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tmacaddr8: {\n\t\tcastArrayInJson: castToTextArr,\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tpoint: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\t'point:tuple': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\ttimestamp: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDateWithTz,\n\t\tnormalizeArray: arrayCompatNormalize(textToDateWithTz),\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\ttimestamptz: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate),\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\t'timestamp:string': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\t'timestamptz:string': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tjson: {\n\t\tnormalizeParam: (v) => JSON.stringify(v),\n\t\tnormalizeParamArray: arrayCompatNormalizeInput((v) => JSON.stringify(v), true),\n\t},\n\tjsonb: {\n\t\tnormalizeParam: (v) => JSON.stringify(v),\n\t\tnormalizeParamArray: arrayCompatNormalizeInput((v) => JSON.stringify(v), true),\n\t},\n\n\tbool: { normalizeParamArray: makePgArray },\n\tbox: { normalizeParamArray: makePgArray },\n\tbox2d: { normalizeParamArray: makePgArray },\n\tbox3d: { normalizeParamArray: makePgArray },\n\tchar: { normalizeParamArray: makePgArray },\n\tcidr: { normalizeParamArray: makePgArray },\n\tcircle: { normalizeParamArray: makePgArray },\n\tdatemultirange: { normalizeParamArray: makePgArray },\n\tdaterange: { normalizeParamArray: makePgArray },\n\tfloat8: { normalizeParamArray: makePgArray },\n\tgeography: { normalizeParamArray: makePgArray },\n\tinet: { normalizeParamArray: makePgArray },\n\tint4multirange: { normalizeParamArray: makePgArray },\n\tint4range: { normalizeParamArray: makePgArray },\n\tint8multirange: { normalizeParamArray: makePgArray },\n\tint8range: { normalizeParamArray: makePgArray },\n\tlseg: { normalizeParamArray: makePgArray },\n\tmacaddr: { normalizeParamArray: makePgArray },\n\tmoney: { normalizeParamArray: makePgArray },\n\tnummultirange: { normalizeParamArray: makePgArray },\n\tnumrange: { normalizeParamArray: makePgArray },\n\toid: { normalizeParamArray: makePgArray },\n\tpath: { normalizeParamArray: makePgArray },\n\tpolygon: { normalizeParamArray: makePgArray },\n\traster: { normalizeParamArray: makePgArray },\n\tregclass: { normalizeParamArray: makePgArray },\n\tregconfig: { normalizeParamArray: makePgArray },\n\tregdictionary: { normalizeParamArray: makePgArray },\n\tregnamespace: { normalizeParamArray: makePgArray },\n\tregoper: { normalizeParamArray: makePgArray },\n\tregoperator: { normalizeParamArray: makePgArray },\n\tregproc: { normalizeParamArray: makePgArray },\n\tregprocedure: { normalizeParamArray: makePgArray },\n\tregrole: { normalizeParamArray: makePgArray },\n\tregtype: { normalizeParamArray: makePgArray },\n\tserial: { normalizeParamArray: makePgArray },\n\tsmallint: { normalizeParamArray: makePgArray },\n\tsmallserial: { normalizeParamArray: makePgArray },\n\ttext: { normalizeParamArray: makePgArray },\n\ttime: { normalizeParamArray: makePgArray },\n\ttimetz: { normalizeParamArray: makePgArray },\n\ttsmultirange: { normalizeParamArray: makePgArray },\n\ttsquery: { normalizeParamArray: makePgArray },\n\ttsrange: { normalizeParamArray: makePgArray },\n\ttstzmultirange: { normalizeParamArray: makePgArray },\n\ttstzrange: { normalizeParamArray: makePgArray },\n\ttsvector: { normalizeParamArray: makePgArray },\n\tvarbit: { normalizeParamArray: makePgArray },\n\tvarchar: { normalizeParamArray: makePgArray },\n\txml: { normalizeParamArray: makePgArray },\n\tbytea: { normalizeParamArray: makePgArray },\n\tenum: { normalizeParamArray: makePgArray },\n\tnumeric: { normalizeParamArray: makePgArray },\n\t'numeric:number': { normalizeParamArray: makePgArray },\n\t'numeric:bigint': { normalizeParamArray: makePgArray },\n\t'bigint:number': { normalizeParamArray: makePgArray },\n\t'bigint:string': { normalizeParamArray: makePgArray },\n\t'bigserial:number': { normalizeParamArray: makePgArray },\n\tfloat4: { normalizeParamArray: makePgArray },\n\tint: { normalizeParamArray: makePgArray },\n\tuuid: { normalizeParamArray: makePgArray },\n\thalfvec: { normalizeParamArray: makePgArray },\n\tsparsevec: {\n\t\tnormalizeArray: parsePgArray,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tvector: { normalizeParamArray: makePgArray },\n});\n\n/**\n * Creates an EffectPgDatabase instance.\n *\n * Requires `PgClient`, `EffectLogger`, and `EffectCache` services to be provided.\n * Use `DefaultServices` to provide default (no-op) logger and cache implementations.\n *\n * @example\n * ```ts\n * // With default services (no logging, no caching)\n * const db = yield* PgDrizzle.make({ relations }).pipe(\n * Effect.provide(PgDrizzle.DefaultServices),\n * );\n *\n * // With Effect-based logging\n * const db = yield* PgDrizzle.make({ relations }).pipe(\n * Effect.provide(EffectLogger.layer),\n * Effect.provide(PgDrizzle.DefaultServices),\n * );\n *\n * // With custom Drizzle logger\n * const db = yield* PgDrizzle.make({ relations }).pipe(\n * Effect.provide(EffectLogger.layerFromDrizzle(myLogger)),\n * Effect.provide(PgDrizzle.DefaultServices),\n * );\n * ```\n */\nexport const make = Effect.fn('PgDrizzle.make')(\n\tfunction*<\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(config: EffectDrizzlePgConfig<TRelations> = {}) {\n\t\tconst client = yield* PgClient;\n\t\tconst cache = yield* EffectCache;\n\t\tconst logger = yield* EffectLogger;\n\n\t\tconst dialect = new PgDialect({\n\t\t\tuseJitMappers: config.useJitMappers,\n\t\t\tcodecs: config.codecs ?? effectPgCodecs,\n\t\t});\n\n\t\tconst relations = config.relations ?? {} as TRelations;\n\t\tconst session = new EffectPgSession(client, dialect, relations, {\n\t\t\tlogger,\n\t\t\tcache,\n\t\t\tuseJitMapper: config.useJitMappers,\n\t\t});\n\t\tconst db = new EffectPgDatabase(dialect, session, relations) as EffectPgDatabase<TRelations>;\n\t\t(<any> db).$client = client;\n\t\t(<any> db).$cache = cache;\n\t\tif ((<any> db).$cache) {\n\t\t\t(<any> db).$cache['invalidate'] = cache.onMutate;\n\t\t}\n\n\t\treturn db as EffectPgDatabase<TRelations> & {\n\t\t\t$client: PgClient;\n\t\t};\n\t},\n);\n\n/**\n * Convenience function that creates an EffectPgDatabase with `DefaultServices` already provided.\n */\nexport const makeWithDefaults = <\n\tTRelations extends AnyRelations = EmptyRelations,\n>(config: EffectDrizzlePgConfig<TRelations> = {}) => make(config).pipe(Effect.provide(DefaultServices));\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"driver.js","names":[],"sources":["../../src/effect-postgres/driver.ts"],"sourcesContent":["import { PgClient } from '@effect/sql-pg/PgClient';\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\nimport { EffectCache } from '~/cache/core/cache-effect.ts';\nimport { EffectLogger } from '~/effect-core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgEffectDatabase } from '~/pg-core/effect/db.ts';\nimport type { DrizzlePgConfig } from '~/pg-core/utils.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { jitCompatCheck } from '~/utils.ts';\nimport { effectPgCodecs } from './codecs.ts';\nimport { type EffectPgQueryEffectHKT, type EffectPgQueryResultHKT, EffectPgSession } from './session.ts';\n\nexport class EffectPgDatabase<TRelations extends AnyRelations = EmptyRelations>\n\textends PgEffectDatabase<EffectPgQueryEffectHKT, EffectPgQueryResultHKT, TRelations>\n{\n\tstatic override readonly [entityKind]: string = 'EffectPgDatabase';\n}\n\nexport type EffectDrizzlePgConfig<\n\tTRelations extends AnyRelations = EmptyRelations,\n> = Omit<DrizzlePgConfig<TRelations>, 'cache' | 'logger'>;\n\nexport const DefaultServices = Layer.merge(\n\tEffectCache.Default,\n\tEffectLogger.Default,\n);\n\n/**\n * Creates an EffectPgDatabase instance.\n *\n * Requires `PgClient`, `EffectLogger`, and `EffectCache` services to be provided.\n * Use `DefaultServices` to provide default (no-op) logger and cache implementations.\n *\n * @example\n * ```ts\n * // With default services (no logging, no caching)\n * const db = yield* PgDrizzle.make({ relations }).pipe(\n * Effect.provide(PgDrizzle.DefaultServices),\n * );\n *\n * // With Effect-based logging\n * const db = yield* PgDrizzle.make({ relations }).pipe(\n * Effect.provide(EffectLogger.layer),\n * Effect.provide(PgDrizzle.DefaultServices),\n * );\n *\n * // With custom Drizzle logger\n * const db = yield* PgDrizzle.make({ relations }).pipe(\n * Effect.provide(EffectLogger.layerFromDrizzle(myLogger)),\n * Effect.provide(PgDrizzle.DefaultServices),\n * );\n * ```\n */\nexport const make = Effect.fn('PgDrizzle.make')(\n\tfunction*<\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(config: EffectDrizzlePgConfig<TRelations> = {}) {\n\t\tconst client = yield* PgClient;\n\t\tconst cache = yield* EffectCache;\n\t\tconst logger = yield* EffectLogger;\n\n\t\tconst dialect = new PgDialect({\n\t\t\tuseJitMappers: jitCompatCheck(config.useJitMappers),\n\t\t\tcodecs: config.codecs ?? effectPgCodecs,\n\t\t});\n\n\t\tconst relations = config.relations ?? {} as TRelations;\n\t\tconst session = new EffectPgSession(client, dialect, relations, {\n\t\t\tlogger,\n\t\t\tcache,\n\t\t\tuseJitMappers: jitCompatCheck(config.useJitMappers),\n\t\t});\n\t\tconst db = new EffectPgDatabase(dialect, session, relations) as EffectPgDatabase<TRelations>;\n\t\t(<any> db).$client = client;\n\t\t(<any> db).$cache = cache;\n\t\tif ((<any> db).$cache) {\n\t\t\t(<any> db).$cache['invalidate'] = cache.onMutate;\n\t\t}\n\n\t\treturn db as EffectPgDatabase<TRelations> & {\n\t\t\t$client: PgClient;\n\t\t};\n\t},\n);\n\n/**\n * Convenience function that creates an EffectPgDatabase with `DefaultServices` already provided.\n */\nexport const makeWithDefaults = <\n\tTRelations extends AnyRelations = EmptyRelations,\n>(config: EffectDrizzlePgConfig<TRelations> = {}) => make(config).pipe(Effect.provide(DefaultServices));\n"],"mappings":";;;;;;;;;;;;;AAcA,IAAa,mBAAb,cACS,iBACT;CACC,QAA0B,cAAsB;;AAOjD,MAAa,kBAAkB,MAAM,MACpC,YAAY,SACZ,aAAa,QACb;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BD,MAAa,OAAO,OAAO,GAAG,iBAAiB,CAC9C,WAEE,SAA4C,EAAE,EAAE;CACjD,MAAM,SAAS,OAAO;CACtB,MAAM,QAAQ,OAAO;CACrB,MAAM,SAAS,OAAO;CAEtB,MAAM,UAAU,IAAI,UAAU;EAC7B,eAAe,eAAe,OAAO,cAAc;EACnD,QAAQ,OAAO,UAAU;EACzB,CAAC;CAEF,MAAM,YAAY,OAAO,aAAa,EAAE;CAMxC,MAAM,KAAK,IAAI,iBAAiB,SALhB,IAAI,gBAAgB,QAAQ,SAAS,WAAW;EAC/D;EACA;EACA,eAAe,eAAe,OAAO,cAAc;EACnD,CAAC,EACgD,UAAU;AAC5D,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS;AACpB,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,MAAM;AAGzC,QAAO;EAIR;;;;AAKD,MAAa,oBAEX,SAA4C,EAAE,KAAK,KAAK,OAAO,CAAC,KAAK,OAAO,QAAQ,gBAAgB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
|
|
3
|
+
const require_effect_postgres_codecs = require('./codecs.cjs');
|
|
3
4
|
const require_effect_postgres_session = require('./session.cjs');
|
|
4
5
|
const require_effect_postgres_driver = require('./driver.cjs');
|
|
5
6
|
let __effect_core_index_ts = require("../effect-core/index.cjs");
|
|
@@ -14,6 +15,6 @@ Object.defineProperty(exports, 'EffectLogger', {
|
|
|
14
15
|
exports.EffectPgDatabase = require_effect_postgres_driver.EffectPgDatabase;
|
|
15
16
|
exports.EffectPgSession = require_effect_postgres_session.EffectPgSession;
|
|
16
17
|
exports.EffectPgTransaction = require_effect_postgres_session.EffectPgTransaction;
|
|
17
|
-
exports.effectPgCodecs =
|
|
18
|
+
exports.effectPgCodecs = require_effect_postgres_codecs.effectPgCodecs;
|
|
18
19
|
exports.make = require_effect_postgres_driver.make;
|
|
19
20
|
exports.makeWithDefaults = require_effect_postgres_driver.makeWithDefaults;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { effectPgCodecs } from "./codecs.cjs";
|
|
1
2
|
import { EffectPgQueryEffectHKT, EffectPgQueryResultHKT, EffectPgSession, EffectPgSessionOptions, EffectPgTransaction } from "./session.cjs";
|
|
2
|
-
import { DefaultServices, EffectDrizzlePgConfig, EffectPgDatabase,
|
|
3
|
+
import { DefaultServices, EffectDrizzlePgConfig, EffectPgDatabase, make, makeWithDefaults } from "./driver.cjs";
|
|
3
4
|
import { EffectLogger } from "../effect-core/index.cjs";
|
|
4
5
|
export { DefaultServices, EffectDrizzlePgConfig, EffectLogger, EffectPgDatabase, EffectPgQueryEffectHKT, EffectPgQueryResultHKT, EffectPgSession, EffectPgSessionOptions, EffectPgTransaction, effectPgCodecs, make, makeWithDefaults };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { effectPgCodecs } from "./codecs.js";
|
|
1
2
|
import { EffectPgQueryEffectHKT, EffectPgQueryResultHKT, EffectPgSession, EffectPgSessionOptions, EffectPgTransaction } from "./session.js";
|
|
2
|
-
import { DefaultServices, EffectDrizzlePgConfig, EffectPgDatabase,
|
|
3
|
+
import { DefaultServices, EffectDrizzlePgConfig, EffectPgDatabase, make, makeWithDefaults } from "./driver.js";
|
|
3
4
|
import { EffectLogger } from "../effect-core/index.js";
|
|
4
5
|
export { DefaultServices, EffectDrizzlePgConfig, EffectLogger, EffectPgDatabase, EffectPgQueryEffectHKT, EffectPgQueryResultHKT, EffectPgSession, EffectPgSessionOptions, EffectPgTransaction, effectPgCodecs, make, makeWithDefaults };
|
package/effect-postgres/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { effectPgCodecs } from "./codecs.js";
|
|
1
2
|
import { EffectPgSession, EffectPgTransaction } from "./session.js";
|
|
2
|
-
import { DefaultServices, EffectPgDatabase,
|
|
3
|
+
import { DefaultServices, EffectPgDatabase, make, makeWithDefaults } from "./driver.js";
|
|
3
4
|
import { EffectLogger } from "../effect-core/index.js";
|
|
4
5
|
|
|
5
6
|
export { DefaultServices, EffectLogger, EffectPgDatabase, EffectPgSession, EffectPgTransaction, effectPgCodecs, make, makeWithDefaults };
|
|
@@ -6,7 +6,7 @@ import * as effect_Effect0 from "effect/Effect";
|
|
|
6
6
|
import * as _effect_sql_SqlError0 from "@effect/sql/SqlError";
|
|
7
7
|
|
|
8
8
|
//#region src/effect-postgres/migrator.d.ts
|
|
9
|
-
declare function migrate<TRelations extends AnyRelations>(db: EffectPgDatabase<TRelations>, config: MigrationConfig): effect_Effect0.Effect<undefined,
|
|
9
|
+
declare function migrate<TRelations extends AnyRelations>(db: EffectPgDatabase<TRelations>, config: MigrationConfig): effect_Effect0.Effect<undefined, EffectDrizzleQueryError | _effect_sql_SqlError0.SqlError | MigratorInitError, never>;
|
|
10
10
|
//#endregion
|
|
11
11
|
export { migrate };
|
|
12
12
|
//# sourceMappingURL=migrator.d.cts.map
|
|
@@ -6,7 +6,7 @@ import { AnyRelations } from "../relations.js";
|
|
|
6
6
|
import * as _effect_sql_SqlError0 from "@effect/sql/SqlError";
|
|
7
7
|
|
|
8
8
|
//#region src/effect-postgres/migrator.d.ts
|
|
9
|
-
declare function migrate<TRelations extends AnyRelations>(db: EffectPgDatabase<TRelations>, config: MigrationConfig): effect_Effect0.Effect<undefined,
|
|
9
|
+
declare function migrate<TRelations extends AnyRelations>(db: EffectPgDatabase<TRelations>, config: MigrationConfig): effect_Effect0.Effect<undefined, EffectDrizzleQueryError | _effect_sql_SqlError0.SqlError | MigratorInitError, never>;
|
|
10
10
|
//#endregion
|
|
11
11
|
export { migrate };
|
|
12
12
|
//# sourceMappingURL=migrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.cjs","names":["PgEffectSession","entityKind","PgEffectPreparedQuery","Effect","PgEffectTransaction"],"sources":["../../src/effect-postgres/session.ts"],"sourcesContent":["import type { PgClient } from '@effect/sql-pg/PgClient';\nimport type { SqlError } from '@effect/sql/SqlError';\nimport * as Effect from 'effect/Effect';\nimport type { EffectCache } from '~/cache/core/cache-effect.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport type { EffectDrizzleQueryError } from '~/effect-core/errors.ts';\nimport type { EffectLogger } from '~/effect-core/logger.ts';\nimport type { QueryEffectHKTBase } from '~/effect-core/query-effect.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgEffectPreparedQuery, PgEffectSession, PgEffectTransaction } from '~/pg-core/effect/session.ts';\nimport type { PgQueryResultHKT, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { Query } from '~/sql/sql.ts';\nimport type { Assume } from '~/utils.ts';\n\nexport interface EffectPgQueryEffectHKT extends QueryEffectHKTBase {\n\treadonly error: EffectDrizzleQueryError;\n\treadonly context: never;\n}\n\nexport interface EffectPgQueryResultHKT extends PgQueryResultHKT {\n\ttype: readonly Assume<this['row'], object>[];\n}\n\nexport interface EffectPgSessionOptions {\n\tlogger: EffectLogger;\n\tcache: EffectCache;\n\
|
|
1
|
+
{"version":3,"file":"session.cjs","names":["PgEffectSession","entityKind","PgEffectPreparedQuery","Effect","PgEffectTransaction"],"sources":["../../src/effect-postgres/session.ts"],"sourcesContent":["import type { PgClient } from '@effect/sql-pg/PgClient';\nimport type { SqlError } from '@effect/sql/SqlError';\nimport * as Effect from 'effect/Effect';\nimport type { EffectCache } from '~/cache/core/cache-effect.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport type { EffectDrizzleQueryError } from '~/effect-core/errors.ts';\nimport type { EffectLogger } from '~/effect-core/logger.ts';\nimport type { QueryEffectHKTBase } from '~/effect-core/query-effect.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgEffectPreparedQuery, PgEffectSession, PgEffectTransaction } from '~/pg-core/effect/session.ts';\nimport type { PgQueryResultHKT, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { Query } from '~/sql/sql.ts';\nimport type { Assume } from '~/utils.ts';\n\nexport interface EffectPgQueryEffectHKT extends QueryEffectHKTBase {\n\treadonly error: EffectDrizzleQueryError;\n\treadonly context: never;\n}\n\nexport interface EffectPgQueryResultHKT extends PgQueryResultHKT {\n\ttype: readonly Assume<this['row'], object>[];\n}\n\nexport interface EffectPgSessionOptions {\n\tlogger: EffectLogger;\n\tcache: EffectCache;\n\tuseJitMappers?: boolean;\n}\n\nexport class EffectPgSession<\n\tTQueryResult extends PgQueryResultHKT,\n\tTRelations extends AnyRelations,\n> extends PgEffectSession<EffectPgQueryEffectHKT, TQueryResult, TRelations> {\n\tstatic override readonly [entityKind]: string = 'EffectPgSession';\n\n\tconstructor(\n\t\tprivate client: PgClient,\n\t\tdialect: PgDialect,\n\t\tprotected relations: TRelations,\n\t\tprivate options: EffectPgSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t}\n\n\toverride prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tmode: 'arrays' | 'objects' | 'raw',\n\t\t_name: string | boolean,\n\t\tmapper?: (rows: any[]) => any,\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): PgEffectPreparedQuery<T, EffectPgQueryEffectHKT> {\n\t\tconst executor = (params?: unknown[]) => {\n\t\t\tconst q = this.client.unsafe(query.sql, params);\n\n\t\t\tif (mode === 'arrays') return q.values;\n\t\t\treturn q.withoutTransform;\n\t\t};\n\n\t\treturn new PgEffectPreparedQuery<T, EffectPgQueryEffectHKT>(\n\t\t\texecutor,\n\t\t\tquery,\n\t\t\tmapper,\n\t\t\tmode,\n\t\t\tthis.options.logger,\n\t\t\tthis.options.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t);\n\t}\n\n\toverride transaction<A, E, R>(\n\t\ttransaction: (\n\t\t\ttx: EffectPgTransaction<TQueryResult, TRelations>,\n\t\t) => Effect.Effect<A, E, R>,\n\t): Effect.Effect<A, E | SqlError, R> {\n\t\tconst { dialect, relations } = this;\n\n\t\treturn this.client.withTransaction(Effect.gen(this, function*() {\n\t\t\tconst tx = new EffectPgTransaction<TQueryResult, TRelations>(\n\t\t\t\tdialect,\n\t\t\t\tthis,\n\t\t\t\trelations,\n\t\t\t);\n\n\t\t\treturn yield* transaction(tx);\n\t\t}));\n\t}\n}\n\nexport class EffectPgTransaction<\n\tTQueryResult extends PgQueryResultHKT,\n\tTRelations extends AnyRelations,\n> extends PgEffectTransaction<EffectPgQueryEffectHKT, TQueryResult, TRelations> {\n\tstatic override readonly [entityKind]: string = 'EffectPgTransaction';\n\n\toverride transaction: <A, E, R>(\n\t\ttransaction: (\n\t\t\ttx: PgEffectTransaction<EffectPgQueryEffectHKT, TQueryResult, TRelations>,\n\t\t) => Effect.Effect<A, E, R>,\n\t) => Effect.Effect<A, SqlError | E, R> = (tx) => this.session.transaction(tx);\n}\n"],"mappings":";;;;;;;;AA+BA,IAAa,kBAAb,cAGUA,4CAAkE;CAC3E,QAA0BC,0BAAsB;CAEhD,YACC,AAAQ,QACR,SACA,AAAU,WACV,AAAQ,SACP;AACD,QAAM,QAAQ;EALN;EAEE;EACF;;CAKT,AAAS,aACR,OACA,MACA,OACA,QACA,eAIA,aACmD;EACnD,MAAM,YAAY,WAAuB;GACxC,MAAM,IAAI,KAAK,OAAO,OAAO,MAAM,KAAK,OAAO;AAE/C,OAAI,SAAS,SAAU,QAAO,EAAE;AAChC,UAAO,EAAE;;AAGV,SAAO,IAAIC,kDACV,UACA,OACA,QACA,MACA,KAAK,QAAQ,QACb,KAAK,QAAQ,OACb,eACA,YACA;;CAGF,AAAS,YACR,aAGoC;EACpC,MAAM,EAAE,SAAS,cAAc;AAE/B,SAAO,KAAK,OAAO,gBAAgBC,cAAO,IAAI,MAAM,aAAY;AAO/D,UAAO,OAAO,YANH,IAAI,oBACd,SACA,MACA,UACA,CAE4B;IAC5B,CAAC;;;AAIL,IAAa,sBAAb,cAGUC,gDAAsE;CAC/E,QAA0BH,0BAAsB;CAEhD,AAAS,eAIiC,OAAO,KAAK,QAAQ,YAAY,GAAG"}
|
|
@@ -25,7 +25,7 @@ interface EffectPgQueryResultHKT extends PgQueryResultHKT {
|
|
|
25
25
|
interface EffectPgSessionOptions {
|
|
26
26
|
logger: EffectLogger;
|
|
27
27
|
cache: EffectCache;
|
|
28
|
-
|
|
28
|
+
useJitMappers?: boolean;
|
|
29
29
|
}
|
|
30
30
|
declare class EffectPgSession<TQueryResult extends PgQueryResultHKT, TRelations extends AnyRelations> extends PgEffectSession<EffectPgQueryEffectHKT, TQueryResult, TRelations> {
|
|
31
31
|
private client;
|
|
@@ -25,7 +25,7 @@ interface EffectPgQueryResultHKT extends PgQueryResultHKT {
|
|
|
25
25
|
interface EffectPgSessionOptions {
|
|
26
26
|
logger: EffectLogger;
|
|
27
27
|
cache: EffectCache;
|
|
28
|
-
|
|
28
|
+
useJitMappers?: boolean;
|
|
29
29
|
}
|
|
30
30
|
declare class EffectPgSession<TQueryResult extends PgQueryResultHKT, TRelations extends AnyRelations> extends PgEffectSession<EffectPgQueryEffectHKT, TQueryResult, TRelations> {
|
|
31
31
|
private client;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","names":[],"sources":["../../src/effect-postgres/session.ts"],"sourcesContent":["import type { PgClient } from '@effect/sql-pg/PgClient';\nimport type { SqlError } from '@effect/sql/SqlError';\nimport * as Effect from 'effect/Effect';\nimport type { EffectCache } from '~/cache/core/cache-effect.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport type { EffectDrizzleQueryError } from '~/effect-core/errors.ts';\nimport type { EffectLogger } from '~/effect-core/logger.ts';\nimport type { QueryEffectHKTBase } from '~/effect-core/query-effect.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgEffectPreparedQuery, PgEffectSession, PgEffectTransaction } from '~/pg-core/effect/session.ts';\nimport type { PgQueryResultHKT, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { Query } from '~/sql/sql.ts';\nimport type { Assume } from '~/utils.ts';\n\nexport interface EffectPgQueryEffectHKT extends QueryEffectHKTBase {\n\treadonly error: EffectDrizzleQueryError;\n\treadonly context: never;\n}\n\nexport interface EffectPgQueryResultHKT extends PgQueryResultHKT {\n\ttype: readonly Assume<this['row'], object>[];\n}\n\nexport interface EffectPgSessionOptions {\n\tlogger: EffectLogger;\n\tcache: EffectCache;\n\
|
|
1
|
+
{"version":3,"file":"session.js","names":[],"sources":["../../src/effect-postgres/session.ts"],"sourcesContent":["import type { PgClient } from '@effect/sql-pg/PgClient';\nimport type { SqlError } from '@effect/sql/SqlError';\nimport * as Effect from 'effect/Effect';\nimport type { EffectCache } from '~/cache/core/cache-effect.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport type { EffectDrizzleQueryError } from '~/effect-core/errors.ts';\nimport type { EffectLogger } from '~/effect-core/logger.ts';\nimport type { QueryEffectHKTBase } from '~/effect-core/query-effect.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgEffectPreparedQuery, PgEffectSession, PgEffectTransaction } from '~/pg-core/effect/session.ts';\nimport type { PgQueryResultHKT, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { Query } from '~/sql/sql.ts';\nimport type { Assume } from '~/utils.ts';\n\nexport interface EffectPgQueryEffectHKT extends QueryEffectHKTBase {\n\treadonly error: EffectDrizzleQueryError;\n\treadonly context: never;\n}\n\nexport interface EffectPgQueryResultHKT extends PgQueryResultHKT {\n\ttype: readonly Assume<this['row'], object>[];\n}\n\nexport interface EffectPgSessionOptions {\n\tlogger: EffectLogger;\n\tcache: EffectCache;\n\tuseJitMappers?: boolean;\n}\n\nexport class EffectPgSession<\n\tTQueryResult extends PgQueryResultHKT,\n\tTRelations extends AnyRelations,\n> extends PgEffectSession<EffectPgQueryEffectHKT, TQueryResult, TRelations> {\n\tstatic override readonly [entityKind]: string = 'EffectPgSession';\n\n\tconstructor(\n\t\tprivate client: PgClient,\n\t\tdialect: PgDialect,\n\t\tprotected relations: TRelations,\n\t\tprivate options: EffectPgSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t}\n\n\toverride prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tmode: 'arrays' | 'objects' | 'raw',\n\t\t_name: string | boolean,\n\t\tmapper?: (rows: any[]) => any,\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): PgEffectPreparedQuery<T, EffectPgQueryEffectHKT> {\n\t\tconst executor = (params?: unknown[]) => {\n\t\t\tconst q = this.client.unsafe(query.sql, params);\n\n\t\t\tif (mode === 'arrays') return q.values;\n\t\t\treturn q.withoutTransform;\n\t\t};\n\n\t\treturn new PgEffectPreparedQuery<T, EffectPgQueryEffectHKT>(\n\t\t\texecutor,\n\t\t\tquery,\n\t\t\tmapper,\n\t\t\tmode,\n\t\t\tthis.options.logger,\n\t\t\tthis.options.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t);\n\t}\n\n\toverride transaction<A, E, R>(\n\t\ttransaction: (\n\t\t\ttx: EffectPgTransaction<TQueryResult, TRelations>,\n\t\t) => Effect.Effect<A, E, R>,\n\t): Effect.Effect<A, E | SqlError, R> {\n\t\tconst { dialect, relations } = this;\n\n\t\treturn this.client.withTransaction(Effect.gen(this, function*() {\n\t\t\tconst tx = new EffectPgTransaction<TQueryResult, TRelations>(\n\t\t\t\tdialect,\n\t\t\t\tthis,\n\t\t\t\trelations,\n\t\t\t);\n\n\t\t\treturn yield* transaction(tx);\n\t\t}));\n\t}\n}\n\nexport class EffectPgTransaction<\n\tTQueryResult extends PgQueryResultHKT,\n\tTRelations extends AnyRelations,\n> extends PgEffectTransaction<EffectPgQueryEffectHKT, TQueryResult, TRelations> {\n\tstatic override readonly [entityKind]: string = 'EffectPgTransaction';\n\n\toverride transaction: <A, E, R>(\n\t\ttransaction: (\n\t\t\ttx: PgEffectTransaction<EffectPgQueryEffectHKT, TQueryResult, TRelations>,\n\t\t) => Effect.Effect<A, E, R>,\n\t) => Effect.Effect<A, SqlError | E, R> = (tx) => this.session.transaction(tx);\n}\n"],"mappings":";;;;;AA+BA,IAAa,kBAAb,cAGU,gBAAkE;CAC3E,QAA0B,cAAsB;CAEhD,YACC,AAAQ,QACR,SACA,AAAU,WACV,AAAQ,SACP;AACD,QAAM,QAAQ;EALN;EAEE;EACF;;CAKT,AAAS,aACR,OACA,MACA,OACA,QACA,eAIA,aACmD;EACnD,MAAM,YAAY,WAAuB;GACxC,MAAM,IAAI,KAAK,OAAO,OAAO,MAAM,KAAK,OAAO;AAE/C,OAAI,SAAS,SAAU,QAAO,EAAE;AAChC,UAAO,EAAE;;AAGV,SAAO,IAAI,sBACV,UACA,OACA,QACA,MACA,KAAK,QAAQ,QACb,KAAK,QAAQ,OACb,eACA,YACA;;CAGF,AAAS,YACR,aAGoC;EACpC,MAAM,EAAE,SAAS,cAAc;AAE/B,SAAO,KAAK,OAAO,gBAAgB,OAAO,IAAI,MAAM,aAAY;AAO/D,UAAO,OAAO,YANH,IAAI,oBACd,SACA,MACA,UACA,CAE4B;IAC5B,CAAC;;;AAIL,IAAa,sBAAb,cAGU,oBAAsE;CAC/E,QAA0B,cAAsB;CAEhD,AAAS,eAIiC,OAAO,KAAK,QAAQ,YAAY,GAAG"}
|
package/expo-sqlite/driver.cjs
CHANGED
|
@@ -2,6 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2
2
|
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
|
|
3
3
|
const require_expo_sqlite_session = require('./session.cjs');
|
|
4
4
|
let __entity_ts = require("../entity.cjs");
|
|
5
|
+
let __utils_ts = require("../utils.cjs");
|
|
5
6
|
let __logger_ts = require("../logger.cjs");
|
|
6
7
|
let ___relations_ts = require("../_relations.cjs");
|
|
7
8
|
___relations_ts = require_runtime.__toESM(___relations_ts);
|
|
@@ -29,7 +30,7 @@ function drizzle(client, config = {}) {
|
|
|
29
30
|
const relations = config.relations ?? {};
|
|
30
31
|
const db = new ExpoSQLiteDatabase("sync", dialect, new require_expo_sqlite_session.ExpoSQLiteSession(client, dialect, relations, schema, {
|
|
31
32
|
logger,
|
|
32
|
-
|
|
33
|
+
useJitMappers: (0, __utils_ts.jitCompatCheck)(config.useJitMappers)
|
|
33
34
|
}), relations, schema);
|
|
34
35
|
db.$client = client;
|
|
35
36
|
return db;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.cjs","names":["BaseSQLiteDatabase","entityKind","SQLiteSyncDialect","DefaultLogger","V1","ExpoSQLiteSession"],"sources":["../../src/expo-sqlite/driver.ts"],"sourcesContent":["import type { SQLiteDatabase, SQLiteRunResult } from 'expo-sqlite';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport type
|
|
1
|
+
{"version":3,"file":"driver.cjs","names":["BaseSQLiteDatabase","entityKind","SQLiteSyncDialect","DefaultLogger","V1","ExpoSQLiteSession"],"sources":["../../src/expo-sqlite/driver.ts"],"sourcesContent":["import type { SQLiteDatabase, SQLiteRunResult } from 'expo-sqlite';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { ExpoSQLiteSession } from './session.ts';\n\nexport class ExpoSQLiteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'sync', SQLiteRunResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLiteDatabase';\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: SQLiteDatabase,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): ExpoSQLiteDatabase<TSchema, TRelations> & {\n\t$client: SQLiteDatabase;\n} {\n\tconst dialect = new SQLiteSyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new ExpoSQLiteSession(client, dialect, relations, schema, {\n\t\tlogger,\n\t\tuseJitMappers: jitCompatCheck(config.useJitMappers),\n\t});\n\tconst db = new ExpoSQLiteDatabase(\n\t\t'sync',\n\t\tdialect,\n\t\tsession as ExpoSQLiteDatabase<any, any>['session'],\n\t\trelations,\n\t\tschema,\n\t) as ExpoSQLiteDatabase<TSchema, TRelations>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":";;;;;;;;;;;;AAUA,IAAa,qBAAb,cAGUA,uCAAiE;CAC1E,QAA0BC,0BAAsB;;AAGjD,SAAgB,QAIf,QACA,SAA6C,EAAE,EAG9C;CACD,MAAM,UAAU,IAAIC,4CAAmB;CACvC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAeC,gBAAG,8BACvB,OAAO,QACPA,gBAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;CAKxC,MAAM,KAAK,IAAI,mBACd,QACA,SANe,IAAIC,8CAAkB,QAAQ,SAAS,WAAW,QAAQ;EACzE;EACA,8CAA8B,OAAO,cAAc;EACnD,CAAC,EAKD,WACA,OACA;AACD,CAAO,GAAI,UAAU;AAErB,QAAO"}
|
package/expo-sqlite/driver.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ExpoSQLiteSession } from "./session.js";
|
|
2
2
|
import { entityKind } from "../entity.js";
|
|
3
|
+
import { jitCompatCheck } from "../utils.js";
|
|
3
4
|
import { DefaultLogger } from "../logger.js";
|
|
4
5
|
import * as V1 from "../_relations.js";
|
|
5
6
|
import { BaseSQLiteDatabase } from "../sqlite-core/db.js";
|
|
@@ -26,7 +27,7 @@ function drizzle(client, config = {}) {
|
|
|
26
27
|
const relations = config.relations ?? {};
|
|
27
28
|
const db = new ExpoSQLiteDatabase("sync", dialect, new ExpoSQLiteSession(client, dialect, relations, schema, {
|
|
28
29
|
logger,
|
|
29
|
-
|
|
30
|
+
useJitMappers: jitCompatCheck(config.useJitMappers)
|
|
30
31
|
}), relations, schema);
|
|
31
32
|
db.$client = client;
|
|
32
33
|
return db;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","names":[],"sources":["../../src/expo-sqlite/driver.ts"],"sourcesContent":["import type { SQLiteDatabase, SQLiteRunResult } from 'expo-sqlite';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport type
|
|
1
|
+
{"version":3,"file":"driver.js","names":[],"sources":["../../src/expo-sqlite/driver.ts"],"sourcesContent":["import type { SQLiteDatabase, SQLiteRunResult } from 'expo-sqlite';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { ExpoSQLiteSession } from './session.ts';\n\nexport class ExpoSQLiteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'sync', SQLiteRunResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLiteDatabase';\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: SQLiteDatabase,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): ExpoSQLiteDatabase<TSchema, TRelations> & {\n\t$client: SQLiteDatabase;\n} {\n\tconst dialect = new SQLiteSyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new ExpoSQLiteSession(client, dialect, relations, schema, {\n\t\tlogger,\n\t\tuseJitMappers: jitCompatCheck(config.useJitMappers),\n\t});\n\tconst db = new ExpoSQLiteDatabase(\n\t\t'sync',\n\t\tdialect,\n\t\tsession as ExpoSQLiteDatabase<any, any>['session'],\n\t\trelations,\n\t\tschema,\n\t) as ExpoSQLiteDatabase<TSchema, TRelations>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":";;;;;;;;;AAUA,IAAa,qBAAb,cAGU,mBAAiE;CAC1E,QAA0B,cAAsB;;AAGjD,SAAgB,QAIf,QACA,SAA6C,EAAE,EAG9C;CACD,MAAM,UAAU,IAAI,mBAAmB;CACvC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAe,GAAG,8BACvB,OAAO,QACP,GAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;CAKxC,MAAM,KAAK,IAAI,mBACd,QACA,SANe,IAAI,kBAAkB,QAAQ,SAAS,WAAW,QAAQ;EACzE;EACA,eAAe,eAAe,OAAO,cAAc;EACnD,CAAC,EAKD,WACA,OACA;AACD,CAAO,GAAI,UAAU;AAErB,QAAO"}
|
package/expo-sqlite/session.cjs
CHANGED
|
@@ -21,10 +21,10 @@ var ExpoSQLiteSession = class extends __sqlite_core_session_ts.SQLiteSession {
|
|
|
21
21
|
this.logger = options.logger ?? new __logger_ts.NoopLogger();
|
|
22
22
|
}
|
|
23
23
|
prepareQuery(query, fields, executeMethod, customResultMapper) {
|
|
24
|
-
return new ExpoSQLitePreparedQuery(this.client.prepareSync(query.sql), query, this.logger, fields, executeMethod, this.options.
|
|
24
|
+
return new ExpoSQLitePreparedQuery(this.client.prepareSync(query.sql), query, this.logger, fields, executeMethod, this.options.useJitMappers, customResultMapper);
|
|
25
25
|
}
|
|
26
26
|
prepareRelationalQuery(query, fields, executeMethod, customResultMapper, config) {
|
|
27
|
-
return new ExpoSQLitePreparedQuery(this.client.prepareSync(query.sql), query, this.logger, fields, executeMethod, this.options.
|
|
27
|
+
return new ExpoSQLitePreparedQuery(this.client.prepareSync(query.sql), query, this.logger, fields, executeMethod, this.options.useJitMappers, customResultMapper, true, config);
|
|
28
28
|
}
|
|
29
29
|
transaction(transaction, config = {}) {
|
|
30
30
|
const tx = new ExpoSQLiteTransaction("sync", this.dialect, this, this.relations, this.schema);
|
|
@@ -58,12 +58,12 @@ var ExpoSQLiteTransaction = class ExpoSQLiteTransaction extends __sqlite_core_in
|
|
|
58
58
|
var ExpoSQLitePreparedQuery = class extends __sqlite_core_session_ts.SQLitePreparedQuery {
|
|
59
59
|
static [__entity_ts.entityKind] = "ExpoSQLitePreparedQuery";
|
|
60
60
|
jitMapper;
|
|
61
|
-
constructor(stmt, query, logger, fields, executeMethod,
|
|
61
|
+
constructor(stmt, query, logger, fields, executeMethod, useJitMappers, customResultMapper, isRqbV2Query, rqbConfig) {
|
|
62
62
|
super("sync", executeMethod, query);
|
|
63
63
|
this.stmt = stmt;
|
|
64
64
|
this.logger = logger;
|
|
65
65
|
this.fields = fields;
|
|
66
|
-
this.
|
|
66
|
+
this.useJitMappers = useJitMappers;
|
|
67
67
|
this.customResultMapper = customResultMapper;
|
|
68
68
|
this.isRqbV2Query = isRqbV2Query;
|
|
69
69
|
this.rqbConfig = rqbConfig;
|
|
@@ -87,14 +87,14 @@ var ExpoSQLitePreparedQuery = class extends __sqlite_core_session_ts.SQLitePrepa
|
|
|
87
87
|
}
|
|
88
88
|
const rows = this.values(placeholderValues);
|
|
89
89
|
if (customResultMapper) return customResultMapper(rows);
|
|
90
|
-
return this.
|
|
90
|
+
return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))(rows) : rows.map((row) => (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap));
|
|
91
91
|
}
|
|
92
92
|
allRqbV2(placeholderValues) {
|
|
93
93
|
const { query, logger, stmt, customResultMapper } = this;
|
|
94
94
|
const params = (0, __sql_sql_ts.fillPlaceholders)(query.params, placeholderValues ?? {});
|
|
95
95
|
logger.logQuery(query.sql, params);
|
|
96
96
|
const rows = stmt.executeSync(params).getAllSync();
|
|
97
|
-
return this.
|
|
97
|
+
return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? (0, __relations_ts.makeJitRqbMapper)(this.rqbConfig))(rows) : customResultMapper(rows);
|
|
98
98
|
}
|
|
99
99
|
get(placeholderValues) {
|
|
100
100
|
if (this.isRqbV2Query) return this.getRqbV2(placeholderValues);
|
|
@@ -106,7 +106,7 @@ var ExpoSQLitePreparedQuery = class extends __sqlite_core_session_ts.SQLitePrepa
|
|
|
106
106
|
const row = rows[0];
|
|
107
107
|
if (!row) return;
|
|
108
108
|
if (customResultMapper) return customResultMapper(rows);
|
|
109
|
-
return this.
|
|
109
|
+
return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))([row])[0] : (0, __utils_ts.mapResultRow)(this.fields, row, this.joinsNotNullableMap);
|
|
110
110
|
}
|
|
111
111
|
getRqbV2(placeholderValues) {
|
|
112
112
|
const params = (0, __sql_sql_ts.fillPlaceholders)(this.query.params, placeholderValues ?? {});
|
|
@@ -114,7 +114,7 @@ var ExpoSQLitePreparedQuery = class extends __sqlite_core_session_ts.SQLitePrepa
|
|
|
114
114
|
const { stmt, customResultMapper } = this;
|
|
115
115
|
const row = stmt.executeSync(params).getFirstSync();
|
|
116
116
|
if (!row) return;
|
|
117
|
-
return this.
|
|
117
|
+
return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? (0, __relations_ts.makeJitRqbMapper)(this.rqbConfig))([row]) : customResultMapper([row]);
|
|
118
118
|
}
|
|
119
119
|
values(placeholderValues) {
|
|
120
120
|
const params = (0, __sql_sql_ts.fillPlaceholders)(this.query.params, placeholderValues ?? {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.cjs","names":["SQLiteSession","entityKind","NoopLogger","sql","SQLiteTransaction","SQLitePreparedQuery"],"sources":["../../src/expo-sqlite/session.ts"],"sourcesContent":["import type { SQLiteDatabase, SQLiteRunResult, SQLiteStatement } from 'expo-sqlite';\nimport type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLitePreparedQuery,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { type DrizzleTypeError, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport interface ExpoSQLiteSessionOptions {\n\tlogger?: Logger;\n\tuseJitMapper?: boolean;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class ExpoSQLiteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<'sync', SQLiteRunResult, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLiteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: SQLiteDatabase,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: ExpoSQLiteSessionOptions = {},\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\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): ExpoSQLitePreparedQuery<T> {\n\t\tconst stmt = this.client.prepareSync(query.sql);\n\t\treturn new ExpoSQLitePreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tthis.options.useJitMapper,\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\tconfig: RelationalQueryMapperConfig,\n\t): ExpoSQLitePreparedQuery<T, true> {\n\t\tconst stmt = this.client.prepareSync(query.sql);\n\t\treturn new ExpoSQLitePreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: ExpoSQLiteTransaction<TFullSchema, TRelations, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new ExpoSQLiteTransaction('sync', this.dialect, this, this.relations, this.schema);\n\t\tthis.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class ExpoSQLiteTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', SQLiteRunResult, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLiteTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: ExpoSQLiteTransaction<TFullSchema, TRelations, TSchema>,\n\t\t) => T extends Promise<any> ? DrizzleTypeError<\"Sync drivers can't use async functions in transactions!\">\n\t\t\t: T,\n\t): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new ExpoSQLiteTransaction(\n\t\t\t'sync',\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);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result as T;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class ExpoSQLitePreparedQuery<\n\tT extends PreparedQueryConfig = PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends SQLitePreparedQuery<\n\t{ type: 'sync'; run: SQLiteRunResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLitePreparedQuery';\n\tprivate jitMapper?: RowsMapper<any> | RelationalRowsMapper<any>;\n\n\tconstructor(\n\t\tprivate stmt: SQLiteStatement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate useJitMapper: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): SQLiteRunResult {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst { changes, lastInsertRowId } = this.stmt.executeSync(params as any[]);\n\t\treturn {\n\t\t\tchanges,\n\t\t\tlastInsertRowId,\n\t\t};\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.executeSync(params as any[]).getAllSync();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['all'];\n\t\t}\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<T['all']>\n\t\t\t\t?? makeJitQueryMapper<T['all']>(fields!, joinsNotNullableMap))(rows)\n\t\t\t: rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate allRqbV2(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { query, logger, stmt, customResultMapper } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\tconst rows = stmt.executeSync(params as any[]).getAllSync() as Record<string, unknown>[];\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['all']>\n\t\t\t\t?? makeJitRqbMapper<T['all']>(this.rqbConfig!))(rows)\n\t\t\t: (customResultMapper as (rows: Record<string, unknown>[]) => unknown)(rows) as T['all'];\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, stmt, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn stmt.executeSync(params as any[]).getFirstSync();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['get'];\n\t\t}\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<T['get'][]>\n\t\t\t\t?? makeJitQueryMapper<T['get'][]>(fields!, joinsNotNullableMap))(\n\t\t\t\t\t[row],\n\t\t\t\t)[0]\n\t\t\t: mapResultRow(this.fields!, row, this.joinsNotNullableMap);\n\t}\n\n\tprivate getRqbV2(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { stmt, customResultMapper } = this;\n\t\tconst row = stmt.executeSync(params as any[]).getFirstSync() as Record<string, unknown> | undefined;\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['get'][]>\n\t\t\t\t?? makeJitRqbMapper<T['get'][]>(this.rqbConfig!))([row])\n\t\t\t: (customResultMapper as (rows: Record<string, unknown>[]) => unknown)([row]) as T['get'];\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.executeForRawResultSync(params as any[]).getAllSync();\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.cjs","names":["SQLiteSession","entityKind","NoopLogger","sql","SQLiteTransaction","SQLitePreparedQuery"],"sources":["../../src/expo-sqlite/session.ts"],"sourcesContent":["import type { SQLiteDatabase, SQLiteRunResult, SQLiteStatement } from 'expo-sqlite';\nimport type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLitePreparedQuery,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { type DrizzleTypeError, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport interface ExpoSQLiteSessionOptions {\n\tlogger?: Logger;\n\tuseJitMappers?: boolean;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class ExpoSQLiteSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<'sync', SQLiteRunResult, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLiteSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: SQLiteDatabase,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: ExpoSQLiteSessionOptions = {},\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\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): ExpoSQLitePreparedQuery<T> {\n\t\tconst stmt = this.client.prepareSync(query.sql);\n\t\treturn new ExpoSQLitePreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tthis.options.useJitMappers,\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\tconfig: RelationalQueryMapperConfig,\n\t): ExpoSQLitePreparedQuery<T, true> {\n\t\tconst stmt = this.client.prepareSync(query.sql);\n\t\treturn new ExpoSQLitePreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: ExpoSQLiteTransaction<TFullSchema, TRelations, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new ExpoSQLiteTransaction('sync', this.dialect, this, this.relations, this.schema);\n\t\tthis.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthis.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class ExpoSQLiteTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', SQLiteRunResult, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLiteTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: ExpoSQLiteTransaction<TFullSchema, TRelations, TSchema>,\n\t\t) => T extends Promise<any> ? DrizzleTypeError<\"Sync drivers can't use async functions in transactions!\">\n\t\t\t: T,\n\t): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new ExpoSQLiteTransaction(\n\t\t\t'sync',\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);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result as T;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class ExpoSQLitePreparedQuery<\n\tT extends PreparedQueryConfig = PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends SQLitePreparedQuery<\n\t{ type: 'sync'; run: SQLiteRunResult; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic override readonly [entityKind]: string = 'ExpoSQLitePreparedQuery';\n\tprivate jitMapper?: RowsMapper<any> | RelationalRowsMapper<any>;\n\n\tconstructor(\n\t\tprivate stmt: SQLiteStatement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate useJitMappers: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): SQLiteRunResult {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\tconst { changes, lastInsertRowId } = this.stmt.executeSync(params as any[]);\n\t\treturn {\n\t\t\tchanges,\n\t\t\tlastInsertRowId,\n\t\t};\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.executeSync(params as any[]).getAllSync();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['all'];\n\t\t}\n\n\t\treturn this.useJitMappers\n\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<T['all']>\n\t\t\t\t?? makeJitQueryMapper<T['all']>(fields!, joinsNotNullableMap))(rows)\n\t\t\t: rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate allRqbV2(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { query, logger, stmt, customResultMapper } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\t\tconst rows = stmt.executeSync(params as any[]).getAllSync() as Record<string, unknown>[];\n\n\t\treturn this.useJitMappers\n\t\t\t? (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['all']>\n\t\t\t\t?? makeJitRqbMapper<T['all']>(this.rqbConfig!))(rows)\n\t\t\t: (customResultMapper as (rows: Record<string, unknown>[]) => unknown)(rows) as T['all'];\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, stmt, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn stmt.executeSync(params as any[]).getFirstSync();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['get'];\n\t\t}\n\n\t\treturn this.useJitMappers\n\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<T['get'][]>\n\t\t\t\t?? makeJitQueryMapper<T['get'][]>(fields!, joinsNotNullableMap))(\n\t\t\t\t\t[row],\n\t\t\t\t)[0]\n\t\t\t: mapResultRow(this.fields!, row, this.joinsNotNullableMap);\n\t}\n\n\tprivate getRqbV2(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { stmt, customResultMapper } = this;\n\t\tconst row = stmt.executeSync(params as any[]).getFirstSync() as Record<string, unknown> | undefined;\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn this.useJitMappers\n\t\t\t? (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['get'][]>\n\t\t\t\t?? makeJitRqbMapper<T['get'][]>(this.rqbConfig!))([row])\n\t\t\t: (customResultMapper as (rows: Record<string, unknown>[]) => unknown)([row]) as T['get'];\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.executeForRawResultSync(params as any[]).getAllSync();\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ import { SQLiteDatabase, SQLiteRunResult, SQLiteStatement } from "expo-sqlite";
|
|
|
13
13
|
//#region src/expo-sqlite/session.d.ts
|
|
14
14
|
interface ExpoSQLiteSessionOptions {
|
|
15
15
|
logger?: Logger;
|
|
16
|
-
|
|
16
|
+
useJitMappers?: boolean;
|
|
17
17
|
}
|
|
18
18
|
type PreparedQueryConfig$1 = Omit<PreparedQueryConfig, 'statement' | 'run'>;
|
|
19
19
|
declare class ExpoSQLiteSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends SQLiteSession<'sync', SQLiteRunResult, TFullSchema, TRelations, TSchema> {
|
|
@@ -43,13 +43,13 @@ declare class ExpoSQLitePreparedQuery<T extends PreparedQueryConfig$1 = Prepared
|
|
|
43
43
|
private stmt;
|
|
44
44
|
private logger;
|
|
45
45
|
private fields;
|
|
46
|
-
private
|
|
46
|
+
private useJitMappers;
|
|
47
47
|
private customResultMapper?;
|
|
48
48
|
private isRqbV2Query?;
|
|
49
49
|
private rqbConfig?;
|
|
50
50
|
static readonly [entityKind]: string;
|
|
51
51
|
private jitMapper?;
|
|
52
|
-
constructor(stmt: SQLiteStatement, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod,
|
|
52
|
+
constructor(stmt: SQLiteStatement, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, useJitMappers: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
|
|
53
53
|
run(placeholderValues?: Record<string, unknown>): SQLiteRunResult;
|
|
54
54
|
all(placeholderValues?: Record<string, unknown>): T['all'];
|
|
55
55
|
private allRqbV2;
|