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
package/bun-sql/mysql/session.js
CHANGED
|
@@ -11,14 +11,14 @@ import { makeJitRqbMapper } from "../../relations.js";
|
|
|
11
11
|
var BunMySqlPreparedQuery = class extends MySqlPreparedQuery {
|
|
12
12
|
static [entityKind] = "BunMySqlPreparedQuery";
|
|
13
13
|
jitMapper;
|
|
14
|
-
constructor(client, query, params, logger, cache, queryMetadata, cacheConfig, fields,
|
|
14
|
+
constructor(client, query, params, logger, cache, queryMetadata, cacheConfig, fields, useJitMappers, customResultMapper, generatedIds, returningIds, isRqbV2Query, rqbConfig) {
|
|
15
15
|
super(cache, queryMetadata, cacheConfig);
|
|
16
16
|
this.client = client;
|
|
17
17
|
this.query = query;
|
|
18
18
|
this.params = params;
|
|
19
19
|
this.logger = logger;
|
|
20
20
|
this.fields = fields;
|
|
21
|
-
this.
|
|
21
|
+
this.useJitMappers = useJitMappers;
|
|
22
22
|
this.customResultMapper = customResultMapper;
|
|
23
23
|
this.generatedIds = generatedIds;
|
|
24
24
|
this.returningIds = returningIds;
|
|
@@ -57,14 +57,14 @@ var BunMySqlPreparedQuery = class extends MySqlPreparedQuery {
|
|
|
57
57
|
return await client.unsafe(query, params).values();
|
|
58
58
|
});
|
|
59
59
|
if (customResultMapper) return customResultMapper(rows);
|
|
60
|
-
return this.
|
|
60
|
+
return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))(rows) : rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
|
|
61
61
|
}
|
|
62
62
|
async executeRqbV2(placeholderValues = {}) {
|
|
63
63
|
const params = fillPlaceholders(this.params, placeholderValues);
|
|
64
64
|
this.logger.logQuery(this.query, params);
|
|
65
65
|
const { client, query, customResultMapper } = this;
|
|
66
66
|
const rows = await client.unsafe(query, params);
|
|
67
|
-
return this.
|
|
67
|
+
return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? makeJitRqbMapper(this.rqbConfig))(rows) : customResultMapper(rows);
|
|
68
68
|
}
|
|
69
69
|
async *iterator(placeholderValues = {}) {
|
|
70
70
|
const { fields, params: queryParams, query, joinsNotNullableMap, client, customResultMapper } = this;
|
|
@@ -75,7 +75,7 @@ var BunMySqlPreparedQuery = class extends MySqlPreparedQuery {
|
|
|
75
75
|
const hasRowsMapper = Boolean(fields || customResultMapper);
|
|
76
76
|
for (const row of rows) {
|
|
77
77
|
if (row === void 0 || Array.isArray(row) && row.length === 0) break;
|
|
78
|
-
if (this.isRqbV2Query) if (this.
|
|
78
|
+
if (this.isRqbV2Query) if (this.useJitMappers) yield (this.jitMapper = this.jitMapper ?? makeJitRqbMapper(this.rqbConfig))([row]);
|
|
79
79
|
else {
|
|
80
80
|
const mapped = customResultMapper([row]);
|
|
81
81
|
if (this.rqbConfig.isFirst) yield mapped;
|
|
@@ -84,7 +84,7 @@ var BunMySqlPreparedQuery = class extends MySqlPreparedQuery {
|
|
|
84
84
|
else if (hasRowsMapper) if (customResultMapper) {
|
|
85
85
|
const mappedRow = customResultMapper([row]);
|
|
86
86
|
yield Array.isArray(mappedRow) ? mappedRow[0] : mappedRow;
|
|
87
|
-
} else yield this.
|
|
87
|
+
} else yield this.useJitMappers ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))([row])[0] : mapResultRow(fields, row, joinsNotNullableMap);
|
|
88
88
|
else yield row;
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -105,10 +105,10 @@ var BunMySqlSession = class BunMySqlSession extends MySqlSession {
|
|
|
105
105
|
this.mode = options.mode;
|
|
106
106
|
}
|
|
107
107
|
prepareQuery(query, fields, customResultMapper, generatedIds, returningIds, queryMetadata, cacheConfig) {
|
|
108
|
-
return new BunMySqlPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, queryMetadata, cacheConfig, fields, this.options.
|
|
108
|
+
return new BunMySqlPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, queryMetadata, cacheConfig, fields, this.options.useJitMappers, customResultMapper, generatedIds, returningIds);
|
|
109
109
|
}
|
|
110
110
|
prepareRelationalQuery(query, fields, customResultMapper, config, generatedIds, returningIds) {
|
|
111
|
-
return new BunMySqlPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, void 0, void 0, fields, this.options.
|
|
111
|
+
return new BunMySqlPreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, void 0, void 0, fields, this.options.useJitMappers, customResultMapper, generatedIds, returningIds, true, config);
|
|
112
112
|
}
|
|
113
113
|
/** @internal */
|
|
114
114
|
async query(query, params) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","names":[],"sources":["../../../src/bun-sql/mysql/session.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport type { SavepointSQL, SQL as BunSQL, TransactionSQL } from 'bun';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\ttype Mode,\n\tMySqlPreparedQuery,\n\ttype MySqlPreparedQueryConfig,\n\ttype MySqlPreparedQueryHKT,\n\ttype MySqlQueryResultHKT,\n\tMySqlSession,\n\tMySqlTransaction,\n\ttype MySqlTransactionConfig,\n\ttype PreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport class BunMySqlPreparedQuery<T extends MySqlPreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends MySqlPreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'BunMySqlPreparedQuery';\n\tprivate jitMapper?:\n\t\t| RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t| RelationalRowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: BunSQL,\n\t\tprivate query: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate useJitMapper: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properries + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper(cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst {\n\t\t\tfields,\n\t\t\tclient,\n\t\t\tlogger,\n\t\t\tparams: rawParams,\n\t\t\tquery,\n\t\t\tjoinsNotNullableMap,\n\t\t\tcustomResultMapper,\n\t\t\treturningIds,\n\t\t\tgeneratedIds,\n\t\t} = this;\n\t\tconst params = fillPlaceholders(rawParams, placeholderValues);\n\n\t\tlogger.logQuery(query, params);\n\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(query, params, async () => {\n\t\t\t\treturn await client.unsafe(query, params);\n\t\t\t});\n\n\t\t\tconst insertId = res.lastInsertRowid;\n\t\t\tconst affectedRows = res.affectedRows;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\tconst rows = await this.queryWithCache(query, params, async () => {\n\t\t\treturn await client.unsafe(query, params).values();\n\t\t});\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper =\n\t\t\t\tthis.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\tfields!,\n\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t))(rows)\n\t\t\t: rows.map((row: unknown[]) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.query, params);\n\n\t\tconst { client, query, customResultMapper } = this;\n\t\tconst rows = await client.unsafe(query, params);\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['execute']>\n\t\t\t\t?? makeJitRqbMapper<T['execute']>(this.rqbConfig!))(rows)\n\t\t\t: (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t}\n\n\tasync *iterator(\n\t\tplaceholderValues: Record<string, unknown> = {},\n\t): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']> {\n\t\tconst { fields, params: queryParams, query, joinsNotNullableMap, client, customResultMapper } = this;\n\t\tconst params = fillPlaceholders(queryParams, placeholderValues);\n\t\tconst rows = await this.queryWithCache(query, params, async () => {\n\t\t\treturn await client.unsafe(query, params).values();\n\t\t});\n\t\tconst hasRowsMapper = Boolean(fields || customResultMapper);\n\n\t\tfor (const row of rows) {\n\t\t\tif (row === undefined || (Array.isArray(row) && row.length === 0)) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (this.isRqbV2Query) {\n\t\t\t\tif (this.useJitMapper) {\n\t\t\t\t\tyield (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['execute']>\n\t\t\t\t\t\t?? makeJitRqbMapper<T['execute']>(this.rqbConfig!))([row]);\n\t\t\t\t} else {\n\t\t\t\t\tconst mapped = (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])([row]);\n\t\t\t\t\tif (this.rqbConfig!.isFirst) yield mapped;\n\t\t\t\t\telse yield ((<any[]> mapped)[0]);\n\t\t\t\t}\n\t\t\t} else if (hasRowsMapper) {\n\t\t\t\tif (customResultMapper) {\n\t\t\t\t\tconst mappedRow = (customResultMapper as (rows: unknown[][]) => T['execute'])([row as unknown[]]);\n\t\t\t\t\tyield (Array.isArray(mappedRow) ? mappedRow[0] : mappedRow);\n\t\t\t\t} else {\n\t\t\t\t\tyield this.useJitMapper\n\t\t\t\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t\t\t: T['execute'])[]>\n\t\t\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\t\t\tfields!,\n\t\t\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t\t\t))([row])[0] as T['execute']\n\t\t\t\t\t\t: mapResultRow(fields!, row, joinsNotNullableMap);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tyield row as T['execute'];\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface BunMySqlSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMapper?: boolean;\n\tmode: Mode;\n}\n\nexport class BunMySqlSession<\n\tTSQL extends BunSQL,\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends MySqlSession<MySqlQueryResultHKT, BunMySqlPreparedQueryHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'BunMySqlSession';\n\n\tprivate logger: Logger;\n\tprivate mode: Mode;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\treadonly client: TSQL,\n\t\tdialect: MySqlDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\treadonly options: BunMySqlSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t\tthis.mode = options.mode;\n\t}\n\n\tprepareQuery<T extends MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PreparedQueryKind<BunMySqlPreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new BunMySqlPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t) as PreparedQueryKind<BunMySqlPreparedQueryHKT, T>;\n\t}\n\n\tprepareRelationalQuery<T extends MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tconfig: RelationalQueryMapperConfig,\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<BunMySqlPreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new BunMySqlPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t) as any;\n\t}\n\n\t/** @internal */\n\tasync query(query: string, params: unknown[]): Promise<Record<string, unknown>[]> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.unsafe(query, params);\n\t\treturn result;\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.unsafe(querySql.sql, querySql.params);\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst query = this.dialect.sqlToQuery(sql);\n\t\tconst data = await this.client.unsafe(query.sql, query.params).values();\n\n\t\tconst count = data[0][0];\n\t\tif (typeof count === 'number') return count;\n\t\treturn Number(count);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: BunMySqlTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: MySqlTransactionConfig,\n\t): Promise<T> {\n\t\tconst startTransactionSql = config\n\t\t\t? this.getStartTransactionSQL(config)?.inlineParams().toQuery(this.dialect).sql.slice(18) ?? ''\n\t\t\t: '';\n\n\t\tif (config?.isolationLevel) throw new Error(\"Driver doesn't support setting isolation level on transaction\");\n\n\t\treturn this.client.begin(startTransactionSql, async (client) => {\n\t\t\tconst session = new BunMySqlSession<TransactionSQL, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t);\n\t\t\tconst tx = new BunMySqlTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession as MySqlSession<any, any, any, any, any>,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\t0,\n\t\t\t\tthis.mode,\n\t\t\t);\n\t\t\t// if (config) {\n\t\t\t// \tconst setTransactionConfigSql = this.getSetTransactionSQL(config);\n\t\t\t// \tif (setTransactionConfigSql) {\n\t\t\t// \t\tawait tx.execute(setTransactionConfigSql);\n\t\t\t// \t}\n\t\t\t// }\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport class BunMySqlTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends MySqlTransaction<\n\tBunMySqlQueryResultHKT,\n\tBunMySqlPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'BunMySqlTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: BunMySqlTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn (<BunMySqlSession<TransactionSQL, any, any, any>> this.session).client.savepoint((client) => {\n\t\t\tconst session = new BunMySqlSession<SavepointSQL, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\t(<BunMySqlSession<any, any, any, any>> this.session).options,\n\t\t\t);\n\t\t\tconst tx = new BunMySqlTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession as MySqlSession<any, any, any, any, any>,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.nestedIndex + 1,\n\t\t\t\tthis.mode,\n\t\t\t);\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport interface BunMySqlQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: Record<string, unknown>[] & Record<string, unknown>;\n}\n\nexport interface BunMySqlPreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: BunMySqlPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","names":[],"sources":["../../../src/bun-sql/mysql/session.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport type { SavepointSQL, SQL as BunSQL, TransactionSQL } from 'bun';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\ttype Mode,\n\tMySqlPreparedQuery,\n\ttype MySqlPreparedQueryConfig,\n\ttype MySqlPreparedQueryHKT,\n\ttype MySqlQueryResultHKT,\n\tMySqlSession,\n\tMySqlTransaction,\n\ttype MySqlTransactionConfig,\n\ttype PreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport class BunMySqlPreparedQuery<T extends MySqlPreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends MySqlPreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'BunMySqlPreparedQuery';\n\tprivate jitMapper?:\n\t\t| RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t| RelationalRowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: BunSQL,\n\t\tprivate query: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate useJitMappers: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properries + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper(cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst {\n\t\t\tfields,\n\t\t\tclient,\n\t\t\tlogger,\n\t\t\tparams: rawParams,\n\t\t\tquery,\n\t\t\tjoinsNotNullableMap,\n\t\t\tcustomResultMapper,\n\t\t\treturningIds,\n\t\t\tgeneratedIds,\n\t\t} = this;\n\t\tconst params = fillPlaceholders(rawParams, placeholderValues);\n\n\t\tlogger.logQuery(query, params);\n\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(query, params, async () => {\n\t\t\t\treturn await client.unsafe(query, params);\n\t\t\t});\n\n\t\t\tconst insertId = res.lastInsertRowid;\n\t\t\tconst affectedRows = res.affectedRows;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\tconst rows = await this.queryWithCache(query, params, async () => {\n\t\t\treturn await client.unsafe(query, params).values();\n\t\t});\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn this.useJitMappers\n\t\t\t? (this.jitMapper =\n\t\t\t\tthis.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\tfields!,\n\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t))(rows)\n\t\t\t: rows.map((row: unknown[]) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.query, params);\n\n\t\tconst { client, query, customResultMapper } = this;\n\t\tconst rows = await client.unsafe(query, params);\n\n\t\treturn this.useJitMappers\n\t\t\t? (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['execute']>\n\t\t\t\t?? makeJitRqbMapper<T['execute']>(this.rqbConfig!))(rows)\n\t\t\t: (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t}\n\n\tasync *iterator(\n\t\tplaceholderValues: Record<string, unknown> = {},\n\t): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']> {\n\t\tconst { fields, params: queryParams, query, joinsNotNullableMap, client, customResultMapper } = this;\n\t\tconst params = fillPlaceholders(queryParams, placeholderValues);\n\t\tconst rows = await this.queryWithCache(query, params, async () => {\n\t\t\treturn await client.unsafe(query, params).values();\n\t\t});\n\t\tconst hasRowsMapper = Boolean(fields || customResultMapper);\n\n\t\tfor (const row of rows) {\n\t\t\tif (row === undefined || (Array.isArray(row) && row.length === 0)) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (this.isRqbV2Query) {\n\t\t\t\tif (this.useJitMappers) {\n\t\t\t\t\tyield (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['execute']>\n\t\t\t\t\t\t?? makeJitRqbMapper<T['execute']>(this.rqbConfig!))([row]);\n\t\t\t\t} else {\n\t\t\t\t\tconst mapped = (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])([row]);\n\t\t\t\t\tif (this.rqbConfig!.isFirst) yield mapped;\n\t\t\t\t\telse yield ((<any[]> mapped)[0]);\n\t\t\t\t}\n\t\t\t} else if (hasRowsMapper) {\n\t\t\t\tif (customResultMapper) {\n\t\t\t\t\tconst mappedRow = (customResultMapper as (rows: unknown[][]) => T['execute'])([row as unknown[]]);\n\t\t\t\t\tyield (Array.isArray(mappedRow) ? mappedRow[0] : mappedRow);\n\t\t\t\t} else {\n\t\t\t\t\tyield this.useJitMappers\n\t\t\t\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t\t\t: T['execute'])[]>\n\t\t\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\t\t\tfields!,\n\t\t\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t\t\t))([row])[0] as T['execute']\n\t\t\t\t\t\t: mapResultRow(fields!, row, joinsNotNullableMap);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tyield row as T['execute'];\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface BunMySqlSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMappers?: boolean;\n\tmode: Mode;\n}\n\nexport class BunMySqlSession<\n\tTSQL extends BunSQL,\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends MySqlSession<MySqlQueryResultHKT, BunMySqlPreparedQueryHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'BunMySqlSession';\n\n\tprivate logger: Logger;\n\tprivate mode: Mode;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\treadonly client: TSQL,\n\t\tdialect: MySqlDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\treadonly options: BunMySqlSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t\tthis.mode = options.mode;\n\t}\n\n\tprepareQuery<T extends MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PreparedQueryKind<BunMySqlPreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new BunMySqlPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t) as PreparedQueryKind<BunMySqlPreparedQueryHKT, T>;\n\t}\n\n\tprepareRelationalQuery<T extends MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tconfig: RelationalQueryMapperConfig,\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<BunMySqlPreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new BunMySqlPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t) as any;\n\t}\n\n\t/** @internal */\n\tasync query(query: string, params: unknown[]): Promise<Record<string, unknown>[]> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.unsafe(query, params);\n\t\treturn result;\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.unsafe(querySql.sql, querySql.params);\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst query = this.dialect.sqlToQuery(sql);\n\t\tconst data = await this.client.unsafe(query.sql, query.params).values();\n\n\t\tconst count = data[0][0];\n\t\tif (typeof count === 'number') return count;\n\t\treturn Number(count);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: BunMySqlTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: MySqlTransactionConfig,\n\t): Promise<T> {\n\t\tconst startTransactionSql = config\n\t\t\t? this.getStartTransactionSQL(config)?.inlineParams().toQuery(this.dialect).sql.slice(18) ?? ''\n\t\t\t: '';\n\n\t\tif (config?.isolationLevel) throw new Error(\"Driver doesn't support setting isolation level on transaction\");\n\n\t\treturn this.client.begin(startTransactionSql, async (client) => {\n\t\t\tconst session = new BunMySqlSession<TransactionSQL, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t);\n\t\t\tconst tx = new BunMySqlTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession as MySqlSession<any, any, any, any, any>,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\t0,\n\t\t\t\tthis.mode,\n\t\t\t);\n\t\t\t// if (config) {\n\t\t\t// \tconst setTransactionConfigSql = this.getSetTransactionSQL(config);\n\t\t\t// \tif (setTransactionConfigSql) {\n\t\t\t// \t\tawait tx.execute(setTransactionConfigSql);\n\t\t\t// \t}\n\t\t\t// }\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport class BunMySqlTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends MySqlTransaction<\n\tBunMySqlQueryResultHKT,\n\tBunMySqlPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'BunMySqlTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: BunMySqlTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn (<BunMySqlSession<TransactionSQL, any, any, any>> this.session).client.savepoint((client) => {\n\t\t\tconst session = new BunMySqlSession<SavepointSQL, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\t(<BunMySqlSession<any, any, any, any>> this.session).options,\n\t\t\t);\n\t\t\tconst tx = new BunMySqlTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession as MySqlSession<any, any, any, any, any>,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.nestedIndex + 1,\n\t\t\t\tthis.mode,\n\t\t\t);\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport interface BunMySqlQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: Record<string, unknown>[] & Record<string, unknown>;\n}\n\nexport interface BunMySqlPreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: BunMySqlPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
|
|
3
|
+
let __pg_core_array_ts = require("../../pg-core/array.cjs");
|
|
4
|
+
let __pg_core_codecs_ts = require("../../pg-core/codecs.cjs");
|
|
5
|
+
|
|
6
|
+
//#region src/bun-sql/postgres/codecs.ts
|
|
7
|
+
const bunSqlPgCodecs = (0, __pg_core_codecs_ts.refineGenericPgCodecs)({
|
|
8
|
+
date: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
9
|
+
"date:string": {
|
|
10
|
+
cast: __pg_core_codecs_ts.castToText,
|
|
11
|
+
castArray: __pg_core_codecs_ts.castToTextArr,
|
|
12
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
13
|
+
},
|
|
14
|
+
uuid: {
|
|
15
|
+
castArray: __pg_core_codecs_ts.castToTextArr,
|
|
16
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
17
|
+
},
|
|
18
|
+
timestamp: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
19
|
+
timestamptz: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
20
|
+
"timestamp:string": {
|
|
21
|
+
cast: __pg_core_codecs_ts.castToText,
|
|
22
|
+
castArray: __pg_core_codecs_ts.castToTextArr,
|
|
23
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
24
|
+
},
|
|
25
|
+
"timestamptz:string": {
|
|
26
|
+
cast: __pg_core_codecs_ts.castToText,
|
|
27
|
+
castArray: __pg_core_codecs_ts.castToTextArr,
|
|
28
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
29
|
+
},
|
|
30
|
+
float4: {
|
|
31
|
+
cast: __pg_core_codecs_ts.castToText,
|
|
32
|
+
castArray: __pg_core_codecs_ts.castToTextArr,
|
|
33
|
+
normalize: Number,
|
|
34
|
+
normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(Number),
|
|
35
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
36
|
+
},
|
|
37
|
+
bigint: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
38
|
+
"bigint:number": { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
39
|
+
"bigint:string": {
|
|
40
|
+
cast: __pg_core_codecs_ts.castToText,
|
|
41
|
+
castArray: __pg_core_codecs_ts.castToTextArr,
|
|
42
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
43
|
+
},
|
|
44
|
+
bigserial: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
45
|
+
"bigserial:number": { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
46
|
+
int: {
|
|
47
|
+
normalizeArray: (value, dimensions) => {
|
|
48
|
+
if (dimensions <= 1) {
|
|
49
|
+
if (value instanceof Int32Array) return Array.from(value);
|
|
50
|
+
return value;
|
|
51
|
+
}
|
|
52
|
+
const stack = [{
|
|
53
|
+
arr: value,
|
|
54
|
+
depth: 1
|
|
55
|
+
}];
|
|
56
|
+
while (stack.length > 0) {
|
|
57
|
+
const { arr, depth } = stack.pop();
|
|
58
|
+
if (depth === dimensions - 1) for (let i = 0; i < arr.length; i++) {
|
|
59
|
+
const leaf = arr[i];
|
|
60
|
+
if (leaf instanceof Int32Array) arr[i] = Array.from(leaf);
|
|
61
|
+
}
|
|
62
|
+
else for (let i = 0; i < arr.length; i++) stack.push({
|
|
63
|
+
arr: arr[i],
|
|
64
|
+
depth: depth + 1
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
return value;
|
|
68
|
+
},
|
|
69
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
70
|
+
},
|
|
71
|
+
bit: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
72
|
+
bool: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
73
|
+
box: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
74
|
+
box2d: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
75
|
+
box3d: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
76
|
+
char: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
77
|
+
cidr: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
78
|
+
circle: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
79
|
+
datemultirange: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
80
|
+
daterange: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
81
|
+
float8: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
82
|
+
geography: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
83
|
+
inet: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
84
|
+
int4multirange: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
85
|
+
int4range: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
86
|
+
int8multirange: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
87
|
+
int8range: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
88
|
+
lseg: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
89
|
+
macaddr: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
90
|
+
money: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
91
|
+
nummultirange: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
92
|
+
numrange: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
93
|
+
oid: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
94
|
+
path: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
95
|
+
polygon: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
96
|
+
raster: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
97
|
+
regclass: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
98
|
+
regconfig: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
99
|
+
regdictionary: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
100
|
+
regnamespace: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
101
|
+
regoper: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
102
|
+
regoperator: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
103
|
+
regproc: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
104
|
+
regprocedure: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
105
|
+
regrole: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
106
|
+
regtype: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
107
|
+
serial: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
108
|
+
smallint: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
109
|
+
smallserial: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
110
|
+
text: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
111
|
+
time: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
112
|
+
timetz: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
113
|
+
tsmultirange: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
114
|
+
tsquery: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
115
|
+
tsrange: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
116
|
+
tstzmultirange: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
117
|
+
tstzrange: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
118
|
+
tsvector: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
119
|
+
varbit: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
120
|
+
varchar: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
121
|
+
xml: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
122
|
+
bytea: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
123
|
+
enum: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
124
|
+
json: { normalizeParamArray: (0, __pg_core_codecs_ts.arrayCompatNormalizeInput)((v) => JSON.stringify(v), true) },
|
|
125
|
+
jsonb: { normalizeParamArray: (0, __pg_core_codecs_ts.arrayCompatNormalizeInput)((v) => JSON.stringify(v), true) },
|
|
126
|
+
geometry: {
|
|
127
|
+
normalizeArray: (0, __pg_core_codecs_ts.parsePgArrayAndNormalize)(__pg_core_codecs_ts.parseGeometryXY),
|
|
128
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
129
|
+
},
|
|
130
|
+
"geometry:tuple": {
|
|
131
|
+
normalizeArray: (0, __pg_core_codecs_ts.parsePgArrayAndNormalize)(__pg_core_codecs_ts.parseGeometryTuple),
|
|
132
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
133
|
+
},
|
|
134
|
+
interval: {
|
|
135
|
+
castArray: __pg_core_codecs_ts.castToTextArr,
|
|
136
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
137
|
+
},
|
|
138
|
+
line: {
|
|
139
|
+
cast: __pg_core_codecs_ts.castToText,
|
|
140
|
+
castArray: __pg_core_codecs_ts.castToTextArr,
|
|
141
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
142
|
+
},
|
|
143
|
+
"line:tuple": {
|
|
144
|
+
cast: __pg_core_codecs_ts.castToText,
|
|
145
|
+
castArray: __pg_core_codecs_ts.castToTextArr,
|
|
146
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
147
|
+
},
|
|
148
|
+
macaddr8: {
|
|
149
|
+
castArrayInJson: __pg_core_codecs_ts.castToTextArr,
|
|
150
|
+
castArray: __pg_core_codecs_ts.castToTextArr,
|
|
151
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
152
|
+
},
|
|
153
|
+
numeric: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
154
|
+
"numeric:number": { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
155
|
+
"numeric:bigint": { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
156
|
+
point: {
|
|
157
|
+
cast: __pg_core_codecs_ts.castToText,
|
|
158
|
+
castArray: __pg_core_codecs_ts.castToTextArr,
|
|
159
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
160
|
+
},
|
|
161
|
+
"point:tuple": {
|
|
162
|
+
cast: __pg_core_codecs_ts.castToText,
|
|
163
|
+
castArray: __pg_core_codecs_ts.castToTextArr,
|
|
164
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
165
|
+
},
|
|
166
|
+
halfvec: { normalizeParamArray: __pg_core_array_ts.makePgArray },
|
|
167
|
+
sparsevec: {
|
|
168
|
+
normalizeArray: __pg_core_array_ts.parsePgArray,
|
|
169
|
+
normalizeParamArray: __pg_core_array_ts.makePgArray
|
|
170
|
+
},
|
|
171
|
+
vector: { normalizeParamArray: __pg_core_array_ts.makePgArray }
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
//#endregion
|
|
175
|
+
exports.bunSqlPgCodecs = bunSqlPgCodecs;
|
|
176
|
+
//# sourceMappingURL=codecs.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codecs.cjs","names":["makePgArray","castToText","castToTextArr","parseGeometryXY","parseGeometryTuple","parsePgArray"],"sources":["../../../src/bun-sql/postgres/codecs.ts"],"sourcesContent":["import { 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} from '~/pg-core/codecs.ts';\n\nexport const bunSqlPgCodecs = refineGenericPgCodecs({\n\tdate: { normalizeParamArray: makePgArray },\n\t'date:string': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tuuid: {\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\ttimestamp: { normalizeParamArray: makePgArray },\n\ttimestamptz: { normalizeParamArray: makePgArray },\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\tfloat4: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalize: Number,\n\t\tnormalizeArray: arrayCompatNormalize(Number),\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tbigint: {\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\t'bigint:number': { normalizeParamArray: makePgArray },\n\t'bigint:string': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tbigserial: { normalizeParamArray: makePgArray },\n\t'bigserial:number': { normalizeParamArray: makePgArray },\n\tint: {\n\t\tnormalizeArray: (\n\t\t\tvalue: any,\n\t\t\tdimensions: number,\n\t\t) => {\n\t\t\tif (dimensions <= 1) {\n\t\t\t\t// eslint-disable-next-line drizzle-internal/no-instanceof\n\t\t\t\tif (value instanceof Int32Array) {\n\t\t\t\t\treturn Array.from(value) as any;\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tconst stack: { arr: any; depth: number }[] = [{ arr: value, depth: 1 }];\n\n\t\t\twhile (stack.length > 0) {\n\t\t\t\tconst { arr, depth } = stack.pop()!;\n\n\t\t\t\tif (depth === dimensions - 1) {\n\t\t\t\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\t\t\t\tconst leaf = arr[i];\n\t\t\t\t\t\t// eslint-disable-next-line drizzle-internal/no-instanceof\n\t\t\t\t\t\tif (leaf instanceof Int32Array) {\n\t\t\t\t\t\t\tarr[i] = Array.from(leaf);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\t\t\t\tstack.push({ arr: arr[i], depth: depth + 1 });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn value;\n\t\t},\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\n\tbit: { normalizeParamArray: makePgArray },\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\tjson: {\n\t\tnormalizeParamArray: arrayCompatNormalizeInput((v) => JSON.stringify(v), true),\n\t},\n\tjsonb: {\n\t\tnormalizeParamArray: arrayCompatNormalizeInput((v) => JSON.stringify(v), true),\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\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\tnumeric: { normalizeParamArray: makePgArray },\n\t'numeric:number': { normalizeParamArray: makePgArray },\n\t'numeric:bigint': { normalizeParamArray: makePgArray },\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\thalfvec: { normalizeParamArray: makePgArray },\n\tsparsevec: {\n\t\tnormalizeArray: parsePgArray,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tvector: { normalizeParamArray: makePgArray },\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PartialWithUndefined } from "../../utils.cjs";
|
|
2
|
+
import { Codec } from "../../codecs.cjs";
|
|
3
|
+
import * as __pg_core_codecs_ts0 from "../../pg-core/codecs.cjs";
|
|
4
|
+
|
|
5
|
+
//#region src/bun-sql/postgres/codecs.d.ts
|
|
6
|
+
declare const bunSqlPgCodecs: PartialWithUndefined<Record<__pg_core_codecs_ts0.PostgresType, Codec>>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { bunSqlPgCodecs };
|
|
9
|
+
//# sourceMappingURL=codecs.d.cts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PartialWithUndefined } from "../../utils.js";
|
|
2
|
+
import { Codec } from "../../codecs.js";
|
|
3
|
+
import * as __pg_core_codecs_ts0 from "../../pg-core/codecs.js";
|
|
4
|
+
|
|
5
|
+
//#region src/bun-sql/postgres/codecs.d.ts
|
|
6
|
+
declare const bunSqlPgCodecs: PartialWithUndefined<Record<__pg_core_codecs_ts0.PostgresType, Codec>>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { bunSqlPgCodecs };
|
|
9
|
+
//# sourceMappingURL=codecs.d.ts.map
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { makePgArray, parsePgArray } from "../../pg-core/array.js";
|
|
2
|
+
import { arrayCompatNormalize, arrayCompatNormalizeInput, castToText, castToTextArr, parseGeometryTuple, parseGeometryXY, parsePgArrayAndNormalize, refineGenericPgCodecs } from "../../pg-core/codecs.js";
|
|
3
|
+
|
|
4
|
+
//#region src/bun-sql/postgres/codecs.ts
|
|
5
|
+
const bunSqlPgCodecs = refineGenericPgCodecs({
|
|
6
|
+
date: { normalizeParamArray: makePgArray },
|
|
7
|
+
"date:string": {
|
|
8
|
+
cast: castToText,
|
|
9
|
+
castArray: castToTextArr,
|
|
10
|
+
normalizeParamArray: makePgArray
|
|
11
|
+
},
|
|
12
|
+
uuid: {
|
|
13
|
+
castArray: castToTextArr,
|
|
14
|
+
normalizeParamArray: makePgArray
|
|
15
|
+
},
|
|
16
|
+
timestamp: { normalizeParamArray: makePgArray },
|
|
17
|
+
timestamptz: { normalizeParamArray: makePgArray },
|
|
18
|
+
"timestamp:string": {
|
|
19
|
+
cast: castToText,
|
|
20
|
+
castArray: castToTextArr,
|
|
21
|
+
normalizeParamArray: makePgArray
|
|
22
|
+
},
|
|
23
|
+
"timestamptz:string": {
|
|
24
|
+
cast: castToText,
|
|
25
|
+
castArray: castToTextArr,
|
|
26
|
+
normalizeParamArray: makePgArray
|
|
27
|
+
},
|
|
28
|
+
float4: {
|
|
29
|
+
cast: castToText,
|
|
30
|
+
castArray: castToTextArr,
|
|
31
|
+
normalize: Number,
|
|
32
|
+
normalizeArray: arrayCompatNormalize(Number),
|
|
33
|
+
normalizeParamArray: makePgArray
|
|
34
|
+
},
|
|
35
|
+
bigint: { normalizeParamArray: makePgArray },
|
|
36
|
+
"bigint:number": { normalizeParamArray: makePgArray },
|
|
37
|
+
"bigint:string": {
|
|
38
|
+
cast: castToText,
|
|
39
|
+
castArray: castToTextArr,
|
|
40
|
+
normalizeParamArray: makePgArray
|
|
41
|
+
},
|
|
42
|
+
bigserial: { normalizeParamArray: makePgArray },
|
|
43
|
+
"bigserial:number": { normalizeParamArray: makePgArray },
|
|
44
|
+
int: {
|
|
45
|
+
normalizeArray: (value, dimensions) => {
|
|
46
|
+
if (dimensions <= 1) {
|
|
47
|
+
if (value instanceof Int32Array) return Array.from(value);
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
50
|
+
const stack = [{
|
|
51
|
+
arr: value,
|
|
52
|
+
depth: 1
|
|
53
|
+
}];
|
|
54
|
+
while (stack.length > 0) {
|
|
55
|
+
const { arr, depth } = stack.pop();
|
|
56
|
+
if (depth === dimensions - 1) for (let i = 0; i < arr.length; i++) {
|
|
57
|
+
const leaf = arr[i];
|
|
58
|
+
if (leaf instanceof Int32Array) arr[i] = Array.from(leaf);
|
|
59
|
+
}
|
|
60
|
+
else for (let i = 0; i < arr.length; i++) stack.push({
|
|
61
|
+
arr: arr[i],
|
|
62
|
+
depth: depth + 1
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return value;
|
|
66
|
+
},
|
|
67
|
+
normalizeParamArray: makePgArray
|
|
68
|
+
},
|
|
69
|
+
bit: { normalizeParamArray: makePgArray },
|
|
70
|
+
bool: { normalizeParamArray: makePgArray },
|
|
71
|
+
box: { normalizeParamArray: makePgArray },
|
|
72
|
+
box2d: { normalizeParamArray: makePgArray },
|
|
73
|
+
box3d: { normalizeParamArray: makePgArray },
|
|
74
|
+
char: { normalizeParamArray: makePgArray },
|
|
75
|
+
cidr: { normalizeParamArray: makePgArray },
|
|
76
|
+
circle: { normalizeParamArray: makePgArray },
|
|
77
|
+
datemultirange: { normalizeParamArray: makePgArray },
|
|
78
|
+
daterange: { normalizeParamArray: makePgArray },
|
|
79
|
+
float8: { normalizeParamArray: makePgArray },
|
|
80
|
+
geography: { normalizeParamArray: makePgArray },
|
|
81
|
+
inet: { normalizeParamArray: makePgArray },
|
|
82
|
+
int4multirange: { normalizeParamArray: makePgArray },
|
|
83
|
+
int4range: { normalizeParamArray: makePgArray },
|
|
84
|
+
int8multirange: { normalizeParamArray: makePgArray },
|
|
85
|
+
int8range: { normalizeParamArray: makePgArray },
|
|
86
|
+
lseg: { normalizeParamArray: makePgArray },
|
|
87
|
+
macaddr: { normalizeParamArray: makePgArray },
|
|
88
|
+
money: { normalizeParamArray: makePgArray },
|
|
89
|
+
nummultirange: { normalizeParamArray: makePgArray },
|
|
90
|
+
numrange: { normalizeParamArray: makePgArray },
|
|
91
|
+
oid: { normalizeParamArray: makePgArray },
|
|
92
|
+
path: { normalizeParamArray: makePgArray },
|
|
93
|
+
polygon: { normalizeParamArray: makePgArray },
|
|
94
|
+
raster: { normalizeParamArray: makePgArray },
|
|
95
|
+
regclass: { normalizeParamArray: makePgArray },
|
|
96
|
+
regconfig: { normalizeParamArray: makePgArray },
|
|
97
|
+
regdictionary: { normalizeParamArray: makePgArray },
|
|
98
|
+
regnamespace: { normalizeParamArray: makePgArray },
|
|
99
|
+
regoper: { normalizeParamArray: makePgArray },
|
|
100
|
+
regoperator: { normalizeParamArray: makePgArray },
|
|
101
|
+
regproc: { normalizeParamArray: makePgArray },
|
|
102
|
+
regprocedure: { normalizeParamArray: makePgArray },
|
|
103
|
+
regrole: { normalizeParamArray: makePgArray },
|
|
104
|
+
regtype: { normalizeParamArray: makePgArray },
|
|
105
|
+
serial: { normalizeParamArray: makePgArray },
|
|
106
|
+
smallint: { normalizeParamArray: makePgArray },
|
|
107
|
+
smallserial: { normalizeParamArray: makePgArray },
|
|
108
|
+
text: { normalizeParamArray: makePgArray },
|
|
109
|
+
time: { normalizeParamArray: makePgArray },
|
|
110
|
+
timetz: { normalizeParamArray: makePgArray },
|
|
111
|
+
tsmultirange: { normalizeParamArray: makePgArray },
|
|
112
|
+
tsquery: { normalizeParamArray: makePgArray },
|
|
113
|
+
tsrange: { normalizeParamArray: makePgArray },
|
|
114
|
+
tstzmultirange: { normalizeParamArray: makePgArray },
|
|
115
|
+
tstzrange: { normalizeParamArray: makePgArray },
|
|
116
|
+
tsvector: { normalizeParamArray: makePgArray },
|
|
117
|
+
varbit: { normalizeParamArray: makePgArray },
|
|
118
|
+
varchar: { normalizeParamArray: makePgArray },
|
|
119
|
+
xml: { normalizeParamArray: makePgArray },
|
|
120
|
+
bytea: { normalizeParamArray: makePgArray },
|
|
121
|
+
enum: { normalizeParamArray: makePgArray },
|
|
122
|
+
json: { normalizeParamArray: arrayCompatNormalizeInput((v) => JSON.stringify(v), true) },
|
|
123
|
+
jsonb: { normalizeParamArray: arrayCompatNormalizeInput((v) => JSON.stringify(v), true) },
|
|
124
|
+
geometry: {
|
|
125
|
+
normalizeArray: parsePgArrayAndNormalize(parseGeometryXY),
|
|
126
|
+
normalizeParamArray: makePgArray
|
|
127
|
+
},
|
|
128
|
+
"geometry:tuple": {
|
|
129
|
+
normalizeArray: parsePgArrayAndNormalize(parseGeometryTuple),
|
|
130
|
+
normalizeParamArray: makePgArray
|
|
131
|
+
},
|
|
132
|
+
interval: {
|
|
133
|
+
castArray: castToTextArr,
|
|
134
|
+
normalizeParamArray: makePgArray
|
|
135
|
+
},
|
|
136
|
+
line: {
|
|
137
|
+
cast: castToText,
|
|
138
|
+
castArray: castToTextArr,
|
|
139
|
+
normalizeParamArray: makePgArray
|
|
140
|
+
},
|
|
141
|
+
"line:tuple": {
|
|
142
|
+
cast: castToText,
|
|
143
|
+
castArray: castToTextArr,
|
|
144
|
+
normalizeParamArray: makePgArray
|
|
145
|
+
},
|
|
146
|
+
macaddr8: {
|
|
147
|
+
castArrayInJson: castToTextArr,
|
|
148
|
+
castArray: castToTextArr,
|
|
149
|
+
normalizeParamArray: makePgArray
|
|
150
|
+
},
|
|
151
|
+
numeric: { normalizeParamArray: makePgArray },
|
|
152
|
+
"numeric:number": { normalizeParamArray: makePgArray },
|
|
153
|
+
"numeric:bigint": { normalizeParamArray: makePgArray },
|
|
154
|
+
point: {
|
|
155
|
+
cast: castToText,
|
|
156
|
+
castArray: castToTextArr,
|
|
157
|
+
normalizeParamArray: makePgArray
|
|
158
|
+
},
|
|
159
|
+
"point:tuple": {
|
|
160
|
+
cast: castToText,
|
|
161
|
+
castArray: castToTextArr,
|
|
162
|
+
normalizeParamArray: makePgArray
|
|
163
|
+
},
|
|
164
|
+
halfvec: { normalizeParamArray: makePgArray },
|
|
165
|
+
sparsevec: {
|
|
166
|
+
normalizeArray: parsePgArray,
|
|
167
|
+
normalizeParamArray: makePgArray
|
|
168
|
+
},
|
|
169
|
+
vector: { normalizeParamArray: makePgArray }
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
//#endregion
|
|
173
|
+
export { bunSqlPgCodecs };
|
|
174
|
+
//# sourceMappingURL=codecs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codecs.js","names":[],"sources":["../../../src/bun-sql/postgres/codecs.ts"],"sourcesContent":["import { 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} from '~/pg-core/codecs.ts';\n\nexport const bunSqlPgCodecs = refineGenericPgCodecs({\n\tdate: { normalizeParamArray: makePgArray },\n\t'date:string': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tuuid: {\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\ttimestamp: { normalizeParamArray: makePgArray },\n\ttimestamptz: { normalizeParamArray: makePgArray },\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\tfloat4: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalize: Number,\n\t\tnormalizeArray: arrayCompatNormalize(Number),\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tbigint: {\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\t'bigint:number': { normalizeParamArray: makePgArray },\n\t'bigint:string': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tbigserial: { normalizeParamArray: makePgArray },\n\t'bigserial:number': { normalizeParamArray: makePgArray },\n\tint: {\n\t\tnormalizeArray: (\n\t\t\tvalue: any,\n\t\t\tdimensions: number,\n\t\t) => {\n\t\t\tif (dimensions <= 1) {\n\t\t\t\t// eslint-disable-next-line drizzle-internal/no-instanceof\n\t\t\t\tif (value instanceof Int32Array) {\n\t\t\t\t\treturn Array.from(value) as any;\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tconst stack: { arr: any; depth: number }[] = [{ arr: value, depth: 1 }];\n\n\t\t\twhile (stack.length > 0) {\n\t\t\t\tconst { arr, depth } = stack.pop()!;\n\n\t\t\t\tif (depth === dimensions - 1) {\n\t\t\t\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\t\t\t\tconst leaf = arr[i];\n\t\t\t\t\t\t// eslint-disable-next-line drizzle-internal/no-instanceof\n\t\t\t\t\t\tif (leaf instanceof Int32Array) {\n\t\t\t\t\t\t\tarr[i] = Array.from(leaf);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\t\t\t\tstack.push({ arr: arr[i], depth: depth + 1 });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn value;\n\t\t},\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\n\tbit: { normalizeParamArray: makePgArray },\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\tjson: {\n\t\tnormalizeParamArray: arrayCompatNormalizeInput((v) => JSON.stringify(v), true),\n\t},\n\tjsonb: {\n\t\tnormalizeParamArray: arrayCompatNormalizeInput((v) => JSON.stringify(v), true),\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\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\tnumeric: { normalizeParamArray: makePgArray },\n\t'numeric:number': { normalizeParamArray: makePgArray },\n\t'numeric:bigint': { normalizeParamArray: makePgArray },\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\thalfvec: { normalizeParamArray: makePgArray },\n\tsparsevec: {\n\t\tnormalizeArray: parsePgArray,\n\t\tnormalizeParamArray: makePgArray,\n\t},\n\tvector: { normalizeParamArray: makePgArray },\n});\n"],"mappings":"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"}
|