@fragno-dev/db 0.1.14 → 0.2.0
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 +242 -139
- package/CHANGELOG.md +47 -0
- package/README.md +123 -8
- package/dist/adapters/adapters.d.ts +19 -5
- package/dist/adapters/adapters.d.ts.map +1 -1
- package/dist/adapters/adapters.js.map +1 -1
- package/dist/adapters/drizzle/drizzle-adapter.d.ts +6 -19
- package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +1 -1
- package/dist/adapters/drizzle/drizzle-adapter.js +7 -47
- package/dist/adapters/drizzle/drizzle-adapter.js.map +1 -1
- package/dist/adapters/drizzle/generate.d.ts +7 -1
- package/dist/adapters/drizzle/generate.d.ts.map +1 -1
- package/dist/adapters/drizzle/generate.js +46 -45
- package/dist/adapters/drizzle/generate.js.map +1 -1
- package/dist/adapters/generic-sql/driver-config.d.ts +74 -0
- package/dist/adapters/generic-sql/driver-config.d.ts.map +1 -0
- package/dist/adapters/generic-sql/driver-config.js +94 -0
- package/dist/adapters/generic-sql/driver-config.js.map +1 -0
- package/dist/adapters/generic-sql/generic-sql-adapter.d.ts +43 -0
- package/dist/adapters/generic-sql/generic-sql-adapter.d.ts.map +1 -0
- package/dist/adapters/generic-sql/generic-sql-adapter.js +87 -0
- package/dist/adapters/generic-sql/generic-sql-adapter.js.map +1 -0
- package/dist/adapters/generic-sql/generic-sql-uow-executor.js +67 -0
- package/dist/adapters/generic-sql/generic-sql-uow-executor.js.map +1 -0
- package/dist/adapters/generic-sql/migration/cold-kysely.js +33 -0
- package/dist/adapters/generic-sql/migration/cold-kysely.js.map +1 -0
- package/dist/adapters/generic-sql/migration/dialect/mysql.js +60 -0
- package/dist/adapters/generic-sql/migration/dialect/mysql.js.map +1 -0
- package/dist/adapters/generic-sql/migration/dialect/postgres.js +59 -0
- package/dist/adapters/generic-sql/migration/dialect/postgres.js.map +1 -0
- package/dist/adapters/generic-sql/migration/dialect/sqlite.js +96 -0
- package/dist/adapters/generic-sql/migration/dialect/sqlite.js.map +1 -0
- package/dist/adapters/generic-sql/migration/executor.d.ts +15 -0
- package/dist/adapters/generic-sql/migration/executor.d.ts.map +1 -0
- package/dist/adapters/generic-sql/migration/executor.js +18 -0
- package/dist/adapters/generic-sql/migration/executor.js.map +1 -0
- package/dist/adapters/generic-sql/migration/prepared-migrations.d.ts +66 -0
- package/dist/adapters/generic-sql/migration/prepared-migrations.d.ts.map +1 -0
- package/dist/adapters/generic-sql/migration/prepared-migrations.js +68 -0
- package/dist/adapters/generic-sql/migration/prepared-migrations.js.map +1 -0
- package/dist/adapters/generic-sql/migration/sql-generator.js +212 -0
- package/dist/adapters/generic-sql/migration/sql-generator.js.map +1 -0
- package/dist/adapters/generic-sql/query/create-sql-query-compiler.js +32 -0
- package/dist/adapters/generic-sql/query/create-sql-query-compiler.js.map +1 -0
- package/dist/adapters/generic-sql/query/cursor-utils.js +37 -0
- package/dist/adapters/generic-sql/query/cursor-utils.js.map +1 -0
- package/dist/adapters/generic-sql/query/dialect/mysql.js +33 -0
- package/dist/adapters/generic-sql/query/dialect/mysql.js.map +1 -0
- package/dist/adapters/generic-sql/query/dialect/postgres.js +32 -0
- package/dist/adapters/generic-sql/query/dialect/postgres.js.map +1 -0
- package/dist/adapters/generic-sql/query/dialect/sqlite.js +32 -0
- package/dist/adapters/generic-sql/query/dialect/sqlite.js.map +1 -0
- package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js +152 -0
- package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js.map +1 -0
- package/dist/adapters/generic-sql/query/select-builder.js +69 -0
- package/dist/adapters/generic-sql/query/select-builder.js.map +1 -0
- package/dist/adapters/generic-sql/query/sql-query-compiler.js +145 -0
- package/dist/adapters/generic-sql/query/sql-query-compiler.js.map +1 -0
- package/dist/adapters/generic-sql/query/where-builder.js +129 -0
- package/dist/adapters/generic-sql/query/where-builder.js.map +1 -0
- package/dist/adapters/generic-sql/result-interpreter.js +74 -0
- package/dist/adapters/generic-sql/result-interpreter.js.map +1 -0
- package/dist/adapters/generic-sql/uow-decoder.js +105 -0
- package/dist/adapters/generic-sql/uow-decoder.js.map +1 -0
- package/dist/adapters/generic-sql/uow-encoder.js +93 -0
- package/dist/adapters/generic-sql/uow-encoder.js.map +1 -0
- package/dist/adapters/kysely/kysely-adapter.d.ts +5 -16
- package/dist/adapters/kysely/kysely-adapter.d.ts.map +1 -1
- package/dist/adapters/kysely/kysely-adapter.js +6 -159
- package/dist/adapters/kysely/kysely-adapter.js.map +1 -1
- package/dist/adapters/{drizzle/drizzle-query.js → shared/from-unit-of-work-compiler.js} +48 -62
- package/dist/adapters/shared/from-unit-of-work-compiler.js.map +1 -0
- package/dist/adapters/{kysely/kysely-shared.d.ts → shared/table-name-mapper.d.ts} +3 -2
- package/dist/adapters/shared/table-name-mapper.d.ts.map +1 -0
- package/dist/adapters/shared/table-name-mapper.js +43 -0
- package/dist/adapters/shared/table-name-mapper.js.map +1 -0
- package/dist/adapters/shared/uow-operation-compiler.js +105 -0
- package/dist/adapters/shared/uow-operation-compiler.js.map +1 -0
- package/dist/db-fragment-definition-builder.d.ts +186 -0
- package/dist/db-fragment-definition-builder.d.ts.map +1 -0
- package/dist/db-fragment-definition-builder.js +207 -0
- package/dist/db-fragment-definition-builder.js.map +1 -0
- package/dist/fragments/internal-fragment.d.ts +53 -0
- package/dist/fragments/internal-fragment.d.ts.map +1 -0
- package/dist/fragments/internal-fragment.js +111 -0
- package/dist/fragments/internal-fragment.js.map +1 -0
- package/dist/hooks/hooks.d.ts +51 -0
- package/dist/hooks/hooks.d.ts.map +1 -0
- package/dist/hooks/hooks.js +88 -0
- package/dist/hooks/hooks.js.map +1 -0
- package/dist/migration-engine/generation-engine.d.ts +0 -2
- package/dist/migration-engine/generation-engine.d.ts.map +1 -1
- package/dist/migration-engine/generation-engine.js +38 -56
- package/dist/migration-engine/generation-engine.js.map +1 -1
- package/dist/mod.d.ts +35 -23
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +48 -45
- package/dist/mod.js.map +1 -1
- package/dist/node_modules/.pnpm/rou3@0.7.10/node_modules/rou3/dist/index.js +165 -0
- package/dist/node_modules/.pnpm/rou3@0.7.10/node_modules/rou3/dist/index.js.map +1 -0
- package/dist/packages/fragno/dist/api/bind-services.js +20 -0
- package/dist/packages/fragno/dist/api/bind-services.js.map +1 -0
- package/dist/packages/fragno/dist/api/error.js +48 -0
- package/dist/packages/fragno/dist/api/error.js.map +1 -0
- package/dist/packages/fragno/dist/api/fragment-definition-builder.js +320 -0
- package/dist/packages/fragno/dist/api/fragment-definition-builder.js.map +1 -0
- package/dist/packages/fragno/dist/api/fragment-instantiator.js +525 -0
- package/dist/packages/fragno/dist/api/fragment-instantiator.js.map +1 -0
- package/dist/packages/fragno/dist/api/fragno-response.js +73 -0
- package/dist/packages/fragno/dist/api/fragno-response.js.map +1 -0
- package/dist/packages/fragno/dist/api/internal/response-stream.js +81 -0
- package/dist/packages/fragno/dist/api/internal/response-stream.js.map +1 -0
- package/dist/packages/fragno/dist/api/internal/route.js +10 -0
- package/dist/packages/fragno/dist/api/internal/route.js.map +1 -0
- package/dist/packages/fragno/dist/api/mutable-request-state.js +97 -0
- package/dist/packages/fragno/dist/api/mutable-request-state.js.map +1 -0
- package/dist/packages/fragno/dist/api/request-context-storage.js +43 -0
- package/dist/packages/fragno/dist/api/request-context-storage.js.map +1 -0
- package/dist/packages/fragno/dist/api/request-input-context.js +118 -0
- package/dist/packages/fragno/dist/api/request-input-context.js.map +1 -0
- package/dist/packages/fragno/dist/api/request-middleware.js +83 -0
- package/dist/packages/fragno/dist/api/request-middleware.js.map +1 -0
- package/dist/packages/fragno/dist/api/request-output-context.js +119 -0
- package/dist/packages/fragno/dist/api/request-output-context.js.map +1 -0
- package/dist/packages/fragno/dist/api/route.js +17 -0
- package/dist/packages/fragno/dist/api/route.js.map +1 -0
- package/dist/packages/fragno/dist/internal/symbols.js +10 -0
- package/dist/packages/fragno/dist/internal/symbols.js.map +1 -0
- package/dist/query/column-defaults.js +27 -0
- package/dist/query/column-defaults.js.map +1 -0
- package/dist/query/cursor.d.ts +14 -6
- package/dist/query/cursor.d.ts.map +1 -1
- package/dist/query/cursor.js +16 -7
- package/dist/query/cursor.js.map +1 -1
- package/dist/query/orm/orm.d.ts +1 -1
- package/dist/query/orm/orm.js.map +1 -1
- package/dist/query/serialize/create-sql-serializer.js +30 -0
- package/dist/query/serialize/create-sql-serializer.js.map +1 -0
- package/dist/query/serialize/dialect/mysql-serializer.js +87 -0
- package/dist/query/serialize/dialect/mysql-serializer.js.map +1 -0
- package/dist/query/serialize/dialect/postgres-serializer.js +80 -0
- package/dist/query/serialize/dialect/postgres-serializer.js.map +1 -0
- package/dist/query/serialize/dialect/sqlite-serializer.js +93 -0
- package/dist/query/serialize/dialect/sqlite-serializer.js.map +1 -0
- package/dist/query/serialize/sql-serializer.js +67 -0
- package/dist/query/serialize/sql-serializer.js.map +1 -0
- package/dist/query/{query.d.ts → simple-query-interface.d.ts} +6 -6
- package/dist/query/simple-query-interface.d.ts.map +1 -0
- package/dist/query/unit-of-work/execute-unit-of-work.d.ts +133 -0
- package/dist/query/unit-of-work/execute-unit-of-work.d.ts.map +1 -0
- package/dist/query/unit-of-work/execute-unit-of-work.js +197 -0
- package/dist/query/unit-of-work/execute-unit-of-work.js.map +1 -0
- package/dist/query/unit-of-work/retry-policy.d.ts +88 -0
- package/dist/query/unit-of-work/retry-policy.d.ts.map +1 -0
- package/dist/query/unit-of-work/retry-policy.js +61 -0
- package/dist/query/unit-of-work/retry-policy.js.map +1 -0
- package/dist/query/{unit-of-work.d.ts → unit-of-work/unit-of-work.d.ts} +145 -58
- package/dist/query/unit-of-work/unit-of-work.d.ts.map +1 -0
- package/dist/query/{unit-of-work.js → unit-of-work/unit-of-work.js} +435 -198
- package/dist/query/unit-of-work/unit-of-work.js.map +1 -0
- package/dist/query/value-decoding.js +71 -0
- package/dist/query/value-decoding.js.map +1 -0
- package/dist/query/value-encoding.js +124 -0
- package/dist/query/value-encoding.js.map +1 -0
- package/dist/schema/create.d.ts +3 -0
- package/dist/schema/create.d.ts.map +1 -1
- package/dist/schema/create.js +4 -0
- package/dist/schema/create.js.map +1 -1
- package/dist/schema/type-conversion/create-sql-type-mapper.js +29 -0
- package/dist/schema/type-conversion/create-sql-type-mapper.js.map +1 -0
- package/dist/schema/type-conversion/dialect/mysql.js +57 -0
- package/dist/schema/type-conversion/dialect/mysql.js.map +1 -0
- package/dist/schema/type-conversion/dialect/postgres.js +56 -0
- package/dist/schema/type-conversion/dialect/postgres.js.map +1 -0
- package/dist/schema/type-conversion/dialect/sqlite.js +52 -0
- package/dist/schema/type-conversion/dialect/sqlite.js.map +1 -0
- package/dist/schema/type-conversion/type-mapping.js +63 -0
- package/dist/schema/type-conversion/type-mapping.js.map +1 -0
- package/dist/sql-driver/connection/connection-provider.d.ts +13 -0
- package/dist/sql-driver/connection/connection-provider.d.ts.map +1 -0
- package/dist/sql-driver/connection/connection-provider.js +19 -0
- package/dist/sql-driver/connection/connection-provider.js.map +1 -0
- package/dist/sql-driver/connection/single-connection-provider.js +23 -0
- package/dist/sql-driver/connection/single-connection-provider.js.map +1 -0
- package/dist/sql-driver/dialect-adapter/dialect-adapter.d.ts +7 -0
- package/dist/sql-driver/dialect-adapter/dialect-adapter.d.ts.map +1 -0
- package/dist/sql-driver/dialects/dialects.d.ts +2 -0
- package/dist/sql-driver/dialects/dialects.js +3 -0
- package/dist/sql-driver/dialects/durable-object-dialect.d.ts +72 -0
- package/dist/sql-driver/dialects/durable-object-dialect.d.ts.map +1 -0
- package/dist/sql-driver/dialects/durable-object-dialect.js +130 -0
- package/dist/sql-driver/dialects/durable-object-dialect.js.map +1 -0
- package/dist/sql-driver/driver/runtime-driver.d.ts +23 -0
- package/dist/sql-driver/driver/runtime-driver.d.ts.map +1 -0
- package/dist/sql-driver/driver/runtime-driver.js +56 -0
- package/dist/sql-driver/driver/runtime-driver.js.map +1 -0
- package/dist/sql-driver/query-executor/default-query-executor.js +26 -0
- package/dist/sql-driver/query-executor/default-query-executor.js.map +1 -0
- package/dist/sql-driver/query-executor/plugin.d.ts +17 -0
- package/dist/sql-driver/query-executor/plugin.d.ts.map +1 -0
- package/dist/sql-driver/query-executor/query-executor-base.js +25 -0
- package/dist/sql-driver/query-executor/query-executor-base.js.map +1 -0
- package/dist/sql-driver/query-executor/query-executor.d.ts +36 -0
- package/dist/sql-driver/query-executor/query-executor.d.ts.map +1 -0
- package/dist/sql-driver/sql-driver-adapter.d.ts +29 -0
- package/dist/sql-driver/sql-driver-adapter.d.ts.map +1 -0
- package/dist/sql-driver/sql-driver-adapter.js +68 -0
- package/dist/sql-driver/sql-driver-adapter.js.map +1 -0
- package/dist/sql-driver/sql-driver.d.ts +38 -0
- package/dist/sql-driver/sql-driver.d.ts.map +1 -0
- package/dist/sql-driver/sql-driver.js +1 -0
- package/dist/sql-driver/sql.js +50 -0
- package/dist/sql-driver/sql.js.map +1 -0
- package/dist/with-database.d.ts +32 -0
- package/dist/with-database.d.ts.map +1 -0
- package/dist/with-database.js +34 -0
- package/dist/with-database.js.map +1 -0
- package/package.json +43 -9
- package/src/adapters/adapters.ts +23 -4
- package/src/adapters/drizzle/drizzle-adapter-pglite.test.ts +140 -185
- package/src/adapters/drizzle/{drizzle-adapter-sqlite.test.ts → drizzle-adapter-sqlite3.test.ts} +187 -55
- package/src/adapters/drizzle/drizzle-adapter.ts +14 -93
- package/src/adapters/drizzle/generate.test.ts +102 -269
- package/src/adapters/drizzle/generate.ts +89 -63
- package/src/adapters/drizzle/migrate-drizzle.test.ts +19 -0
- package/src/adapters/drizzle/shared.ts +0 -34
- package/src/adapters/drizzle/test-utils.ts +36 -5
- package/src/adapters/generic-sql/README.md +14 -0
- package/src/adapters/generic-sql/driver-config.ts +144 -0
- package/src/adapters/generic-sql/generic-sql-adapter.test.ts +50 -0
- package/src/adapters/generic-sql/generic-sql-adapter.ts +146 -0
- package/src/adapters/generic-sql/generic-sql-uow-executor.ts +130 -0
- package/src/adapters/generic-sql/migration/cold-kysely.ts +55 -0
- package/src/adapters/{kysely/migration/execute-mysql.test.ts → generic-sql/migration/dialect/mysql.test.ts} +342 -484
- package/src/adapters/generic-sql/migration/dialect/mysql.ts +104 -0
- package/src/adapters/generic-sql/migration/dialect/postgres.test.ts +1008 -0
- package/src/adapters/generic-sql/migration/dialect/postgres.ts +113 -0
- package/src/adapters/{kysely/migration/execute-sqlite.test.ts → generic-sql/migration/dialect/sqlite.test.ts} +307 -510
- package/src/adapters/generic-sql/migration/dialect/sqlite.ts +189 -0
- package/src/adapters/generic-sql/migration/executor.ts +33 -0
- package/src/adapters/generic-sql/migration/prepared-migrations.test.ts +661 -0
- package/src/adapters/generic-sql/migration/prepared-migrations.ts +214 -0
- package/src/adapters/generic-sql/migration/sql-generator.ts +413 -0
- package/src/adapters/generic-sql/query/create-sql-query-compiler.ts +36 -0
- package/src/adapters/generic-sql/query/cursor-utils.ts +56 -0
- package/src/adapters/generic-sql/query/dialect/mysql.ts +34 -0
- package/src/adapters/generic-sql/query/dialect/postgres.ts +32 -0
- package/src/adapters/generic-sql/query/dialect/sqlite.ts +32 -0
- package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.test.ts +1568 -0
- package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.ts +314 -0
- package/src/adapters/generic-sql/query/select-builder.test.ts +256 -0
- package/src/adapters/generic-sql/query/select-builder.ts +137 -0
- package/src/adapters/generic-sql/query/sql-query-compiler.test.ts +195 -0
- package/src/adapters/generic-sql/query/sql-query-compiler.ts +367 -0
- package/src/adapters/generic-sql/query/where-builder.test.ts +744 -0
- package/src/adapters/generic-sql/query/where-builder.ts +211 -0
- package/src/adapters/generic-sql/result-interpreter.ts +102 -0
- package/src/adapters/generic-sql/test/generic-drizzle-adapter-sqlite3.test.ts +899 -0
- package/src/adapters/generic-sql/uow-decoder.test.ts +399 -0
- package/src/adapters/generic-sql/uow-decoder.ts +152 -0
- package/src/adapters/generic-sql/uow-encoder.test.ts +183 -0
- package/src/adapters/generic-sql/uow-encoder.ts +131 -0
- package/src/adapters/kysely/kysely-adapter-pglite.test.ts +90 -96
- package/src/adapters/kysely/kysely-adapter-sqlocal.test.ts +215 -0
- package/src/adapters/kysely/kysely-adapter.ts +10 -242
- package/src/adapters/{drizzle/drizzle-query.ts → shared/from-unit-of-work-compiler.ts} +111 -106
- package/src/adapters/shared/table-name-mapper.ts +50 -0
- package/src/adapters/shared/uow-operation-compiler.ts +211 -0
- package/src/db-fragment-definition-builder.test.ts +887 -0
- package/src/db-fragment-definition-builder.ts +737 -0
- package/src/db-fragment-instantiator.test.ts +543 -0
- package/src/db-fragment-integration.test.ts +406 -0
- package/src/fragments/internal-fragment.test.ts +549 -0
- package/src/fragments/internal-fragment.ts +249 -0
- package/src/hooks/hooks.test.ts +575 -0
- package/src/hooks/hooks.ts +179 -0
- package/src/migration-engine/generation-engine.test.ts +60 -27
- package/src/migration-engine/generation-engine.ts +99 -92
- package/src/mod.ts +139 -78
- package/src/query/column-defaults.ts +49 -0
- package/src/query/cursor.test.ts +147 -3
- package/src/query/cursor.ts +25 -8
- package/src/query/orm/orm.ts +1 -1
- package/src/query/query-type.test.ts +9 -9
- package/src/query/serialize/create-sql-serializer.ts +34 -0
- package/src/query/serialize/dialect/mysql-serializer.ts +142 -0
- package/src/query/serialize/dialect/postgres-serializer.ts +129 -0
- package/src/query/serialize/dialect/sqlite-serializer.test.ts +251 -0
- package/src/query/serialize/dialect/sqlite-serializer.ts +156 -0
- package/src/query/serialize/sql-serializer.ts +143 -0
- package/src/query/{query.ts → simple-query-interface.ts} +4 -4
- package/src/query/unit-of-work/execute-unit-of-work.test.ts +1310 -0
- package/src/query/unit-of-work/execute-unit-of-work.ts +504 -0
- package/src/query/unit-of-work/retry-policy.test.ts +217 -0
- package/src/query/unit-of-work/retry-policy.ts +141 -0
- package/src/query/unit-of-work/unit-of-work-coordinator.test.ts +831 -0
- package/src/query/{unit-of-work-types.test.ts → unit-of-work/unit-of-work-types.test.ts} +7 -5
- package/src/query/unit-of-work/unit-of-work.test.ts +1716 -0
- package/src/query/{unit-of-work.ts → unit-of-work/unit-of-work.ts} +716 -420
- package/src/query/{result-transform.test.ts → value-decoding.test.ts} +45 -298
- package/src/query/value-decoding.ts +113 -0
- package/src/query/value-encoding.test.ts +390 -0
- package/src/query/value-encoding.ts +168 -0
- package/src/schema/create.test.ts +5 -1
- package/src/schema/create.ts +5 -0
- package/src/schema/serialize.test.ts +165 -407
- package/src/schema/type-conversion/create-sql-type-mapper.ts +28 -0
- package/src/schema/type-conversion/dialect/mysql.ts +64 -0
- package/src/schema/type-conversion/dialect/postgres.ts +62 -0
- package/src/schema/type-conversion/dialect/sqlite.ts +63 -0
- package/src/schema/type-conversion/type-mapping.test.ts +137 -0
- package/src/schema/type-conversion/type-mapping.ts +153 -0
- package/src/shared/connection-pool.ts +5 -5
- package/src/sql-driver/better-sqlite3.test.ts +126 -0
- package/src/sql-driver/connection/connection-provider.ts +27 -0
- package/src/sql-driver/connection/single-connection-provider.ts +42 -0
- package/src/sql-driver/dialect-adapter/dialect-adapter.ts +9 -0
- package/src/sql-driver/dialect-adapter/sqlite-dialect-adapter.ts +7 -0
- package/src/sql-driver/dialects/dialects.ts +1 -0
- package/src/sql-driver/dialects/durable-object-dialect.ts +260 -0
- package/src/sql-driver/driver/runtime-driver.ts +91 -0
- package/src/sql-driver/query-executor/default-query-executor.ts +38 -0
- package/src/sql-driver/query-executor/plugin.ts +22 -0
- package/src/sql-driver/query-executor/query-executor-base.ts +53 -0
- package/src/sql-driver/query-executor/query-executor.ts +44 -0
- package/src/sql-driver/sql-driver-adapter.ts +96 -0
- package/src/sql-driver/sql-driver.ts +53 -0
- package/src/sql-driver/sql.ts +57 -0
- package/src/sql-driver/sqlocal.test.ts +117 -0
- package/src/with-database.ts +152 -0
- package/tsdown.config.ts +8 -2
- package/dist/adapters/drizzle/drizzle-connection-pool.js +0 -40
- package/dist/adapters/drizzle/drizzle-connection-pool.js.map +0 -1
- package/dist/adapters/drizzle/drizzle-query.d.ts +0 -23
- package/dist/adapters/drizzle/drizzle-query.d.ts.map +0 -1
- package/dist/adapters/drizzle/drizzle-query.js.map +0 -1
- package/dist/adapters/drizzle/drizzle-uow-compiler.d.ts +0 -10
- package/dist/adapters/drizzle/drizzle-uow-compiler.d.ts.map +0 -1
- package/dist/adapters/drizzle/drizzle-uow-compiler.js +0 -315
- package/dist/adapters/drizzle/drizzle-uow-compiler.js.map +0 -1
- package/dist/adapters/drizzle/drizzle-uow-decoder.js +0 -116
- package/dist/adapters/drizzle/drizzle-uow-decoder.js.map +0 -1
- package/dist/adapters/drizzle/drizzle-uow-executor.js +0 -149
- package/dist/adapters/drizzle/drizzle-uow-executor.js.map +0 -1
- package/dist/adapters/drizzle/join-column-utils.js +0 -28
- package/dist/adapters/drizzle/join-column-utils.js.map +0 -1
- package/dist/adapters/drizzle/shared.d.ts +0 -14
- package/dist/adapters/drizzle/shared.d.ts.map +0 -1
- package/dist/adapters/drizzle/shared.js +0 -35
- package/dist/adapters/drizzle/shared.js.map +0 -1
- package/dist/adapters/kysely/kysely-connection-pool.js +0 -41
- package/dist/adapters/kysely/kysely-connection-pool.js.map +0 -1
- package/dist/adapters/kysely/kysely-query-builder.js +0 -321
- package/dist/adapters/kysely/kysely-query-builder.js.map +0 -1
- package/dist/adapters/kysely/kysely-query-compiler.js +0 -66
- package/dist/adapters/kysely/kysely-query-compiler.js.map +0 -1
- package/dist/adapters/kysely/kysely-query.d.ts +0 -22
- package/dist/adapters/kysely/kysely-query.d.ts.map +0 -1
- package/dist/adapters/kysely/kysely-query.js +0 -223
- package/dist/adapters/kysely/kysely-query.js.map +0 -1
- package/dist/adapters/kysely/kysely-shared.d.ts.map +0 -1
- package/dist/adapters/kysely/kysely-shared.js +0 -18
- package/dist/adapters/kysely/kysely-shared.js.map +0 -1
- package/dist/adapters/kysely/kysely-uow-compiler.js +0 -170
- package/dist/adapters/kysely/kysely-uow-compiler.js.map +0 -1
- package/dist/adapters/kysely/kysely-uow-executor.js +0 -89
- package/dist/adapters/kysely/kysely-uow-executor.js.map +0 -1
- package/dist/adapters/kysely/migration/execute-base.js +0 -128
- package/dist/adapters/kysely/migration/execute-base.js.map +0 -1
- package/dist/adapters/kysely/migration/execute-factory.js +0 -34
- package/dist/adapters/kysely/migration/execute-factory.js.map +0 -1
- package/dist/adapters/kysely/migration/execute-mssql.js +0 -112
- package/dist/adapters/kysely/migration/execute-mssql.js.map +0 -1
- package/dist/adapters/kysely/migration/execute-mysql.js +0 -93
- package/dist/adapters/kysely/migration/execute-mysql.js.map +0 -1
- package/dist/adapters/kysely/migration/execute-postgres.js +0 -104
- package/dist/adapters/kysely/migration/execute-postgres.js.map +0 -1
- package/dist/adapters/kysely/migration/execute-sqlite.js +0 -123
- package/dist/adapters/kysely/migration/execute-sqlite.js.map +0 -1
- package/dist/adapters/kysely/migration/execute.js +0 -34
- package/dist/adapters/kysely/migration/execute.js.map +0 -1
- package/dist/bind-services.d.ts +0 -7
- package/dist/bind-services.d.ts.map +0 -1
- package/dist/bind-services.js +0 -14
- package/dist/bind-services.js.map +0 -1
- package/dist/fragment.d.ts +0 -173
- package/dist/fragment.d.ts.map +0 -1
- package/dist/fragment.js +0 -191
- package/dist/fragment.js.map +0 -1
- package/dist/migration-engine/create.d.ts +0 -37
- package/dist/migration-engine/create.d.ts.map +0 -1
- package/dist/migration-engine/create.js +0 -58
- package/dist/migration-engine/create.js.map +0 -1
- package/dist/migration-engine/shared.d.ts +0 -112
- package/dist/migration-engine/shared.d.ts.map +0 -1
- package/dist/query/query.d.ts.map +0 -1
- package/dist/query/result-transform.js +0 -168
- package/dist/query/result-transform.js.map +0 -1
- package/dist/query/unit-of-work.d.ts.map +0 -1
- package/dist/query/unit-of-work.js.map +0 -1
- package/dist/schema/serialize.js +0 -106
- package/dist/schema/serialize.js.map +0 -1
- package/dist/shared/settings-schema.js +0 -36
- package/dist/shared/settings-schema.js.map +0 -1
- package/src/adapters/drizzle/drizzle-adapter.test.ts +0 -170
- package/src/adapters/drizzle/drizzle-connection-pool.ts +0 -66
- package/src/adapters/drizzle/drizzle-query.test.ts +0 -499
- package/src/adapters/drizzle/drizzle-uow-compiler.test.ts +0 -1383
- package/src/adapters/drizzle/drizzle-uow-compiler.ts +0 -636
- package/src/adapters/drizzle/drizzle-uow-decoder.ts +0 -218
- package/src/adapters/drizzle/drizzle-uow-executor.ts +0 -276
- package/src/adapters/drizzle/join-column-utils.test.ts +0 -79
- package/src/adapters/drizzle/join-column-utils.ts +0 -39
- package/src/adapters/kysely/kysely-connection-pool.ts +0 -70
- package/src/adapters/kysely/kysely-query-builder.test.ts +0 -1344
- package/src/adapters/kysely/kysely-query-builder.ts +0 -666
- package/src/adapters/kysely/kysely-query-compiler.ts +0 -132
- package/src/adapters/kysely/kysely-query.test.ts +0 -498
- package/src/adapters/kysely/kysely-query.ts +0 -390
- package/src/adapters/kysely/kysely-shared.ts +0 -23
- package/src/adapters/kysely/kysely-uow-compiler.test.ts +0 -998
- package/src/adapters/kysely/kysely-uow-compiler.ts +0 -318
- package/src/adapters/kysely/kysely-uow-executor.ts +0 -145
- package/src/adapters/kysely/kysely-uow-joins.test.ts +0 -811
- package/src/adapters/kysely/migration/execute-base.ts +0 -256
- package/src/adapters/kysely/migration/execute-factory.ts +0 -53
- package/src/adapters/kysely/migration/execute-mssql.ts +0 -250
- package/src/adapters/kysely/migration/execute-mysql.ts +0 -211
- package/src/adapters/kysely/migration/execute-postgres.test.ts +0 -2657
- package/src/adapters/kysely/migration/execute-postgres.ts +0 -234
- package/src/adapters/kysely/migration/execute-sqlite.ts +0 -247
- package/src/adapters/kysely/migration/execute.ts +0 -50
- package/src/adapters/kysely/migration/kysely-migrator.test.ts +0 -261
- package/src/bind-services.test.ts +0 -214
- package/src/bind-services.ts +0 -37
- package/src/db-fragment.test.ts +0 -800
- package/src/fragment.ts +0 -727
- package/src/query/result-transform.ts +0 -271
- package/src/query/unit-of-work-multi-schema.test.ts +0 -64
- package/src/query/unit-of-work.test.ts +0 -943
- package/src/schema/serialize.ts +0 -396
- package/src/shared/settings-schema.ts +0 -61
- package/src/uow-context-integration.test.ts +0 -102
- package/src/uow-context.test.ts +0 -182
- /package/dist/query/{query.js → simple-query-interface.js} +0 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { sql, type BinaryOperator } from "kysely";
|
|
2
|
+
import {
|
|
3
|
+
type AnyColumn,
|
|
4
|
+
type AnyTable,
|
|
5
|
+
Column,
|
|
6
|
+
FragnoId,
|
|
7
|
+
FragnoReference,
|
|
8
|
+
} from "../../../schema/create";
|
|
9
|
+
import type { Condition } from "../../../query/condition-builder";
|
|
10
|
+
import { createSQLSerializer } from "../../../query/serialize/create-sql-serializer";
|
|
11
|
+
import type { TableNameMapper } from "../../shared/table-name-mapper";
|
|
12
|
+
import type { DriverConfig } from "../driver-config";
|
|
13
|
+
import { ReferenceSubquery, resolveFragnoIdValue } from "../../../query/value-encoding";
|
|
14
|
+
import type { AnyKysely, AnyExpressionBuilder, AnyExpressionWrapper } from "./sql-query-compiler";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Returns the fully qualified SQL name for a column (table.column).
|
|
18
|
+
*
|
|
19
|
+
* @param column - The column to get the full name for
|
|
20
|
+
* @param mapper - Optional table name mapper for namespace prefixing
|
|
21
|
+
* @returns The fully qualified SQL name in the format "tableName.columnName"
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export function fullSQLName(column: AnyColumn, mapper?: TableNameMapper): string {
|
|
25
|
+
const tableName = mapper ? mapper.toPhysical(column.tableName) : column.tableName;
|
|
26
|
+
return `${tableName}.${column.name}`;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Builds a WHERE clause expression from a Condition tree.
|
|
31
|
+
*
|
|
32
|
+
* Recursively processes condition objects to build Kysely WHERE expressions.
|
|
33
|
+
* Handles comparison operators, logical AND/OR/NOT, and special string operators
|
|
34
|
+
* like "contains", "starts with", and "ends with".
|
|
35
|
+
*
|
|
36
|
+
* @param condition - The condition tree to build the WHERE clause from
|
|
37
|
+
* @param eb - Kysely expression builder for constructing SQL expressions
|
|
38
|
+
* @param database - The database type (affects SQL generation)
|
|
39
|
+
* @param mapper - Optional table name mapper for namespace prefixing
|
|
40
|
+
* @param table - The table being queried (used for resolving reference columns)
|
|
41
|
+
* @returns A Kysely expression wrapper representing the WHERE clause
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
44
|
+
export function buildWhere(
|
|
45
|
+
condition: Condition,
|
|
46
|
+
eb: AnyExpressionBuilder,
|
|
47
|
+
driverConfig: DriverConfig,
|
|
48
|
+
mapper?: TableNameMapper,
|
|
49
|
+
table?: AnyTable,
|
|
50
|
+
): AnyExpressionWrapper {
|
|
51
|
+
const serializer = createSQLSerializer(driverConfig);
|
|
52
|
+
|
|
53
|
+
if (condition.type === "compare") {
|
|
54
|
+
const left = condition.a;
|
|
55
|
+
const op = condition.operator;
|
|
56
|
+
let val = condition.b;
|
|
57
|
+
|
|
58
|
+
if (!(val instanceof Column)) {
|
|
59
|
+
// Handle reference columns specially
|
|
60
|
+
if (left.role === "reference" && table) {
|
|
61
|
+
if (typeof val === "string") {
|
|
62
|
+
// String external ID - create subquery to lookup internal ID
|
|
63
|
+
const relation = Object.values(table.relations).find((rel) =>
|
|
64
|
+
rel.on.some(([localCol]) => localCol === left.ormName),
|
|
65
|
+
);
|
|
66
|
+
if (relation) {
|
|
67
|
+
const refTable = relation.table;
|
|
68
|
+
const internalIdCol = refTable.getInternalIdColumn();
|
|
69
|
+
const idCol = refTable.getIdColumn();
|
|
70
|
+
const physicalTableName = mapper
|
|
71
|
+
? mapper.toPhysical(refTable.ormName)
|
|
72
|
+
: refTable.ormName;
|
|
73
|
+
|
|
74
|
+
val = eb
|
|
75
|
+
.selectFrom(physicalTableName)
|
|
76
|
+
.select(internalIdCol.name)
|
|
77
|
+
.where(idCol.name, "=", val)
|
|
78
|
+
.limit(1);
|
|
79
|
+
}
|
|
80
|
+
} else if (val instanceof FragnoId && val.internalId !== undefined) {
|
|
81
|
+
// FragnoId with internal ID - use it directly (no serialization needed)
|
|
82
|
+
val = val.internalId;
|
|
83
|
+
} else if (val instanceof FragnoId && val.internalId === undefined) {
|
|
84
|
+
// FragnoId without internal ID - create subquery using external ID
|
|
85
|
+
const relation = Object.values(table.relations).find((rel) =>
|
|
86
|
+
rel.on.some(([localCol]) => localCol === left.ormName),
|
|
87
|
+
);
|
|
88
|
+
if (relation) {
|
|
89
|
+
const refTable = relation.table;
|
|
90
|
+
const internalIdCol = refTable.getInternalIdColumn();
|
|
91
|
+
const idCol = refTable.getIdColumn();
|
|
92
|
+
const physicalTableName = mapper
|
|
93
|
+
? mapper.toPhysical(refTable.ormName)
|
|
94
|
+
: refTable.ormName;
|
|
95
|
+
|
|
96
|
+
val = eb
|
|
97
|
+
.selectFrom(physicalTableName)
|
|
98
|
+
.select(internalIdCol.name)
|
|
99
|
+
.where(idCol.name, "=", val.externalId)
|
|
100
|
+
.limit(1);
|
|
101
|
+
}
|
|
102
|
+
} else if (val instanceof FragnoReference) {
|
|
103
|
+
// FragnoReference - use internal ID directly (no serialization needed)
|
|
104
|
+
val = val.internalId;
|
|
105
|
+
} else {
|
|
106
|
+
// Other values - resolve and serialize
|
|
107
|
+
const resolvedVal = resolveFragnoIdValue(val, left);
|
|
108
|
+
val = serializer.serialize(resolvedVal, left);
|
|
109
|
+
}
|
|
110
|
+
} else {
|
|
111
|
+
// Non-reference columns - resolve FragnoId/FragnoReference and serialize
|
|
112
|
+
const resolvedVal = resolveFragnoIdValue(val, left);
|
|
113
|
+
val = serializer.serialize(resolvedVal, left);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
let v: BinaryOperator;
|
|
118
|
+
let rhs: unknown;
|
|
119
|
+
|
|
120
|
+
switch (op) {
|
|
121
|
+
case "contains":
|
|
122
|
+
v = "like";
|
|
123
|
+
rhs =
|
|
124
|
+
val instanceof Column
|
|
125
|
+
? sql`concat('%', ${eb.ref(fullSQLName(val, mapper))}, '%')`
|
|
126
|
+
: `%${val}%`;
|
|
127
|
+
break;
|
|
128
|
+
case "not contains":
|
|
129
|
+
v = "not like";
|
|
130
|
+
rhs =
|
|
131
|
+
val instanceof Column
|
|
132
|
+
? sql`concat('%', ${eb.ref(fullSQLName(val, mapper))}, '%')`
|
|
133
|
+
: `%${val}%`;
|
|
134
|
+
break;
|
|
135
|
+
case "starts with":
|
|
136
|
+
v = "like";
|
|
137
|
+
rhs =
|
|
138
|
+
val instanceof Column ? sql`concat(${eb.ref(fullSQLName(val, mapper))}, '%')` : `${val}%`;
|
|
139
|
+
break;
|
|
140
|
+
case "not starts with":
|
|
141
|
+
v = "not like";
|
|
142
|
+
rhs =
|
|
143
|
+
val instanceof Column ? sql`concat(${eb.ref(fullSQLName(val, mapper))}, '%')` : `${val}%`;
|
|
144
|
+
break;
|
|
145
|
+
case "ends with":
|
|
146
|
+
v = "like";
|
|
147
|
+
rhs =
|
|
148
|
+
val instanceof Column ? sql`concat('%', ${eb.ref(fullSQLName(val, mapper))})` : `%${val}`;
|
|
149
|
+
break;
|
|
150
|
+
case "not ends with":
|
|
151
|
+
v = "not like";
|
|
152
|
+
rhs =
|
|
153
|
+
val instanceof Column ? sql`concat('%', ${eb.ref(fullSQLName(val, mapper))})` : `%${val}`;
|
|
154
|
+
break;
|
|
155
|
+
default:
|
|
156
|
+
v = op;
|
|
157
|
+
rhs = val instanceof Column ? eb.ref(fullSQLName(val, mapper)) : val;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return eb(fullSQLName(left, mapper), v, rhs);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Nested conditions
|
|
164
|
+
if (condition.type === "and") {
|
|
165
|
+
return eb.and(condition.items.map((v) => buildWhere(v, eb, driverConfig, mapper, table)));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
if (condition.type === "not") {
|
|
169
|
+
return eb.not(buildWhere(condition.item, eb, driverConfig, mapper, table));
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
return eb.or(condition.items.map((v) => buildWhere(v, eb, driverConfig, mapper, table)));
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Process reference subqueries in encoded values, converting them to Kysely SQL subqueries
|
|
177
|
+
*
|
|
178
|
+
* @param values - The encoded values that may contain ReferenceSubquery objects
|
|
179
|
+
* @param kysely - The Kysely database instance for building subqueries
|
|
180
|
+
* @param mapper - Optional table name mapper for namespace prefixing
|
|
181
|
+
* @returns Processed values with subqueries in place of ReferenceSubquery markers
|
|
182
|
+
* @internal
|
|
183
|
+
*/
|
|
184
|
+
export function processReferenceSubqueries(
|
|
185
|
+
values: Record<string, unknown>,
|
|
186
|
+
kysely: AnyKysely,
|
|
187
|
+
mapper?: TableNameMapper,
|
|
188
|
+
): Record<string, unknown> {
|
|
189
|
+
const processed: Record<string, unknown> = {};
|
|
190
|
+
const getTableName = (table: AnyTable) => (mapper ? mapper.toPhysical(table.name) : table.name);
|
|
191
|
+
|
|
192
|
+
for (const [key, value] of Object.entries(values)) {
|
|
193
|
+
if (value instanceof ReferenceSubquery) {
|
|
194
|
+
const refTable = value.referencedTable;
|
|
195
|
+
const externalId = value.externalIdValue;
|
|
196
|
+
const tableName = getTableName(refTable);
|
|
197
|
+
const internalIdCol = refTable.getInternalIdColumn().name;
|
|
198
|
+
const idCol = refTable.getIdColumn().name;
|
|
199
|
+
|
|
200
|
+
processed[key] = kysely
|
|
201
|
+
.selectFrom(tableName)
|
|
202
|
+
.select(internalIdCol)
|
|
203
|
+
.where(idCol, "=", externalId)
|
|
204
|
+
.limit(1);
|
|
205
|
+
} else {
|
|
206
|
+
processed[key] = value;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
return processed;
|
|
211
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { QueryResult } from "../../sql-driver/sql-driver";
|
|
2
|
+
import type { DriverConfig } from "./driver-config";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Interprets query results from different SQL drivers.
|
|
6
|
+
*
|
|
7
|
+
* Different drivers return affected rows information in different formats.
|
|
8
|
+
* This class uses the driver-specific extraction logic defined in DriverConfig
|
|
9
|
+
* to normalize the affected rows count to a bigint value.
|
|
10
|
+
*/
|
|
11
|
+
export class ResultInterpreter {
|
|
12
|
+
readonly #driverConfig: DriverConfig;
|
|
13
|
+
constructor(driverConfig: DriverConfig) {
|
|
14
|
+
this.#driverConfig = driverConfig;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Extract the number of affected rows from a query result.
|
|
19
|
+
* Only works for drivers that support affected rows reporting.
|
|
20
|
+
*
|
|
21
|
+
* @param result - The query result from the SQL driver
|
|
22
|
+
* @returns The number of rows affected by the operation as bigint
|
|
23
|
+
* @throws Error if driver doesn't support affected rows or extraction fails
|
|
24
|
+
*/
|
|
25
|
+
getAffectedRows(result: QueryResult<unknown>): bigint {
|
|
26
|
+
if (!this.#driverConfig.extractAffectedRows) {
|
|
27
|
+
throw new Error(
|
|
28
|
+
`Driver ${this.#driverConfig.driverType} does not support affected rows reporting.`,
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// QueryResult doesn't have an index signature, but drivers return objects with dynamic properties
|
|
33
|
+
return this.#driverConfig.extractAffectedRows(result as unknown as Record<string, unknown>);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Extract internal ID from INSERT result (RETURNING clause).
|
|
38
|
+
*
|
|
39
|
+
* @param result - The query result from the SQL driver
|
|
40
|
+
* @returns The internal ID as bigint
|
|
41
|
+
* @throws Error if driver doesn't support RETURNING, no rows returned, or column not found
|
|
42
|
+
*/
|
|
43
|
+
getCreatedInternalId(result: QueryResult<unknown>): bigint {
|
|
44
|
+
if (!this.#driverConfig.supportsReturning || !this.#driverConfig.internalIdColumn) {
|
|
45
|
+
throw new Error(`Driver ${this.#driverConfig.driverType} does not support RETURNING clause.`);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (!Array.isArray(result.rows) || result.rows.length === 0) {
|
|
49
|
+
throw new Error(`No rows returned from INSERT with RETURNING clause.`);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const row = result.rows[0] as Record<string, unknown>;
|
|
53
|
+
const columnName = this.#driverConfig.internalIdColumn;
|
|
54
|
+
|
|
55
|
+
if (!(columnName in row)) {
|
|
56
|
+
throw new Error(`Expected column "${columnName}" not found in RETURNING result.`);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const rawId = row[columnName];
|
|
60
|
+
return this.#normalizeIntegerId(rawId);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Get count of returned rows as bigint.
|
|
65
|
+
*
|
|
66
|
+
* @param result - The query result from the SQL driver
|
|
67
|
+
* @returns The number of rows returned as bigint
|
|
68
|
+
*/
|
|
69
|
+
getReturnedRowCount(result: QueryResult<unknown>): bigint {
|
|
70
|
+
if (!Array.isArray(result.rows)) {
|
|
71
|
+
return BigInt(0);
|
|
72
|
+
}
|
|
73
|
+
return BigInt(result.rows.length);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Normalize integer values to bigint.
|
|
78
|
+
* Handles different driver return types (bigint, number, string).
|
|
79
|
+
*
|
|
80
|
+
* @param value - The value to normalize
|
|
81
|
+
* @returns The normalized bigint value
|
|
82
|
+
* @throws Error if value cannot be converted to bigint
|
|
83
|
+
*/
|
|
84
|
+
#normalizeIntegerId(value: unknown): bigint {
|
|
85
|
+
if (value === null || value === undefined) {
|
|
86
|
+
throw new Error(`Cannot normalize null or undefined value to bigint`);
|
|
87
|
+
}
|
|
88
|
+
if (typeof value === "bigint") {
|
|
89
|
+
return value;
|
|
90
|
+
}
|
|
91
|
+
if (typeof value === "number") {
|
|
92
|
+
if (Number.isNaN(value) || !Number.isFinite(value)) {
|
|
93
|
+
throw new Error(`Cannot normalize NaN or non-finite number to bigint`);
|
|
94
|
+
}
|
|
95
|
+
return BigInt(value);
|
|
96
|
+
}
|
|
97
|
+
if (typeof value === "string") {
|
|
98
|
+
return BigInt(value);
|
|
99
|
+
}
|
|
100
|
+
throw new Error(`Cannot normalize value to bigint: ${typeof value}`);
|
|
101
|
+
}
|
|
102
|
+
}
|