@fragno-dev/db 0.1.6 → 0.1.7
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/.turbo/turbo-build.log +212 -207
- package/CHANGELOG.md +8 -0
- package/dist/adapters/adapters.d.ts +6 -1
- package/dist/adapters/adapters.d.ts.map +1 -1
- package/dist/adapters/adapters.js +7 -1
- package/dist/adapters/adapters.js.map +1 -0
- package/dist/adapters/drizzle/drizzle-adapter.d.ts +5 -2
- package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +1 -1
- package/dist/adapters/drizzle/drizzle-adapter.js +23 -14
- package/dist/adapters/drizzle/drizzle-adapter.js.map +1 -1
- package/dist/adapters/drizzle/drizzle-connection-pool.js +40 -0
- package/dist/adapters/drizzle/drizzle-connection-pool.js.map +1 -0
- package/dist/adapters/drizzle/drizzle-query.js +24 -11
- package/dist/adapters/drizzle/drizzle-query.js.map +1 -1
- package/dist/adapters/drizzle/drizzle-uow-compiler.d.ts.map +1 -1
- package/dist/adapters/drizzle/drizzle-uow-compiler.js +8 -8
- package/dist/adapters/drizzle/drizzle-uow-compiler.js.map +1 -1
- package/dist/adapters/drizzle/drizzle-uow-executor.js +12 -5
- package/dist/adapters/drizzle/drizzle-uow-executor.js.map +1 -1
- package/dist/adapters/kysely/kysely-adapter.d.ts +5 -2
- package/dist/adapters/kysely/kysely-adapter.d.ts.map +1 -1
- package/dist/adapters/kysely/kysely-adapter.js +70 -39
- package/dist/adapters/kysely/kysely-adapter.js.map +1 -1
- package/dist/adapters/kysely/kysely-connection-pool.js +41 -0
- package/dist/adapters/kysely/kysely-connection-pool.js.map +1 -0
- package/dist/adapters/kysely/kysely-query-compiler.js +2 -3
- package/dist/adapters/kysely/kysely-query-compiler.js.map +1 -1
- package/dist/adapters/kysely/kysely-query.js +22 -11
- package/dist/adapters/kysely/kysely-query.js.map +1 -1
- package/dist/adapters/kysely/kysely-uow-compiler.js +5 -5
- package/dist/adapters/kysely/kysely-uow-compiler.js.map +1 -1
- package/dist/adapters/kysely/migration/execute-factory.js +8 -2
- package/dist/adapters/kysely/migration/execute-factory.js.map +1 -1
- package/dist/migration-engine/generation-engine.d.ts.map +1 -1
- package/dist/migration-engine/generation-engine.js +8 -1
- package/dist/migration-engine/generation-engine.js.map +1 -1
- package/dist/mod.d.ts +1 -1
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js.map +1 -1
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/alias.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/alias.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/casing.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/casing.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/column-builder.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/column-builder.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/column.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/column.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/entity.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/entity.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/errors.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/errors.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/pg-core/columns/common.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/columns/common.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/pg-core/columns/enum.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/columns/enum.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/pg-core/foreign-keys.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/foreign-keys.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/pg-core/unique-constraint.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/unique-constraint.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/pg-core/utils/array.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/pg-core/utils/array.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/query-builders/query-builder.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/query-builders/query-builder.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/query-promise.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/query-promise.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/relations.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/relations.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/selection-proxy.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/selection-proxy.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sql/expressions/conditions.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sql/expressions/conditions.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sql/expressions/select.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sql/expressions/select.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sql/functions/aggregate.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sql/functions/aggregate.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sql/sql.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sql/sql.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/columns/common.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/columns/common.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/db.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/db.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/dialect.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/dialect.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/foreign-keys.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/foreign-keys.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/count.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/count.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/delete.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/delete.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/insert.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/insert.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/query.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/query.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/raw.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/raw.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/select.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/select.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/query-builders/update.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/query-builders/update.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/table.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/table.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/unique-constraint.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/unique-constraint.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/utils.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/utils.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/sqlite-core/view-base.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/sqlite-core/view-base.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/subquery.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/subquery.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/table.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/table.js.map +1 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/table.utils.js +6 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/table.utils.js.map +1 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/tracing-utils.js +8 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/tracing-utils.js.map +1 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/tracing.js +8 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/tracing.js.map +1 -0
- package/dist/node_modules/.pnpm/{drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8 → drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260}/node_modules/drizzle-orm/utils.js +1 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/utils.js.map +1 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/view-common.js +6 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@libsql_client@0.15.15_@types_better-sql_aee8b50e4fe3dba0cf9f533329f36260/node_modules/drizzle-orm/view-common.js.map +1 -0
- package/package.json +4 -5
- package/src/adapters/adapters.ts +8 -0
- package/src/adapters/drizzle/drizzle-adapter-sqlite.test.ts +9 -11
- package/src/adapters/drizzle/drizzle-adapter.ts +31 -16
- package/src/adapters/drizzle/drizzle-connection-pool.ts +66 -0
- package/src/adapters/drizzle/drizzle-query.ts +33 -16
- package/src/adapters/drizzle/drizzle-uow-compiler.test.ts +57 -62
- package/src/adapters/drizzle/drizzle-uow-compiler.ts +16 -6
- package/src/adapters/drizzle/drizzle-uow-executor.ts +27 -4
- package/src/adapters/kysely/kysely-adapter.ts +94 -55
- package/src/adapters/kysely/kysely-connection-pool.ts +70 -0
- package/src/adapters/kysely/kysely-query-compiler.ts +10 -6
- package/src/adapters/kysely/kysely-query.ts +30 -17
- package/src/adapters/kysely/kysely-uow-compiler.test.ts +47 -47
- package/src/adapters/kysely/kysely-uow-compiler.ts +13 -8
- package/src/adapters/kysely/kysely-uow-joins.test.ts +34 -34
- package/src/adapters/kysely/migration/execute-factory.ts +24 -3
- package/src/fragment.test.ts +7 -0
- package/src/migration-engine/generation-engine.ts +18 -6
- package/src/mod.ts +1 -1
- package/src/shared/connection-pool.ts +24 -0
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/alias.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/casing.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/column-builder.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/column.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/entity.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/errors.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/columns/common.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/columns/enum.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/foreign-keys.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/unique-constraint.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/pg-core/utils/array.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/query-builders/query-builder.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/query-promise.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/relations.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/selection-proxy.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sql/expressions/conditions.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sql/expressions/select.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sql/functions/aggregate.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sql/sql.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/columns/common.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/db.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/dialect.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/foreign-keys.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/count.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/delete.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/insert.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/query.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/raw.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/select.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/query-builders/update.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/table.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/unique-constraint.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/utils.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/sqlite-core/view-base.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/subquery.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/table.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/table.utils.js +0 -6
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/table.utils.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/tracing-utils.js +0 -8
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/tracing-utils.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/tracing.js +0 -8
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/tracing.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/utils.js.map +0 -1
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/view-common.js +0 -6
- package/dist/node_modules/.pnpm/drizzle-orm@0.44.7_@electric-sql_pglite@0.3.11_@types_better-sqlite3@7.6.13_better-sqlite3@12.4.1_kysely@0.28.8/node_modules/drizzle-orm/view-common.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { AbstractQuery } from "../../query/query";
|
|
2
2
|
import type { AnySchema } from "../../schema/create";
|
|
3
|
-
import type { DrizzleConfig } from "./drizzle-adapter";
|
|
4
3
|
import type { CompiledMutation, UOWExecutor } from "../../query/unit-of-work";
|
|
5
4
|
import { createDrizzleUOWCompiler, type DrizzleCompiledQuery } from "./drizzle-uow-compiler";
|
|
6
5
|
import { executeDrizzleRetrievalPhase, executeDrizzleMutationPhase } from "./drizzle-uow-executor";
|
|
7
6
|
import { UnitOfWork } from "../../query/unit-of-work";
|
|
8
|
-
import { parseDrizzle, type DrizzleResult, type TableNameMapper } from "./shared";
|
|
7
|
+
import { parseDrizzle, type DrizzleResult, type TableNameMapper, type DBType } from "./shared";
|
|
9
8
|
import { createDrizzleUOWDecoder } from "./drizzle-uow-decoder";
|
|
9
|
+
import type { ConnectionPool } from "../../shared/connection-pool";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Configuration options for creating a Drizzle Unit of Work
|
|
@@ -27,36 +27,53 @@ export interface DrizzleUOWConfig {
|
|
|
27
27
|
* enabling features like SQL snapshot testing.
|
|
28
28
|
*
|
|
29
29
|
* @param schema - The database schema definition
|
|
30
|
-
* @param
|
|
30
|
+
* @param pool - Connection pool for acquiring database connections
|
|
31
|
+
* @param provider - SQL provider (sqlite, mysql, postgresql)
|
|
31
32
|
* @param mapper - Optional table name mapper for namespace prefixing
|
|
32
33
|
* @returns An AbstractQuery instance for performing database operations
|
|
33
34
|
*
|
|
34
35
|
* @example
|
|
35
36
|
* ```ts
|
|
36
|
-
* const
|
|
37
|
-
*
|
|
38
|
-
* provider: 'postgresql'
|
|
39
|
-
* });
|
|
37
|
+
* const pool = createSimpleConnectionPool(drizzle);
|
|
38
|
+
* const queryEngine = fromDrizzle(mySchema, pool, 'postgresql');
|
|
40
39
|
*
|
|
41
40
|
* const uow = queryEngine.createUnitOfWork('myOperation');
|
|
42
41
|
* ```
|
|
43
42
|
*/
|
|
44
43
|
export function fromDrizzle<T extends AnySchema>(
|
|
45
44
|
schema: T,
|
|
46
|
-
|
|
45
|
+
pool: ConnectionPool<DBType>,
|
|
46
|
+
provider: "sqlite" | "mysql" | "postgresql",
|
|
47
47
|
mapper?: TableNameMapper,
|
|
48
48
|
): AbstractQuery<T, DrizzleUOWConfig> {
|
|
49
|
-
const [db] = parseDrizzle(config.db);
|
|
50
|
-
const { provider } = config;
|
|
51
|
-
|
|
52
49
|
function createUOW(name?: string, uowConfig?: DrizzleUOWConfig) {
|
|
53
|
-
const uowCompiler = createDrizzleUOWCompiler(
|
|
50
|
+
const uowCompiler = createDrizzleUOWCompiler(
|
|
51
|
+
schema,
|
|
52
|
+
pool,
|
|
53
|
+
provider,
|
|
54
|
+
mapper,
|
|
55
|
+
uowConfig?.onQuery,
|
|
56
|
+
);
|
|
54
57
|
|
|
55
58
|
const executor: UOWExecutor<DrizzleCompiledQuery, DrizzleResult> = {
|
|
56
|
-
executeRetrievalPhase
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
async executeRetrievalPhase(retrievalBatch: DrizzleCompiledQuery[]) {
|
|
60
|
+
const conn = await pool.connect();
|
|
61
|
+
try {
|
|
62
|
+
const db = parseDrizzle(conn.db)[0];
|
|
63
|
+
return await executeDrizzleRetrievalPhase(db, retrievalBatch, provider);
|
|
64
|
+
} finally {
|
|
65
|
+
await conn.release();
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
async executeMutationPhase(mutationBatch: CompiledMutation<DrizzleCompiledQuery>[]) {
|
|
69
|
+
const conn = await pool.connect();
|
|
70
|
+
try {
|
|
71
|
+
const db = parseDrizzle(conn.db)[0];
|
|
72
|
+
return await executeDrizzleMutationPhase(db, mutationBatch, provider);
|
|
73
|
+
} finally {
|
|
74
|
+
await conn.release();
|
|
75
|
+
}
|
|
76
|
+
},
|
|
60
77
|
};
|
|
61
78
|
|
|
62
79
|
const decoder = createDrizzleUOWDecoder(schema, provider);
|
|
@@ -8,11 +8,12 @@ import {
|
|
|
8
8
|
type AnySchema,
|
|
9
9
|
} from "../../schema/create";
|
|
10
10
|
import { createDrizzleUOWCompiler } from "./drizzle-uow-compiler";
|
|
11
|
-
import type { DrizzleConfig } from "./drizzle-adapter";
|
|
12
11
|
import { drizzle } from "drizzle-orm/pglite";
|
|
13
12
|
import type { DBType } from "./shared";
|
|
14
13
|
import { UnitOfWork, type UOWDecoder } from "../../query/unit-of-work";
|
|
15
14
|
import { writeAndLoadSchema } from "./test-utils";
|
|
15
|
+
import type { ConnectionPool } from "../../shared/connection-pool";
|
|
16
|
+
import { createDrizzleConnectionPool } from "./drizzle-connection-pool";
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* Integration tests for Drizzle UOW compiler and executor.
|
|
@@ -48,7 +49,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
48
49
|
});
|
|
49
50
|
|
|
50
51
|
let db: DBType;
|
|
51
|
-
let
|
|
52
|
+
let pool: ConnectionPool<DBType>;
|
|
52
53
|
|
|
53
54
|
beforeAll(async () => {
|
|
54
55
|
// Write schema to file and dynamically import it
|
|
@@ -63,10 +64,8 @@ describe("drizzle-uow-compiler", () => {
|
|
|
63
64
|
schema: schemaModule,
|
|
64
65
|
}) as unknown as DBType;
|
|
65
66
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
provider: "postgresql",
|
|
69
|
-
};
|
|
67
|
+
// Wrap in connection pool
|
|
68
|
+
pool = createDrizzleConnectionPool(db);
|
|
70
69
|
|
|
71
70
|
return async () => {
|
|
72
71
|
await cleanup();
|
|
@@ -74,7 +73,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
74
73
|
});
|
|
75
74
|
|
|
76
75
|
function createTestUOWWithSchema<const T extends AnySchema>(schema: T) {
|
|
77
|
-
const compiler = createDrizzleUOWCompiler(schema,
|
|
76
|
+
const compiler = createDrizzleUOWCompiler(schema, pool, "postgresql");
|
|
78
77
|
const mockExecutor = {
|
|
79
78
|
executeRetrievalPhase: async () => [],
|
|
80
79
|
executeMutationPhase: async () => ({ success: true, createdInternalIds: [] }),
|
|
@@ -89,7 +88,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
89
88
|
}
|
|
90
89
|
|
|
91
90
|
function createTestUOW(name?: string) {
|
|
92
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
91
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
93
92
|
const mockExecutor = {
|
|
94
93
|
executeRetrievalPhase: async () => [],
|
|
95
94
|
executeMutationPhase: async () => ({ success: true, createdInternalIds: [] }),
|
|
@@ -104,7 +103,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
104
103
|
}
|
|
105
104
|
|
|
106
105
|
it("should create a compiler with the correct structure", () => {
|
|
107
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
106
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
108
107
|
|
|
109
108
|
expect(compiler).toBeDefined();
|
|
110
109
|
expect(compiler.compileRetrievalOperation).toBeInstanceOf(Function);
|
|
@@ -118,7 +117,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
118
117
|
b.whereIndex("idx_email", (eb) => eb("email", "=", "test@example.com")),
|
|
119
118
|
);
|
|
120
119
|
|
|
121
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
120
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
122
121
|
const compiled = uow.compile(compiler);
|
|
123
122
|
|
|
124
123
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -134,7 +133,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
134
133
|
b.whereIndex("idx_name", (eb) => eb("name", "=", "Alice")).select(["id", "name"]),
|
|
135
134
|
);
|
|
136
135
|
|
|
137
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
136
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
138
137
|
const compiled = uow.compile(compiler);
|
|
139
138
|
|
|
140
139
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -148,7 +147,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
148
147
|
const uow = createTestUOW();
|
|
149
148
|
uow.find("users", (b) => b.whereIndex("primary").pageSize(10));
|
|
150
149
|
|
|
151
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
150
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
152
151
|
const compiled = uow.compile(compiler);
|
|
153
152
|
|
|
154
153
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -162,7 +161,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
162
161
|
const uow = createTestUOW();
|
|
163
162
|
uow.find("users", (b) => b.whereIndex("primary").orderByIndex("primary", "desc"));
|
|
164
163
|
|
|
165
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
164
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
166
165
|
const compiled = uow.compile(compiler);
|
|
167
166
|
|
|
168
167
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -175,7 +174,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
175
174
|
const uow = createTestUOW();
|
|
176
175
|
uow.find("users", (b) => b.whereIndex("idx_name").orderByIndex("idx_name", "desc"));
|
|
177
176
|
|
|
178
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
177
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
179
178
|
const compiled = uow.compile(compiler);
|
|
180
179
|
|
|
181
180
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -191,7 +190,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
191
190
|
);
|
|
192
191
|
uow.find("posts", (b) => b.whereIndex("idx_title", (eb) => eb("title", "contains", "test")));
|
|
193
192
|
|
|
194
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
193
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
195
194
|
const compiled = uow.compile(compiler);
|
|
196
195
|
|
|
197
196
|
expect(compiled.retrievalBatch).toHaveLength(2);
|
|
@@ -207,7 +206,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
207
206
|
const uow = createTestUOW();
|
|
208
207
|
uow.find("users", (b) => b.whereIndex("primary").selectCount());
|
|
209
208
|
|
|
210
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
209
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
211
210
|
const compiled = uow.compile(compiler);
|
|
212
211
|
|
|
213
212
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -222,7 +221,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
222
221
|
b.whereIndex("idx_name", (eb) => eb("name", "starts with", "John")).selectCount(),
|
|
223
222
|
);
|
|
224
223
|
|
|
225
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
224
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
226
225
|
const compiled = uow.compile(compiler);
|
|
227
226
|
|
|
228
227
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -239,7 +238,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
239
238
|
b.whereIndex("idx_name").orderByIndex("idx_name", "asc").after(cursor).pageSize(10),
|
|
240
239
|
);
|
|
241
240
|
|
|
242
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
241
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
243
242
|
const compiled = uow.compile(compiler);
|
|
244
243
|
|
|
245
244
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -256,7 +255,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
256
255
|
b.whereIndex("idx_name").orderByIndex("idx_name", "desc").before(cursor).pageSize(10),
|
|
257
256
|
);
|
|
258
257
|
|
|
259
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
258
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
260
259
|
const compiled = uow.compile(compiler);
|
|
261
260
|
|
|
262
261
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -277,7 +276,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
277
276
|
.pageSize(5),
|
|
278
277
|
);
|
|
279
278
|
|
|
280
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
279
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
281
280
|
const compiled = uow.compile(compiler);
|
|
282
281
|
|
|
283
282
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -295,7 +294,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
295
294
|
.join((jb) => jb.author()),
|
|
296
295
|
);
|
|
297
296
|
|
|
298
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
297
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
299
298
|
const compiled = uow.compile(compiler);
|
|
300
299
|
|
|
301
300
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -318,7 +317,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
318
317
|
),
|
|
319
318
|
);
|
|
320
319
|
|
|
321
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
320
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
322
321
|
const compiled = uow.compile(compiler);
|
|
323
322
|
|
|
324
323
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -336,7 +335,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
336
335
|
.join((jb) => jb.author((builder) => builder.orderByIndex("idx_name", "desc"))),
|
|
337
336
|
);
|
|
338
337
|
|
|
339
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
338
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
340
339
|
const compiled = uow.compile(compiler);
|
|
341
340
|
|
|
342
341
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -352,7 +351,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
352
351
|
b.whereIndex("primary").join((jb) => jb.author((builder) => builder.pageSize(5))),
|
|
353
352
|
);
|
|
354
353
|
|
|
355
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
354
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
356
355
|
const compiled = uow.compile(compiler);
|
|
357
356
|
|
|
358
357
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -373,7 +372,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
373
372
|
age: 30,
|
|
374
373
|
});
|
|
375
374
|
|
|
376
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
375
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
377
376
|
const compiled = uow.compile(compiler);
|
|
378
377
|
const [batch] = compiled.mutationBatch;
|
|
379
378
|
assert(batch);
|
|
@@ -399,7 +398,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
399
398
|
}),
|
|
400
399
|
);
|
|
401
400
|
|
|
402
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
401
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
403
402
|
const compiled = uow.compile(compiler);
|
|
404
403
|
const [batch] = compiled.mutationBatch;
|
|
405
404
|
assert(batch);
|
|
@@ -415,7 +414,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
415
414
|
const userId = FragnoId.fromExternal("user123", 5);
|
|
416
415
|
uow.update("users", userId, (b) => b.set({ age: 18 }).check());
|
|
417
416
|
|
|
418
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
417
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
419
418
|
const compiled = uow.compile(compiler);
|
|
420
419
|
const [batch] = compiled.mutationBatch;
|
|
421
420
|
assert(batch);
|
|
@@ -431,7 +430,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
431
430
|
const userId = FragnoId.fromExternal("user123", 0);
|
|
432
431
|
uow.delete("users", userId);
|
|
433
432
|
|
|
434
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
433
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
435
434
|
const compiled = uow.compile(compiler);
|
|
436
435
|
const [batch] = compiled.mutationBatch;
|
|
437
436
|
assert(batch);
|
|
@@ -447,7 +446,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
447
446
|
const userId = FragnoId.fromExternal("user123", 3);
|
|
448
447
|
uow.delete("users", userId, (b) => b.check());
|
|
449
448
|
|
|
450
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
449
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
451
450
|
const compiled = uow.compile(compiler);
|
|
452
451
|
const [batch] = compiled.mutationBatch;
|
|
453
452
|
assert(batch);
|
|
@@ -467,7 +466,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
467
466
|
}),
|
|
468
467
|
);
|
|
469
468
|
|
|
470
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
469
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
471
470
|
const compiled = uow.compile(compiler);
|
|
472
471
|
const [batch] = compiled.mutationBatch;
|
|
473
472
|
assert(batch);
|
|
@@ -482,7 +481,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
482
481
|
const uow = createTestUOW();
|
|
483
482
|
uow.delete("users", "user123");
|
|
484
483
|
|
|
485
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
484
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
486
485
|
const compiled = uow.compile(compiler);
|
|
487
486
|
const [batch] = compiled.mutationBatch;
|
|
488
487
|
assert(batch);
|
|
@@ -522,7 +521,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
522
521
|
const userId = FragnoId.fromExternal("user456", 0);
|
|
523
522
|
uow.delete("posts", userId);
|
|
524
523
|
|
|
525
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
524
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
526
525
|
const compiled = uow.compile(compiler);
|
|
527
526
|
const [createBatch, updateBatch, deleteBatch] = compiled.mutationBatch;
|
|
528
527
|
|
|
@@ -561,7 +560,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
561
560
|
const userId = FragnoId.fromExternal("user123", 3);
|
|
562
561
|
uow.update("users", userId, (b) => b.set({ age: 31 }).check());
|
|
563
562
|
|
|
564
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
563
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
565
564
|
const compiled = uow.compile(compiler);
|
|
566
565
|
|
|
567
566
|
expect(compiled.name).toBe("update-user-balance");
|
|
@@ -593,7 +592,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
593
592
|
),
|
|
594
593
|
);
|
|
595
594
|
|
|
596
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
595
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
597
596
|
const compiled = uow.compile(compiler);
|
|
598
597
|
|
|
599
598
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -607,7 +606,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
607
606
|
const uow = createTestUOW();
|
|
608
607
|
uow.find("users", (b) => b.whereIndex("primary", () => false));
|
|
609
608
|
|
|
610
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
609
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
611
610
|
const compiled = uow.compile(compiler);
|
|
612
611
|
|
|
613
612
|
// When condition is false, the operation should return null and not be added to batch
|
|
@@ -618,7 +617,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
618
617
|
const uow = createTestUOW();
|
|
619
618
|
uow.find("users", (b) => b.whereIndex("primary", () => true));
|
|
620
619
|
|
|
621
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
620
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
622
621
|
const compiled = uow.compile(compiler);
|
|
623
622
|
|
|
624
623
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -635,7 +634,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
635
634
|
const userId = FragnoId.fromExternal("user123", 5);
|
|
636
635
|
uow.update("users", userId, (b) => b.set({ age: 31 }).check());
|
|
637
636
|
|
|
638
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
637
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
639
638
|
const compiled = uow.compile(compiler);
|
|
640
639
|
const [batch] = compiled.mutationBatch;
|
|
641
640
|
assert(batch);
|
|
@@ -652,7 +651,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
652
651
|
const userId = FragnoId.fromExternal("user456", 3);
|
|
653
652
|
uow.delete("users", userId, (b) => b.check());
|
|
654
653
|
|
|
655
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
654
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
656
655
|
const compiled = uow.compile(compiler);
|
|
657
656
|
const [batch] = compiled.mutationBatch;
|
|
658
657
|
assert(batch);
|
|
@@ -672,7 +671,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
672
671
|
uow.update("users", userId, (b) => b.set({ age: 30 }).check());
|
|
673
672
|
uow.update("posts", postId, (b) => b.set({ viewCount: 100 }).check());
|
|
674
673
|
|
|
675
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
674
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
676
675
|
const compiled = uow.compile(compiler);
|
|
677
676
|
const [userBatch, postBatch] = compiled.mutationBatch;
|
|
678
677
|
|
|
@@ -699,7 +698,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
699
698
|
const userId = FragnoId.fromExternal("user1", 0);
|
|
700
699
|
uow.update("users", userId, (b) => b.set({ age: 25 }));
|
|
701
700
|
|
|
702
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
701
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
703
702
|
const compiled = uow.compile(compiler);
|
|
704
703
|
const [batch] = compiled.mutationBatch;
|
|
705
704
|
assert(batch);
|
|
@@ -715,7 +714,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
715
714
|
it("should handle UOW with no operations", () => {
|
|
716
715
|
const uow = createTestUOW();
|
|
717
716
|
|
|
718
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
717
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
719
718
|
const compiled = uow.compile(compiler);
|
|
720
719
|
|
|
721
720
|
expect(compiled.retrievalBatch).toHaveLength(0);
|
|
@@ -726,7 +725,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
726
725
|
const uow = createTestUOW();
|
|
727
726
|
uow.find("users");
|
|
728
727
|
|
|
729
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
728
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
730
729
|
const compiled = uow.compile(compiler);
|
|
731
730
|
|
|
732
731
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -740,7 +739,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
740
739
|
email: "test@example.com",
|
|
741
740
|
});
|
|
742
741
|
|
|
743
|
-
const compiler = createDrizzleUOWCompiler(testSchema,
|
|
742
|
+
const compiler = createDrizzleUOWCompiler(testSchema, pool, "postgresql");
|
|
744
743
|
const compiled = uow.compile(compiler);
|
|
745
744
|
|
|
746
745
|
expect(compiled.retrievalBatch).toHaveLength(0);
|
|
@@ -770,7 +769,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
770
769
|
});
|
|
771
770
|
|
|
772
771
|
let defaultsDb: DBType;
|
|
773
|
-
let
|
|
772
|
+
let defaultsPool: ConnectionPool<DBType>;
|
|
774
773
|
|
|
775
774
|
beforeAll(async () => {
|
|
776
775
|
// Write schema to file and dynamically import it
|
|
@@ -785,10 +784,8 @@ describe("drizzle-uow-compiler", () => {
|
|
|
785
784
|
schema: schemaModule,
|
|
786
785
|
}) as unknown as DBType;
|
|
787
786
|
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
provider: "postgresql",
|
|
791
|
-
};
|
|
787
|
+
// Wrap in connection pool
|
|
788
|
+
defaultsPool = createDrizzleConnectionPool(defaultsDb);
|
|
792
789
|
|
|
793
790
|
return async () => {
|
|
794
791
|
await cleanup();
|
|
@@ -802,7 +799,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
802
799
|
message: "Test log",
|
|
803
800
|
});
|
|
804
801
|
|
|
805
|
-
const compiler = createDrizzleUOWCompiler(defaultsSchema,
|
|
802
|
+
const compiler = createDrizzleUOWCompiler(defaultsSchema, defaultsPool, "postgresql");
|
|
806
803
|
const compiled = uow.compile(compiler);
|
|
807
804
|
const [batch] = compiled.mutationBatch;
|
|
808
805
|
assert(batch);
|
|
@@ -832,7 +829,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
832
829
|
status: "active",
|
|
833
830
|
});
|
|
834
831
|
|
|
835
|
-
const compiler = createDrizzleUOWCompiler(defaultsSchema,
|
|
832
|
+
const compiler = createDrizzleUOWCompiler(defaultsSchema, defaultsPool, "postgresql");
|
|
836
833
|
const compiled = uow.compile(compiler);
|
|
837
834
|
const [batch] = compiled.mutationBatch;
|
|
838
835
|
assert(batch);
|
|
@@ -854,7 +851,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
854
851
|
counter: 999, // override the function default
|
|
855
852
|
});
|
|
856
853
|
|
|
857
|
-
const compiler = createDrizzleUOWCompiler(defaultsSchema,
|
|
854
|
+
const compiler = createDrizzleUOWCompiler(defaultsSchema, defaultsPool, "postgresql");
|
|
858
855
|
const compiled = uow.compile(compiler);
|
|
859
856
|
const [batch] = compiled.mutationBatch;
|
|
860
857
|
assert(batch);
|
|
@@ -875,7 +872,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
875
872
|
uow.create("logs", { message: "Log 2" });
|
|
876
873
|
uow.create("logs", { message: "Log 3" });
|
|
877
874
|
|
|
878
|
-
const compiler = createDrizzleUOWCompiler(defaultsSchema,
|
|
875
|
+
const compiler = createDrizzleUOWCompiler(defaultsSchema, defaultsPool, "postgresql");
|
|
879
876
|
const compiled = uow.compile(compiler);
|
|
880
877
|
|
|
881
878
|
expect(compiled.mutationBatch).toHaveLength(3);
|
|
@@ -930,7 +927,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
930
927
|
});
|
|
931
928
|
|
|
932
929
|
let nestedDb: DBType;
|
|
933
|
-
let
|
|
930
|
+
let nestedPool: ConnectionPool<DBType>;
|
|
934
931
|
|
|
935
932
|
beforeAll(async () => {
|
|
936
933
|
// Write schema to file and dynamically import it
|
|
@@ -945,10 +942,8 @@ describe("drizzle-uow-compiler", () => {
|
|
|
945
942
|
schema: schemaModule,
|
|
946
943
|
}) as unknown as DBType;
|
|
947
944
|
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
provider: "postgresql",
|
|
951
|
-
};
|
|
945
|
+
// Wrap in connection pool
|
|
946
|
+
nestedPool = createDrizzleConnectionPool(nestedDb);
|
|
952
947
|
|
|
953
948
|
return async () => {
|
|
954
949
|
await cleanup();
|
|
@@ -956,7 +951,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
956
951
|
}, 20000);
|
|
957
952
|
|
|
958
953
|
function createNestedUOW(name?: string) {
|
|
959
|
-
const compiler = createDrizzleUOWCompiler(nestedSchema,
|
|
954
|
+
const compiler = createDrizzleUOWCompiler(nestedSchema, nestedPool, "postgresql");
|
|
960
955
|
const mockExecutor = {
|
|
961
956
|
executeRetrievalPhase: async () => [],
|
|
962
957
|
executeMutationPhase: async () => ({ success: true, createdInternalIds: [] }),
|
|
@@ -984,7 +979,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
984
979
|
),
|
|
985
980
|
);
|
|
986
981
|
|
|
987
|
-
const compiler = createDrizzleUOWCompiler(nestedSchema,
|
|
982
|
+
const compiler = createDrizzleUOWCompiler(nestedSchema, nestedPool, "postgresql");
|
|
988
983
|
const compiled = uow.compile(compiler);
|
|
989
984
|
|
|
990
985
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -1022,7 +1017,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
1022
1017
|
),
|
|
1023
1018
|
);
|
|
1024
1019
|
|
|
1025
|
-
const compiler = createDrizzleUOWCompiler(nestedSchema,
|
|
1020
|
+
const compiler = createDrizzleUOWCompiler(nestedSchema, nestedPool, "postgresql");
|
|
1026
1021
|
const compiled = uow.compile(compiler);
|
|
1027
1022
|
|
|
1028
1023
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -1055,7 +1050,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
1055
1050
|
),
|
|
1056
1051
|
);
|
|
1057
1052
|
|
|
1058
|
-
const compiler = createDrizzleUOWCompiler(nestedSchema,
|
|
1053
|
+
const compiler = createDrizzleUOWCompiler(nestedSchema, nestedPool, "postgresql");
|
|
1059
1054
|
const compiled = uow.compile(compiler);
|
|
1060
1055
|
|
|
1061
1056
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -1077,7 +1072,7 @@ describe("drizzle-uow-compiler", () => {
|
|
|
1077
1072
|
),
|
|
1078
1073
|
);
|
|
1079
1074
|
|
|
1080
|
-
const compiler = createDrizzleUOWCompiler(nestedSchema,
|
|
1075
|
+
const compiler = createDrizzleUOWCompiler(nestedSchema, nestedPool, "postgresql");
|
|
1081
1076
|
const compiled = uow.compile(compiler);
|
|
1082
1077
|
|
|
1083
1078
|
expect(compiled.retrievalBatch).toHaveLength(1);
|
|
@@ -8,13 +8,19 @@ import type {
|
|
|
8
8
|
UOWCompiler,
|
|
9
9
|
} from "../../query/unit-of-work";
|
|
10
10
|
import { buildCondition, type Condition } from "../../query/condition-builder";
|
|
11
|
-
import
|
|
12
|
-
|
|
11
|
+
import {
|
|
12
|
+
type ColumnType,
|
|
13
|
+
type TableType,
|
|
14
|
+
type TableNameMapper,
|
|
15
|
+
parseDrizzle,
|
|
16
|
+
type DBType,
|
|
17
|
+
} from "./shared";
|
|
13
18
|
import { encodeValues, ReferenceSubquery } from "../../query/result-transform";
|
|
14
19
|
import { serialize } from "../../schema/serialize";
|
|
15
20
|
import { decodeCursor, serializeCursorValues } from "../../query/cursor";
|
|
16
21
|
import type { CompiledJoin } from "../../query/orm/orm";
|
|
17
22
|
import { getOrderedJoinColumns } from "./join-column-utils";
|
|
23
|
+
import type { ConnectionPool } from "../../shared/connection-pool";
|
|
18
24
|
|
|
19
25
|
export type DrizzleCompiledQuery = {
|
|
20
26
|
sql: string;
|
|
@@ -28,19 +34,23 @@ export type DrizzleCompiledQuery = {
|
|
|
28
34
|
* that can be executed as a batch/transaction.
|
|
29
35
|
*
|
|
30
36
|
* @param schema - The database schema
|
|
31
|
-
* @param
|
|
37
|
+
* @param pool - Connection pool for acquiring database connections
|
|
38
|
+
* @param provider - SQL provider (sqlite, mysql, postgresql)
|
|
32
39
|
* @param mapper - Optional table name mapper for namespace prefixing
|
|
33
40
|
* @param onQuery - Optional callback to receive compiled queries for logging/debugging
|
|
34
41
|
* @returns A UOWCompiler instance for Drizzle
|
|
35
42
|
*/
|
|
36
43
|
export function createDrizzleUOWCompiler<TSchema extends AnySchema>(
|
|
37
44
|
schema: TSchema,
|
|
38
|
-
|
|
45
|
+
pool: ConnectionPool<DBType>,
|
|
46
|
+
provider: "sqlite" | "mysql" | "postgresql",
|
|
39
47
|
mapper?: TableNameMapper,
|
|
40
48
|
onQuery?: (query: DrizzleCompiledQuery) => void,
|
|
41
49
|
): UOWCompiler<TSchema, DrizzleCompiledQuery> {
|
|
42
|
-
|
|
43
|
-
|
|
50
|
+
// Get db synchronously for compilation (doesn't execute, just builds SQL)
|
|
51
|
+
// TODO: We don't even need a Drizzle instance with a db client attached here. `drizzle({ schema })` is enough.
|
|
52
|
+
const dbRaw = pool.getDatabaseSync();
|
|
53
|
+
const [db, drizzleTables] = parseDrizzle(dbRaw);
|
|
44
54
|
|
|
45
55
|
/**
|
|
46
56
|
* Convert a Fragno table to a Drizzle table
|
|
@@ -85,6 +85,11 @@ function getAffectedRows(result: unknown): number {
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
if (result && typeof result === "object") {
|
|
88
|
+
// libsql uses rowsAffected
|
|
89
|
+
if ("rowsAffected" in result && typeof result["rowsAffected"] === "number") {
|
|
90
|
+
return result["rowsAffected"];
|
|
91
|
+
}
|
|
92
|
+
|
|
88
93
|
if ("affectedRows" in result && typeof result["affectedRows"] === "number") {
|
|
89
94
|
return result["affectedRows"];
|
|
90
95
|
}
|
|
@@ -114,14 +119,20 @@ async function executeInTransaction(
|
|
|
114
119
|
db: DBType,
|
|
115
120
|
provider: "sqlite" | "mysql" | "postgresql",
|
|
116
121
|
syncExecutor: (db: SyncSQLiteDB) => void,
|
|
117
|
-
asyncExecutor: (tx: {
|
|
122
|
+
asyncExecutor: (tx: {
|
|
123
|
+
execute?: (sql: SQL) => Promise<unknown>;
|
|
124
|
+
run?: (sql: SQL) => Promise<unknown>;
|
|
125
|
+
}) => Promise<void>,
|
|
118
126
|
): Promise<void> {
|
|
119
127
|
if (provider === "sqlite" && isSyncSQLite(db)) {
|
|
120
128
|
assertSyncSQLite(db);
|
|
121
129
|
db.transaction(() => syncExecutor(db));
|
|
122
130
|
} else {
|
|
123
131
|
await db.transaction(
|
|
124
|
-
async (tx) =>
|
|
132
|
+
async (tx) =>
|
|
133
|
+
await asyncExecutor(
|
|
134
|
+
tx as { execute?: (sql: SQL) => Promise<unknown>; run?: (sql: SQL) => Promise<unknown> },
|
|
135
|
+
),
|
|
125
136
|
);
|
|
126
137
|
}
|
|
127
138
|
}
|
|
@@ -186,7 +197,13 @@ export async function executeDrizzleRetrievalPhase(
|
|
|
186
197
|
},
|
|
187
198
|
async (tx) => {
|
|
188
199
|
for (const query of retrievalBatch) {
|
|
189
|
-
const
|
|
200
|
+
const sqlObj = toSQL(query, provider);
|
|
201
|
+
// Fallback to run when execute is not available (e.g., libsql)
|
|
202
|
+
const executeMethod = tx.execute ?? tx.run;
|
|
203
|
+
if (!executeMethod) {
|
|
204
|
+
throw new Error("Transaction object has neither execute nor run method");
|
|
205
|
+
}
|
|
206
|
+
const result = (await executeMethod.call(tx, sqlObj)) as DrizzleResult;
|
|
190
207
|
retrievalResults.push(result);
|
|
191
208
|
}
|
|
192
209
|
},
|
|
@@ -232,7 +249,13 @@ export async function executeDrizzleMutationPhase(
|
|
|
232
249
|
},
|
|
233
250
|
async (tx) => {
|
|
234
251
|
for (const { query, expectedAffectedRows } of mutationBatch) {
|
|
235
|
-
const
|
|
252
|
+
const sqlObj = toSQL(query, provider);
|
|
253
|
+
// Fallback to run when execute is not available (e.g., libsql)
|
|
254
|
+
const executeMethod = tx.execute ?? tx.run;
|
|
255
|
+
if (!executeMethod) {
|
|
256
|
+
throw new Error("Transaction object has neither execute nor run method");
|
|
257
|
+
}
|
|
258
|
+
const result = await executeMethod.call(tx, sqlObj);
|
|
236
259
|
|
|
237
260
|
if (expectedAffectedRows === null) {
|
|
238
261
|
createdInternalIds.push(extractCreatedInternalId(result));
|