@fragno-dev/db 0.1.6 → 0.1.8
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 +14 -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 +10 -11
- 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-pglite.test.ts +54 -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 +182 -62
- package/src/adapters/drizzle/drizzle-uow-compiler.ts +23 -14
- 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
|
@@ -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
|
|
@@ -175,16 +185,15 @@ export function createDrizzleUOWCompiler<TSchema extends AnySchema>(
|
|
|
175
185
|
const externalId = value.externalIdValue;
|
|
176
186
|
const internalIdCol = refTable.getInternalIdColumn();
|
|
177
187
|
const idCol = refTable.getIdColumn();
|
|
178
|
-
const drizzleRefTable = toDrizzleTable(refTable);
|
|
179
|
-
const drizzleIdCol = toDrizzleColumn(idCol);
|
|
180
188
|
|
|
181
|
-
//
|
|
189
|
+
// Map logical table name to physical table name using the mapper
|
|
190
|
+
const physicalTableName = mapper ? mapper.toPhysical(refTable.ormName) : refTable.ormName;
|
|
191
|
+
|
|
192
|
+
// Build a SQL subquery using Drizzle's sql template
|
|
193
|
+
// This creates a subquery: (SELECT _internalId FROM table WHERE id = ? LIMIT 1)
|
|
182
194
|
// Safe cast: we're building a SQL subquery that returns a single bigint value
|
|
183
|
-
processed[key] =
|
|
184
|
-
.select({
|
|
185
|
-
.from(drizzleRefTable)
|
|
186
|
-
.where(Drizzle.eq(drizzleIdCol, externalId))
|
|
187
|
-
.limit(1) as unknown;
|
|
195
|
+
processed[key] =
|
|
196
|
+
Drizzle.sql`(select ${Drizzle.sql.identifier(internalIdCol.name)} from ${Drizzle.sql.identifier(physicalTableName)} where ${Drizzle.sql.identifier(idCol.name)} = ${externalId} limit 1)`;
|
|
188
197
|
} else {
|
|
189
198
|
processed[key] = value;
|
|
190
199
|
}
|
|
@@ -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));
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { sql, type Kysely } from "kysely";
|
|
2
2
|
import type { SQLProvider } from "../../shared/providers";
|
|
3
|
-
import
|
|
3
|
+
import {
|
|
4
|
+
fragnoDatabaseAdapterNameFakeSymbol,
|
|
5
|
+
fragnoDatabaseAdapterVersionFakeSymbol,
|
|
6
|
+
type DatabaseAdapter,
|
|
7
|
+
} from "../adapters";
|
|
4
8
|
import { createMigrator, type Migrator } from "../../migration-engine/create";
|
|
5
9
|
import type { AnySchema } from "../../schema/create";
|
|
6
10
|
import type { CustomOperation, MigrationOperation } from "../../migration-engine/shared";
|
|
@@ -10,56 +14,68 @@ import { fromKysely } from "./kysely-query";
|
|
|
10
14
|
import { createTableNameMapper } from "./kysely-shared";
|
|
11
15
|
import { createHash } from "node:crypto";
|
|
12
16
|
import { SETTINGS_TABLE_NAME } from "../../shared/settings-schema";
|
|
17
|
+
import type { ConnectionPool } from "../../shared/connection-pool";
|
|
18
|
+
import { createKyselyConnectionPool } from "./kysely-connection-pool";
|
|
13
19
|
|
|
14
20
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
21
|
type KyselyAny = Kysely<any>;
|
|
16
22
|
|
|
17
23
|
export interface KyselyConfig {
|
|
18
|
-
db: KyselyAny | (() => KyselyAny);
|
|
24
|
+
db: KyselyAny | (() => KyselyAny | Promise<KyselyAny>);
|
|
19
25
|
provider: SQLProvider;
|
|
20
26
|
}
|
|
21
27
|
|
|
22
28
|
export class KyselyAdapter implements DatabaseAdapter {
|
|
23
|
-
#
|
|
29
|
+
#connectionPool: ConnectionPool<KyselyAny>;
|
|
30
|
+
#provider: SQLProvider;
|
|
24
31
|
|
|
25
32
|
constructor(config: KyselyConfig) {
|
|
26
|
-
this.#
|
|
33
|
+
this.#connectionPool = createKyselyConnectionPool(config.db);
|
|
34
|
+
this.#provider = config.provider;
|
|
27
35
|
}
|
|
28
36
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
37
|
+
get [fragnoDatabaseAdapterNameFakeSymbol](): string {
|
|
38
|
+
return "kysely";
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
get [fragnoDatabaseAdapterVersionFakeSymbol](): number {
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async close(): Promise<void> {
|
|
46
|
+
await this.#connectionPool.close();
|
|
32
47
|
}
|
|
33
48
|
|
|
34
49
|
createQueryEngine<T extends AnySchema>(schema: T, namespace: string): AbstractQuery<T> {
|
|
35
50
|
// Only create mapper if namespace is non-empty
|
|
36
51
|
const mapper = namespace ? createTableNameMapper(namespace) : undefined;
|
|
37
|
-
|
|
38
|
-
const resolvedConfig: KyselyConfig = {
|
|
39
|
-
db: this.#getDb(),
|
|
40
|
-
provider: this.#kyselyConfig.provider,
|
|
41
|
-
};
|
|
42
|
-
return fromKysely(schema, resolvedConfig, mapper);
|
|
52
|
+
return fromKysely(schema, this.#connectionPool, this.#provider, mapper);
|
|
43
53
|
}
|
|
44
54
|
|
|
45
55
|
async isConnectionHealthy(): Promise<boolean> {
|
|
56
|
+
const conn = await this.#connectionPool.connect();
|
|
46
57
|
try {
|
|
47
|
-
const
|
|
48
|
-
const result = await db.executeQuery(sql`SELECT 1 as healthy`.compile(db));
|
|
58
|
+
const result = await conn.db.executeQuery(sql`SELECT 1 as healthy`.compile(conn.db));
|
|
49
59
|
return (result.rows[0] as Record<string, unknown>)["healthy"] === 1;
|
|
50
60
|
} catch {
|
|
51
61
|
return false;
|
|
62
|
+
} finally {
|
|
63
|
+
await conn.release();
|
|
52
64
|
}
|
|
53
65
|
}
|
|
54
66
|
|
|
55
67
|
createMigrationEngine(schema: AnySchema, namespace: string): Migrator {
|
|
56
|
-
const manager = createSettingsManager(this.#getDb(), namespace);
|
|
57
68
|
const mapper = namespace ? createTableNameMapper(namespace) : undefined;
|
|
58
69
|
|
|
59
|
-
const preprocessMigrationOperations = (operations: MigrationOperation[]) => {
|
|
60
|
-
|
|
70
|
+
const preprocessMigrationOperations = (operations: MigrationOperation[], db: KyselyAny) => {
|
|
71
|
+
// Preprocess operations using the provided db instance
|
|
72
|
+
const config: KyselyConfig = {
|
|
73
|
+
db,
|
|
74
|
+
provider: this.#provider,
|
|
75
|
+
};
|
|
76
|
+
let preprocessed = preprocessOperations(operations, config);
|
|
61
77
|
|
|
62
|
-
if (this.#
|
|
78
|
+
if (this.#provider === "mysql") {
|
|
63
79
|
preprocessed.unshift({ type: "custom", sql: "SET FOREIGN_KEY_CHECKS = 0" });
|
|
64
80
|
preprocessed.push({ type: "custom", sql: "SET FOREIGN_KEY_CHECKS = 1" });
|
|
65
81
|
}
|
|
@@ -82,45 +98,52 @@ export class KyselyAdapter implements DatabaseAdapter {
|
|
|
82
98
|
};
|
|
83
99
|
};
|
|
84
100
|
|
|
85
|
-
const
|
|
101
|
+
const config: KyselyConfig = { db, provider: this.#provider };
|
|
86
102
|
return operations.flatMap((op) =>
|
|
87
|
-
execute(op,
|
|
103
|
+
execute(op, config, (node) => onCustomNode(node, db), mapper),
|
|
88
104
|
);
|
|
89
105
|
};
|
|
90
106
|
|
|
91
107
|
const migrator = createMigrator({
|
|
92
108
|
schema,
|
|
93
109
|
executor: async (operations) => {
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
110
|
+
const conn = await this.#connectionPool.connect();
|
|
111
|
+
try {
|
|
112
|
+
// For SQLite, execute PRAGMA defer_foreign_keys BEFORE transaction
|
|
113
|
+
if (this.#provider === "sqlite") {
|
|
114
|
+
await sql.raw("PRAGMA defer_foreign_keys = ON").execute(conn.db);
|
|
115
|
+
}
|
|
99
116
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
117
|
+
await conn.db.transaction().execute(async (tx) => {
|
|
118
|
+
// Use the transaction instance for both preprocessing and execution
|
|
119
|
+
const preprocessed = preprocessMigrationOperations(operations, tx);
|
|
120
|
+
const nodes = toExecutableNodes(preprocessed, tx);
|
|
121
|
+
for (const node of nodes) {
|
|
122
|
+
try {
|
|
123
|
+
await node.execute();
|
|
124
|
+
} catch (e) {
|
|
125
|
+
console.error("failed at", node.compile(), e);
|
|
126
|
+
throw e;
|
|
127
|
+
}
|
|
109
128
|
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
129
|
+
});
|
|
130
|
+
} finally {
|
|
131
|
+
await conn.release();
|
|
132
|
+
}
|
|
112
133
|
},
|
|
113
134
|
sql: {
|
|
114
135
|
toSql: (operations) => {
|
|
115
136
|
const parts: string[] = [];
|
|
116
137
|
|
|
117
138
|
// Add SQLite PRAGMA at the beginning
|
|
118
|
-
if (this.#
|
|
139
|
+
if (this.#provider === "sqlite") {
|
|
119
140
|
parts.push("PRAGMA defer_foreign_keys = ON;");
|
|
120
141
|
}
|
|
121
142
|
|
|
122
|
-
|
|
123
|
-
const
|
|
143
|
+
// Use getDatabaseSync for SQL generation (doesn't execute, just builds SQL strings)
|
|
144
|
+
const db = this.#connectionPool.getDatabaseSync();
|
|
145
|
+
const preprocessed = preprocessMigrationOperations(operations, db);
|
|
146
|
+
const nodes = toExecutableNodes(preprocessed, db);
|
|
124
147
|
const compiled = nodes.map((node) => `${node.compile().sql};`);
|
|
125
148
|
|
|
126
149
|
parts.push(...compiled);
|
|
@@ -131,19 +154,31 @@ export class KyselyAdapter implements DatabaseAdapter {
|
|
|
131
154
|
|
|
132
155
|
settings: {
|
|
133
156
|
getVersion: async () => {
|
|
134
|
-
const
|
|
135
|
-
|
|
157
|
+
const conn = await this.#connectionPool.connect();
|
|
158
|
+
try {
|
|
159
|
+
const manager = createSettingsManager(conn.db, namespace);
|
|
160
|
+
const v = await manager.get(`schema_version`);
|
|
161
|
+
return v ? parseInt(v) : 0;
|
|
162
|
+
} finally {
|
|
163
|
+
await conn.release();
|
|
164
|
+
}
|
|
136
165
|
},
|
|
137
166
|
updateSettingsInMigration: async (fromVersion, toVersion) => {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
167
|
+
const conn = await this.#connectionPool.connect();
|
|
168
|
+
try {
|
|
169
|
+
const manager = createSettingsManager(conn.db, namespace);
|
|
170
|
+
return [
|
|
171
|
+
{
|
|
172
|
+
type: "custom",
|
|
173
|
+
sql:
|
|
174
|
+
fromVersion === 0
|
|
175
|
+
? manager.insert(`schema_version`, toVersion.toString())
|
|
176
|
+
: manager.update(`schema_version`, toVersion.toString()),
|
|
177
|
+
},
|
|
178
|
+
];
|
|
179
|
+
} finally {
|
|
180
|
+
await conn.release();
|
|
181
|
+
}
|
|
147
182
|
},
|
|
148
183
|
},
|
|
149
184
|
});
|
|
@@ -151,10 +186,14 @@ export class KyselyAdapter implements DatabaseAdapter {
|
|
|
151
186
|
return migrator;
|
|
152
187
|
}
|
|
153
188
|
|
|
154
|
-
getSchemaVersion(namespace: string) {
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
189
|
+
async getSchemaVersion(namespace: string): Promise<string | undefined> {
|
|
190
|
+
const conn = await this.#connectionPool.connect();
|
|
191
|
+
try {
|
|
192
|
+
const manager = createSettingsManager(conn.db, namespace);
|
|
193
|
+
return await manager.get(`schema_version`);
|
|
194
|
+
} finally {
|
|
195
|
+
await conn.release();
|
|
196
|
+
}
|
|
158
197
|
}
|
|
159
198
|
}
|
|
160
199
|
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { Kysely } from "kysely";
|
|
2
|
+
import type { ConnectionPool } from "../../shared/connection-pool";
|
|
3
|
+
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
|
+
type KyselyAny = Kysely<any>;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Creates a Kysely-specific connection pool with proper cleanup.
|
|
9
|
+
* Calls db.destroy() when the pool is closed to properly release database connections.
|
|
10
|
+
*/
|
|
11
|
+
export function createKyselyConnectionPool(
|
|
12
|
+
dbOrFactory: KyselyAny | (() => KyselyAny | Promise<KyselyAny>),
|
|
13
|
+
): ConnectionPool<KyselyAny> {
|
|
14
|
+
let cachedDb: KyselyAny | undefined;
|
|
15
|
+
let initPromise: Promise<KyselyAny> | undefined;
|
|
16
|
+
|
|
17
|
+
const ensureInitialized = async (): Promise<KyselyAny> => {
|
|
18
|
+
if (cachedDb) {
|
|
19
|
+
return cachedDb;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (!initPromise) {
|
|
23
|
+
initPromise = (async () => {
|
|
24
|
+
const db =
|
|
25
|
+
typeof dbOrFactory === "function"
|
|
26
|
+
? await (dbOrFactory as () => KyselyAny | Promise<KyselyAny>)()
|
|
27
|
+
: dbOrFactory;
|
|
28
|
+
cachedDb = db;
|
|
29
|
+
return db;
|
|
30
|
+
})();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return initPromise;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// Eagerly start initialization if it's a factory function
|
|
37
|
+
if (typeof dbOrFactory === "function") {
|
|
38
|
+
void ensureInitialized();
|
|
39
|
+
} else {
|
|
40
|
+
// Direct instance - cache it immediately
|
|
41
|
+
cachedDb = dbOrFactory;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return {
|
|
45
|
+
async connect() {
|
|
46
|
+
const db = await ensureInitialized();
|
|
47
|
+
|
|
48
|
+
return {
|
|
49
|
+
db,
|
|
50
|
+
release: async () => {},
|
|
51
|
+
};
|
|
52
|
+
},
|
|
53
|
+
|
|
54
|
+
getDatabaseSync() {
|
|
55
|
+
if (!cachedDb) {
|
|
56
|
+
throw new Error("Cannot get database synchronously: database not initialized.");
|
|
57
|
+
}
|
|
58
|
+
return cachedDb;
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
async close() {
|
|
62
|
+
if (cachedDb) {
|
|
63
|
+
// Properly destroy Kysely instance to close all connections
|
|
64
|
+
await cachedDb.destroy();
|
|
65
|
+
}
|
|
66
|
+
cachedDb = undefined;
|
|
67
|
+
initPromise = undefined;
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import type { CompiledQuery } from "kysely";
|
|
1
|
+
import type { CompiledQuery, Kysely } from "kysely";
|
|
2
2
|
import type { AnySchema, AnyTable } from "../../schema/create";
|
|
3
3
|
import { buildCondition } from "../../query/condition-builder";
|
|
4
4
|
import { buildFindOptions } from "../../query/orm/orm";
|
|
5
|
-
import type { KyselyConfig } from "./kysely-adapter";
|
|
6
5
|
import { createKyselyQueryBuilder } from "./kysely-query-builder";
|
|
7
6
|
import type { ConditionBuilder, Condition } from "../../query/condition-builder";
|
|
8
7
|
import type { TableNameMapper } from "./kysely-shared";
|
|
8
|
+
import type { ConnectionPool } from "../../shared/connection-pool";
|
|
9
|
+
import type { SQLProvider } from "../../shared/providers";
|
|
10
|
+
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
|
+
type KyselyAny = Kysely<any>;
|
|
9
13
|
|
|
10
14
|
/**
|
|
11
15
|
* Internal query compiler interface for Kysely
|
|
@@ -27,12 +31,12 @@ export interface KyselyQueryCompiler {
|
|
|
27
31
|
|
|
28
32
|
export function createKyselyQueryCompiler<T extends AnySchema>(
|
|
29
33
|
schema: T,
|
|
30
|
-
|
|
34
|
+
pool: ConnectionPool<KyselyAny>,
|
|
35
|
+
provider: SQLProvider,
|
|
31
36
|
mapper?: TableNameMapper,
|
|
32
37
|
): KyselyQueryCompiler {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const kysely = typeof db === "function" ? db() : db;
|
|
38
|
+
// Get kysely instance for query building (compilation doesn't execute, just builds SQL)
|
|
39
|
+
const kysely = pool.getDatabaseSync();
|
|
36
40
|
const queryBuilder = createKyselyQueryBuilder(kysely, provider, mapper);
|
|
37
41
|
|
|
38
42
|
function toTable(name: unknown): AnyTable {
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import type { AbstractQuery } from "../../query/query";
|
|
2
2
|
import type { AnySchema } from "../../schema/create";
|
|
3
|
-
import type { KyselyConfig } from "./kysely-adapter";
|
|
4
3
|
import type { CompiledMutation, UOWDecoder, UOWExecutor } from "../../query/unit-of-work";
|
|
5
4
|
import { decodeResult } from "../../query/result-transform";
|
|
6
5
|
import { createKyselyUOWCompiler } from "./kysely-uow-compiler";
|
|
7
6
|
import { executeKyselyRetrievalPhase, executeKyselyMutationPhase } from "./kysely-uow-executor";
|
|
8
7
|
import { UnitOfWork } from "../../query/unit-of-work";
|
|
9
|
-
import type { CompiledQuery } from "kysely";
|
|
8
|
+
import type { CompiledQuery, Kysely } from "kysely";
|
|
10
9
|
import type { TableNameMapper } from "./kysely-shared";
|
|
10
|
+
import type { ConnectionPool } from "../../shared/connection-pool";
|
|
11
|
+
import type { SQLProvider } from "../../shared/providers";
|
|
12
|
+
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
+
type KyselyAny = Kysely<any>;
|
|
11
15
|
|
|
12
16
|
/**
|
|
13
17
|
* Creates a Kysely-based query engine for the given schema.
|
|
@@ -17,16 +21,15 @@ import type { TableNameMapper } from "./kysely-shared";
|
|
|
17
21
|
* enabling features like SQL snapshot testing.
|
|
18
22
|
*
|
|
19
23
|
* @param schema - The database schema definition
|
|
20
|
-
* @param
|
|
24
|
+
* @param pool - Connection pool for acquiring database connections
|
|
25
|
+
* @param provider - SQL provider (postgresql, mysql, sqlite, etc.)
|
|
21
26
|
* @param mapper - Optional table name mapper for namespace prefixing
|
|
22
27
|
* @returns An AbstractQuery instance for performing database operations
|
|
23
28
|
*
|
|
24
29
|
* @example
|
|
25
30
|
* ```ts
|
|
26
|
-
* const
|
|
27
|
-
*
|
|
28
|
-
* provider: 'postgresql'
|
|
29
|
-
* });
|
|
31
|
+
* const pool = createSimpleConnectionPool(kysely);
|
|
32
|
+
* const queryEngine = fromKysely(mySchema, pool, 'postgresql');
|
|
30
33
|
*
|
|
31
34
|
* const users = await queryEngine.findMany('users', {
|
|
32
35
|
* where: (b) => b('age', '>', 18),
|
|
@@ -36,20 +39,30 @@ import type { TableNameMapper } from "./kysely-shared";
|
|
|
36
39
|
*/
|
|
37
40
|
export function fromKysely<T extends AnySchema>(
|
|
38
41
|
schema: T,
|
|
39
|
-
|
|
42
|
+
pool: ConnectionPool<KyselyAny>,
|
|
43
|
+
provider: SQLProvider,
|
|
40
44
|
mapper?: TableNameMapper,
|
|
41
45
|
): AbstractQuery<T> {
|
|
42
|
-
const { db, provider } = config;
|
|
43
|
-
// Resolve the db instance if it's a function
|
|
44
|
-
const kysely = typeof db === "function" ? db() : db;
|
|
45
|
-
const uowCompiler = createKyselyUOWCompiler(schema, config, mapper);
|
|
46
|
-
|
|
47
46
|
function createUOW(name?: string): UnitOfWork<T, []> {
|
|
47
|
+
const uowCompiler = createKyselyUOWCompiler(schema, pool, provider, mapper);
|
|
48
|
+
|
|
48
49
|
const executor: UOWExecutor<CompiledQuery, unknown> = {
|
|
49
|
-
executeRetrievalPhase
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
async executeRetrievalPhase(retrievalBatch: CompiledQuery[]) {
|
|
51
|
+
const conn = await pool.connect();
|
|
52
|
+
try {
|
|
53
|
+
return await executeKyselyRetrievalPhase(conn.db, retrievalBatch);
|
|
54
|
+
} finally {
|
|
55
|
+
await conn.release();
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
async executeMutationPhase(mutationBatch: CompiledMutation<CompiledQuery>[]) {
|
|
59
|
+
const conn = await pool.connect();
|
|
60
|
+
try {
|
|
61
|
+
return await executeKyselyMutationPhase(conn.db, mutationBatch);
|
|
62
|
+
} finally {
|
|
63
|
+
await conn.release();
|
|
64
|
+
}
|
|
65
|
+
},
|
|
53
66
|
};
|
|
54
67
|
|
|
55
68
|
// Create a decoder function to transform raw results into application format
|