@fragno-dev/db 0.0.1 → 0.1.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 +137 -13
- package/.turbo/turbo-test.log +36 -0
- package/CHANGELOG.md +7 -0
- package/dist/adapters/adapters.d.ts +18 -0
- package/dist/adapters/adapters.d.ts.map +1 -0
- package/dist/adapters/drizzle/drizzle-adapter.d.ts +21 -0
- package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +1 -0
- package/dist/adapters/drizzle/drizzle-adapter.js +62 -0
- package/dist/adapters/drizzle/drizzle-adapter.js.map +1 -0
- package/dist/adapters/drizzle/drizzle-query.d.ts +17 -0
- package/dist/adapters/drizzle/drizzle-query.d.ts.map +1 -0
- package/dist/adapters/drizzle/drizzle-query.js +139 -0
- package/dist/adapters/drizzle/drizzle-query.js.map +1 -0
- package/dist/adapters/drizzle/drizzle-uow-compiler.d.ts +9 -0
- package/dist/adapters/drizzle/drizzle-uow-compiler.d.ts.map +1 -0
- package/dist/adapters/drizzle/drizzle-uow-compiler.js +300 -0
- package/dist/adapters/drizzle/drizzle-uow-compiler.js.map +1 -0
- package/dist/adapters/drizzle/drizzle-uow-decoder.js +82 -0
- package/dist/adapters/drizzle/drizzle-uow-decoder.js.map +1 -0
- package/dist/adapters/drizzle/drizzle-uow-executor.js +125 -0
- package/dist/adapters/drizzle/drizzle-uow-executor.js.map +1 -0
- package/dist/adapters/drizzle/generate.js +273 -0
- package/dist/adapters/drizzle/generate.js.map +1 -0
- package/dist/adapters/drizzle/join-column-utils.js +28 -0
- package/dist/adapters/drizzle/join-column-utils.js.map +1 -0
- package/dist/adapters/drizzle/shared.js +11 -0
- package/dist/adapters/drizzle/shared.js.map +1 -0
- package/dist/adapters/kysely/kysely-adapter.d.ts +23 -0
- package/dist/adapters/kysely/kysely-adapter.d.ts.map +1 -0
- package/dist/adapters/kysely/kysely-adapter.js +119 -0
- package/dist/adapters/kysely/kysely-adapter.js.map +1 -0
- package/dist/adapters/kysely/kysely-query-builder.js +306 -0
- package/dist/adapters/kysely/kysely-query-builder.js.map +1 -0
- package/dist/adapters/kysely/kysely-query-compiler.js +67 -0
- package/dist/adapters/kysely/kysely-query-compiler.js.map +1 -0
- package/dist/adapters/kysely/kysely-query.js +158 -0
- package/dist/adapters/kysely/kysely-query.js.map +1 -0
- package/dist/adapters/kysely/kysely-uow-compiler.js +139 -0
- package/dist/adapters/kysely/kysely-uow-compiler.js.map +1 -0
- package/dist/adapters/kysely/kysely-uow-executor.js +89 -0
- package/dist/adapters/kysely/kysely-uow-executor.js.map +1 -0
- package/dist/adapters/kysely/migration/execute.js +176 -0
- package/dist/adapters/kysely/migration/execute.js.map +1 -0
- package/dist/fragment.d.ts +54 -0
- package/dist/fragment.d.ts.map +1 -0
- package/dist/fragment.js +92 -0
- package/dist/fragment.js.map +1 -0
- package/dist/id.d.ts +2 -0
- package/dist/migration-engine/auto-from-schema.js +116 -0
- package/dist/migration-engine/auto-from-schema.js.map +1 -0
- package/dist/migration-engine/create.d.ts +41 -0
- package/dist/migration-engine/create.d.ts.map +1 -0
- package/dist/migration-engine/create.js +58 -0
- package/dist/migration-engine/create.js.map +1 -0
- package/dist/migration-engine/shared.d.ts +90 -0
- package/dist/migration-engine/shared.d.ts.map +1 -0
- package/dist/migration-engine/shared.js +8 -0
- package/dist/migration-engine/shared.js.map +1 -0
- package/dist/mod.d.ts +55 -2
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +111 -2
- package/dist/mod.js.map +1 -1
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column-builder.js +108 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column-builder.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column.js +55 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/entity.js +18 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/entity.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/common.js +183 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/common.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/enum.js +58 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/enum.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/foreign-keys.js +68 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/foreign-keys.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/unique-constraint.js +56 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/unique-constraint.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/utils/array.js +65 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/utils/array.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/conditions.js +81 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/conditions.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/select.js +13 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/select.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/functions/aggregate.js +10 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/functions/aggregate.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/sql.js +372 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/sql.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/subquery.js +23 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/subquery.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.js +62 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.utils.js +6 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.utils.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing-utils.js +8 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing-utils.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing.js +8 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing.js.map +1 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/view-common.js +6 -0
- package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/view-common.js.map +1 -0
- package/dist/query/condition-builder.d.ts +41 -0
- package/dist/query/condition-builder.d.ts.map +1 -0
- package/dist/query/condition-builder.js +93 -0
- package/dist/query/condition-builder.js.map +1 -0
- package/dist/query/cursor.d.ts +88 -0
- package/dist/query/cursor.d.ts.map +1 -0
- package/dist/query/cursor.js +103 -0
- package/dist/query/cursor.js.map +1 -0
- package/dist/query/orm/orm.d.ts +18 -0
- package/dist/query/orm/orm.d.ts.map +1 -0
- package/dist/query/orm/orm.js +48 -0
- package/dist/query/orm/orm.js.map +1 -0
- package/dist/query/query.d.ts +79 -0
- package/dist/query/query.d.ts.map +1 -0
- package/dist/query/query.js +1 -0
- package/dist/query/result-transform.js +155 -0
- package/dist/query/result-transform.js.map +1 -0
- package/dist/query/unit-of-work.d.ts +435 -0
- package/dist/query/unit-of-work.d.ts.map +1 -0
- package/dist/query/unit-of-work.js +549 -0
- package/dist/query/unit-of-work.js.map +1 -0
- package/dist/schema/create.d.ts +273 -116
- package/dist/schema/create.d.ts.map +1 -1
- package/dist/schema/create.js +410 -222
- package/dist/schema/create.js.map +1 -1
- package/dist/schema/serialize.js +101 -0
- package/dist/schema/serialize.js.map +1 -0
- package/dist/schema-generator/schema-generator.d.ts +15 -0
- package/dist/schema-generator/schema-generator.d.ts.map +1 -0
- package/dist/shared/providers.d.ts +6 -0
- package/dist/shared/providers.d.ts.map +1 -0
- package/dist/util/import-generator.js +26 -0
- package/dist/util/import-generator.js.map +1 -0
- package/dist/util/parse.js +15 -0
- package/dist/util/parse.js.map +1 -0
- package/dist/util/types.d.ts +8 -0
- package/dist/util/types.d.ts.map +1 -0
- package/package.json +63 -2
- package/src/adapters/adapters.ts +22 -0
- package/src/adapters/drizzle/drizzle-adapter-pglite.test.ts +433 -0
- package/src/adapters/drizzle/drizzle-adapter.test.ts +122 -0
- package/src/adapters/drizzle/drizzle-adapter.ts +118 -0
- package/src/adapters/drizzle/drizzle-query.ts +234 -0
- package/src/adapters/drizzle/drizzle-uow-compiler.test.ts +1084 -0
- package/src/adapters/drizzle/drizzle-uow-compiler.ts +546 -0
- package/src/adapters/drizzle/drizzle-uow-decoder.ts +165 -0
- package/src/adapters/drizzle/drizzle-uow-executor.ts +213 -0
- package/src/adapters/drizzle/generate.test.ts +643 -0
- package/src/adapters/drizzle/generate.ts +481 -0
- package/src/adapters/drizzle/join-column-utils.test.ts +79 -0
- package/src/adapters/drizzle/join-column-utils.ts +39 -0
- package/src/adapters/drizzle/migrate-drizzle.test.ts +226 -0
- package/src/adapters/drizzle/shared.ts +22 -0
- package/src/adapters/drizzle/test-utils.ts +56 -0
- package/src/adapters/kysely/kysely-adapter-pglite.test.ts +789 -0
- package/src/adapters/kysely/kysely-adapter.ts +196 -0
- package/src/adapters/kysely/kysely-query-builder.test.ts +1344 -0
- package/src/adapters/kysely/kysely-query-builder.ts +611 -0
- package/src/adapters/kysely/kysely-query-compiler.ts +124 -0
- package/src/adapters/kysely/kysely-query.ts +254 -0
- package/src/adapters/kysely/kysely-uow-compiler.test.ts +916 -0
- package/src/adapters/kysely/kysely-uow-compiler.ts +271 -0
- package/src/adapters/kysely/kysely-uow-executor.ts +149 -0
- package/src/adapters/kysely/kysely-uow-joins.test.ts +811 -0
- package/src/adapters/kysely/migration/execute-mysql.test.ts +1173 -0
- package/src/adapters/kysely/migration/execute-postgres.test.ts +2657 -0
- package/src/adapters/kysely/migration/execute.ts +382 -0
- package/src/adapters/kysely/migration/kysely-migrator.test.ts +197 -0
- package/src/fragment.test.ts +287 -0
- package/src/fragment.ts +198 -0
- package/src/migration-engine/auto-from-schema.test.ts +118 -58
- package/src/migration-engine/auto-from-schema.ts +103 -32
- package/src/migration-engine/create.test.ts +34 -46
- package/src/migration-engine/create.ts +41 -26
- package/src/migration-engine/shared.ts +26 -6
- package/src/mod.ts +197 -1
- package/src/query/condition-builder.test.ts +379 -0
- package/src/query/condition-builder.ts +294 -0
- package/src/query/cursor.test.ts +296 -0
- package/src/query/cursor.ts +147 -0
- package/src/query/orm/orm.ts +92 -0
- package/src/query/query-type.test.ts +429 -0
- package/src/query/query.ts +200 -0
- package/src/query/result-transform.test.ts +795 -0
- package/src/query/result-transform.ts +247 -0
- package/src/query/unit-of-work-types.test.ts +192 -0
- package/src/query/unit-of-work.test.ts +947 -0
- package/src/query/unit-of-work.ts +1199 -0
- package/src/schema/create.test.ts +653 -110
- package/src/schema/create.ts +708 -337
- package/src/schema/serialize.test.ts +559 -0
- package/src/schema/serialize.ts +359 -0
- package/src/schema-generator/schema-generator.ts +12 -0
- package/src/shared/config.ts +0 -8
- package/src/util/import-generator.ts +28 -0
- package/src/util/parse.ts +16 -0
- package/src/util/types.ts +4 -0
- package/tsconfig.json +1 -1
- package/tsdown.config.ts +11 -1
- package/vitest.config.ts +3 -0
- /package/dist/{cuid.js → id.js} +0 -0
- /package/src/{cuid.ts → id.ts} +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,17 +1,141 @@
|
|
|
1
1
|
$ tsdown
|
|
2
|
-
[34mℹ[39m tsdown [2mv0.15.
|
|
2
|
+
[34mℹ[39m tsdown [2mv0.15.9[22m powered by rolldown [2mv1.0.0-beta.44[22m
|
|
3
3
|
[34mℹ[39m Using tsdown config: [4m/home/runner/work/fragno/fragno/packages/fragno-db/tsdown.config.ts[24m
|
|
4
|
-
[34mℹ[39m entry: [34msrc/mod.ts, src/schema/create.ts[39m
|
|
4
|
+
[34mℹ[39m entry: [34msrc/fragment.ts, src/id.ts, src/mod.ts, src/query/cursor.ts, src/query/query.ts, src/query/unit-of-work.ts, src/schema/create.ts, src/adapters/drizzle/drizzle-adapter.ts, src/adapters/kysely/kysely-adapter.ts[39m
|
|
5
5
|
[34mℹ[39m tsconfig: [34mtsconfig.json[39m
|
|
6
6
|
[34mℹ[39m Build start
|
|
7
|
-
[34mℹ[39m [2mdist/[22m[1mschema/create.js[22m
|
|
8
|
-
[34mℹ[39m [2mdist/[22m[
|
|
9
|
-
[34mℹ[39m [2mdist/[
|
|
10
|
-
[34mℹ[39m [2mdist/[
|
|
11
|
-
[34mℹ[39m [2mdist/[
|
|
12
|
-
[34mℹ[39m [2mdist/[
|
|
13
|
-
[34mℹ[39m [2mdist/[
|
|
14
|
-
[34mℹ[39m [2mdist/[22m[
|
|
15
|
-
[34mℹ[39m [2mdist/[22m[
|
|
16
|
-
[34mℹ[39m
|
|
17
|
-
[
|
|
7
|
+
[34mℹ[39m [2mdist/[22m[1mschema/create.js[22m [2m17.16 kB[22m [2m│ gzip: 4.51 kB[22m
|
|
8
|
+
[34mℹ[39m [2mdist/[22m[1mquery/unit-of-work.js[22m [2m16.08 kB[22m [2m│ gzip: 3.74 kB[22m
|
|
9
|
+
[34mℹ[39m [2mdist/[22m[1mmod.js[22m [2m 4.41 kB[22m [2m│ gzip: 1.36 kB[22m
|
|
10
|
+
[34mℹ[39m [2mdist/[22m[1madapters/kysely/kysely-adapter.js[22m [2m 4.01 kB[22m [2m│ gzip: 1.45 kB[22m
|
|
11
|
+
[34mℹ[39m [2mdist/[22m[1mquery/cursor.js[22m [2m 2.99 kB[22m [2m│ gzip: 1.13 kB[22m
|
|
12
|
+
[34mℹ[39m [2mdist/[22m[1mfragment.js[22m [2m 2.49 kB[22m [2m│ gzip: 0.71 kB[22m
|
|
13
|
+
[34mℹ[39m [2mdist/[22m[1madapters/drizzle/drizzle-adapter.js[22m [2m 2.38 kB[22m [2m│ gzip: 0.93 kB[22m
|
|
14
|
+
[34mℹ[39m [2mdist/[22m[1mid.js[22m [2m 0.07 kB[22m [2m│ gzip: 0.07 kB[22m
|
|
15
|
+
[34mℹ[39m [2mdist/[22m[1mquery/query.js[22m [2m 0.01 kB[22m [2m│ gzip: 0.03 kB[22m
|
|
16
|
+
[34mℹ[39m [2mdist/[22mquery/unit-of-work.js.map [2m45.16 kB[22m [2m│ gzip: 9.98 kB[22m
|
|
17
|
+
[34mℹ[39m [2mdist/[22mschema/create.js.map [2m43.84 kB[22m [2m│ gzip: 10.67 kB[22m
|
|
18
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/drizzle-uow-compiler.js.map [2m28.59 kB[22m [2m│ gzip: 7.06 kB[22m
|
|
19
|
+
[34mℹ[39m [2mdist/[22madapters/kysely/kysely-query-builder.js.map [2m26.89 kB[22m [2m│ gzip: 7.13 kB[22m
|
|
20
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/generate.js.map [2m22.22 kB[22m [2m│ gzip: 5.68 kB[22m
|
|
21
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/sql.js.map [2m20.20 kB[22m [2m│ gzip: 5.21 kB[22m
|
|
22
|
+
[34mℹ[39m [2mdist/[22madapters/kysely/migration/execute.js.map [2m16.41 kB[22m [2m│ gzip: 4.67 kB[22m
|
|
23
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/drizzle-uow-compiler.js [2m13.37 kB[22m [2m│ gzip: 3.43 kB[22m
|
|
24
|
+
[34mℹ[39m [2mdist/[22madapters/kysely/kysely-uow-compiler.js.map [2m13.33 kB[22m [2m│ gzip: 3.78 kB[22m
|
|
25
|
+
[34mℹ[39m [2mdist/[22madapters/kysely/kysely-query.js.map [2m12.65 kB[22m [2m│ gzip: 3.41 kB[22m
|
|
26
|
+
[34mℹ[39m [2mdist/[22mschema/create.d.ts.map [2m12.26 kB[22m [2m│ gzip: 4.66 kB[22m
|
|
27
|
+
[34mℹ[39m [2mdist/[22madapters/kysely/kysely-query-builder.js [2m12.02 kB[22m [2m│ gzip: 3.47 kB[22m
|
|
28
|
+
[34mℹ[39m [2mdist/[22mschema/serialize.js.map [2m11.74 kB[22m [2m│ gzip: 2.73 kB[22m
|
|
29
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/drizzle-query.js.map [2m11.10 kB[22m [2m│ gzip: 2.85 kB[22m
|
|
30
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/sql.js [2m10.57 kB[22m [2m│ gzip: 2.92 kB[22m
|
|
31
|
+
[34mℹ[39m [2mdist/[22mquery/result-transform.js.map [2m10.24 kB[22m [2m│ gzip: 3.20 kB[22m
|
|
32
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/drizzle-uow-executor.js.map [2m10.15 kB[22m [2m│ gzip: 3.51 kB[22m
|
|
33
|
+
[34mℹ[39m [2mdist/[22mquery/unit-of-work.d.ts.map [2m 9.79 kB[22m [2m│ gzip: 3.77 kB[22m
|
|
34
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/generate.js [2m 9.46 kB[22m [2m│ gzip: 2.64 kB[22m
|
|
35
|
+
[34mℹ[39m [2mdist/[22mquery/condition-builder.js.map [2m 9.04 kB[22m [2m│ gzip: 2.46 kB[22m
|
|
36
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/common.js.map [2m 8.89 kB[22m [2m│ gzip: 2.93 kB[22m
|
|
37
|
+
[34mℹ[39m [2mdist/[22madapters/kysely/kysely-adapter.js.map [2m 8.68 kB[22m [2m│ gzip: 2.86 kB[22m
|
|
38
|
+
[34mℹ[39m [2mdist/[22mmigration-engine/auto-from-schema.js.map [2m 8.23 kB[22m [2m│ gzip: 2.17 kB[22m
|
|
39
|
+
[34mℹ[39m [2mdist/[22mmod.js.map [2m 8.21 kB[22m [2m│ gzip: 2.61 kB[22m
|
|
40
|
+
[34mℹ[39m [2mdist/[22mfragment.js.map [2m 8.01 kB[22m [2m│ gzip: 2.12 kB[22m
|
|
41
|
+
[34mℹ[39m [2mdist/[22madapters/kysely/migration/execute.js [2m 7.90 kB[22m [2m│ gzip: 2.34 kB[22m
|
|
42
|
+
[34mℹ[39m [2mdist/[22mmigration-engine/create.js.map [2m 7.47 kB[22m [2m│ gzip: 2.19 kB[22m
|
|
43
|
+
[34mℹ[39m [2mdist/[22madapters/kysely/kysely-uow-executor.js.map [2m 7.10 kB[22m [2m│ gzip: 2.53 kB[22m
|
|
44
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/drizzle-uow-decoder.js.map [2m 7.00 kB[22m [2m│ gzip: 2.58 kB[22m
|
|
45
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/conditions.js.map [2m 6.92 kB[22m [2m│ gzip: 1.53 kB[22m
|
|
46
|
+
[34mℹ[39m [2mdist/[22mquery/query.d.ts.map [2m 6.49 kB[22m [2m│ gzip: 2.43 kB[22m
|
|
47
|
+
[34mℹ[39m [2mdist/[22madapters/kysely/kysely-query-compiler.js.map [2m 6.10 kB[22m [2m│ gzip: 1.48 kB[22m
|
|
48
|
+
[34mℹ[39m [2mdist/[22madapters/kysely/kysely-query.js [2m 5.92 kB[22m [2m│ gzip: 1.65 kB[22m
|
|
49
|
+
[34mℹ[39m [2mdist/[22madapters/kysely/kysely-uow-compiler.js [2m 5.84 kB[22m [2m│ gzip: 1.77 kB[22m
|
|
50
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/common.js [2m 5.72 kB[22m [2m│ gzip: 1.99 kB[22m
|
|
51
|
+
[34mℹ[39m [2mdist/[22mquery/result-transform.js [2m 5.48 kB[22m [2m│ gzip: 1.86 kB[22m
|
|
52
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/drizzle-query.js [2m 5.30 kB[22m [2m│ gzip: 1.40 kB[22m
|
|
53
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/drizzle-adapter.js.map [2m 5.28 kB[22m [2m│ gzip: 1.97 kB[22m
|
|
54
|
+
[34mℹ[39m [2mdist/[22mquery/cursor.js.map [2m 5.13 kB[22m [2m│ gzip: 1.81 kB[22m
|
|
55
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/drizzle-uow-executor.js [2m 4.96 kB[22m [2m│ gzip: 1.77 kB[22m
|
|
56
|
+
[34mℹ[39m [2mdist/[22mmigration-engine/auto-from-schema.js [2m 4.25 kB[22m [2m│ gzip: 1.21 kB[22m
|
|
57
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column-builder.js.map [2m 4.25 kB[22m [2m│ gzip: 1.42 kB[22m
|
|
58
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/utils/array.js.map [2m 3.78 kB[22m [2m│ gzip: 1.19 kB[22m
|
|
59
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/enum.js.map [2m 3.68 kB[22m [2m│ gzip: 1.07 kB[22m
|
|
60
|
+
[34mℹ[39m [2mdist/[22mschema/serialize.js [2m 3.63 kB[22m [2m│ gzip: 1.05 kB[22m
|
|
61
|
+
[34mℹ[39m [2mdist/[22madapters/kysely/kysely-uow-executor.js [2m 3.54 kB[22m [2m│ gzip: 1.25 kB[22m
|
|
62
|
+
[34mℹ[39m [2mdist/[22mquery/orm/orm.js.map [2m 3.49 kB[22m [2m│ gzip: 1.38 kB[22m
|
|
63
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/drizzle-uow-decoder.js [2m 3.43 kB[22m [2m│ gzip: 1.34 kB[22m
|
|
64
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column-builder.js [2m 3.13 kB[22m [2m│ gzip: 1.11 kB[22m
|
|
65
|
+
[34mℹ[39m [2mdist/[22mmigration-engine/shared.js.map [2m 3.11 kB[22m [2m│ gzip: 1.00 kB[22m
|
|
66
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/foreign-keys.js.map [2m 3.11 kB[22m [2m│ gzip: 1.10 kB[22m
|
|
67
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.js.map [2m 2.90 kB[22m [2m│ gzip: 1.03 kB[22m
|
|
68
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/conditions.js [2m 2.78 kB[22m [2m│ gzip: 0.79 kB[22m
|
|
69
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/unique-constraint.js.map [2m 2.58 kB[22m [2m│ gzip: 0.95 kB[22m
|
|
70
|
+
[34mℹ[39m [2mdist/[22mmigration-engine/create.js [2m 2.52 kB[22m [2m│ gzip: 0.80 kB[22m
|
|
71
|
+
[34mℹ[39m [2mdist/[22madapters/kysely/kysely-query-compiler.js [2m 2.31 kB[22m [2m│ gzip: 0.60 kB[22m
|
|
72
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column.js.map [2m 2.25 kB[22m [2m│ gzip: 0.80 kB[22m
|
|
73
|
+
[34mℹ[39m [2mdist/[22mquery/condition-builder.d.ts.map [2m 2.01 kB[22m [2m│ gzip: 0.74 kB[22m
|
|
74
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/join-column-utils.js.map [2m 1.98 kB[22m [2m│ gzip: 0.88 kB[22m
|
|
75
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/utils/array.js [2m 1.97 kB[22m [2m│ gzip: 0.66 kB[22m
|
|
76
|
+
[34mℹ[39m [2mdist/[22mquery/condition-builder.js [2m 1.89 kB[22m [2m│ gzip: 0.70 kB[22m
|
|
77
|
+
[34mℹ[39m [2mdist/[22mfragment.d.ts.map [2m 1.82 kB[22m [2m│ gzip: 0.81 kB[22m
|
|
78
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/foreign-keys.js [2m 1.75 kB[22m [2m│ gzip: 0.66 kB[22m
|
|
79
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/enum.js [2m 1.67 kB[22m [2m│ gzip: 0.55 kB[22m
|
|
80
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.js [2m 1.62 kB[22m [2m│ gzip: 0.61 kB[22m
|
|
81
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/entity.js.map [2m 1.54 kB[22m [2m│ gzip: 0.78 kB[22m
|
|
82
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/unique-constraint.js [2m 1.51 kB[22m [2m│ gzip: 0.56 kB[22m
|
|
83
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/functions/aggregate.js.map [2m 1.41 kB[22m [2m│ gzip: 0.51 kB[22m
|
|
84
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column.js [2m 1.35 kB[22m [2m│ gzip: 0.53 kB[22m
|
|
85
|
+
[34mℹ[39m [2mdist/[22mquery/orm/orm.js [2m 1.33 kB[22m [2m│ gzip: 0.60 kB[22m
|
|
86
|
+
[34mℹ[39m [2mdist/[22mutil/import-generator.js.map [2m 1.28 kB[22m [2m│ gzip: 0.62 kB[22m
|
|
87
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing.js.map [2m 1.24 kB[22m [2m│ gzip: 0.59 kB[22m
|
|
88
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/join-column-utils.js [2m 1.14 kB[22m [2m│ gzip: 0.55 kB[22m
|
|
89
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/shared.js.map [2m 1.12 kB[22m [2m│ gzip: 0.63 kB[22m
|
|
90
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/subquery.js.map [2m 0.99 kB[22m [2m│ gzip: 0.55 kB[22m
|
|
91
|
+
[34mℹ[39m [2mdist/[22mmod.d.ts.map [2m 0.97 kB[22m [2m│ gzip: 0.51 kB[22m
|
|
92
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/entity.js [2m 0.88 kB[22m [2m│ gzip: 0.49 kB[22m
|
|
93
|
+
[34mℹ[39m [2mdist/[22mutil/parse.js.map [2m 0.82 kB[22m [2m│ gzip: 0.48 kB[22m
|
|
94
|
+
[34mℹ[39m [2mdist/[22mutil/import-generator.js [2m 0.65 kB[22m [2m│ gzip: 0.36 kB[22m
|
|
95
|
+
[34mℹ[39m [2mdist/[22mmigration-engine/shared.d.ts.map [2m 0.63 kB[22m [2m│ gzip: 0.32 kB[22m
|
|
96
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/drizzle-adapter.d.ts.map [2m 0.57 kB[22m [2m│ gzip: 0.30 kB[22m
|
|
97
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/select.js.map [2m 0.57 kB[22m [2m│ gzip: 0.34 kB[22m
|
|
98
|
+
[34mℹ[39m [2mdist/[22madapters/kysely/kysely-adapter.d.ts.map [2m 0.56 kB[22m [2m│ gzip: 0.30 kB[22m
|
|
99
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/subquery.js [2m 0.55 kB[22m [2m│ gzip: 0.33 kB[22m
|
|
100
|
+
[34mℹ[39m [2mdist/[22madapters/adapters.d.ts.map [2m 0.54 kB[22m [2m│ gzip: 0.27 kB[22m
|
|
101
|
+
[34mℹ[39m [2mdist/[22mquery/orm/orm.d.ts.map [2m 0.45 kB[22m [2m│ gzip: 0.28 kB[22m
|
|
102
|
+
[34mℹ[39m [2mdist/[22mutil/parse.js [2m 0.45 kB[22m [2m│ gzip: 0.29 kB[22m
|
|
103
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/shared.js [2m 0.44 kB[22m [2m│ gzip: 0.30 kB[22m
|
|
104
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing-utils.js.map [2m 0.42 kB[22m [2m│ gzip: 0.29 kB[22m
|
|
105
|
+
[34mℹ[39m [2mdist/[22mquery/cursor.d.ts.map [2m 0.42 kB[22m [2m│ gzip: 0.26 kB[22m
|
|
106
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/view-common.js.map [2m 0.41 kB[22m [2m│ gzip: 0.28 kB[22m
|
|
107
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.utils.js.map [2m 0.39 kB[22m [2m│ gzip: 0.27 kB[22m
|
|
108
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/select.js [2m 0.33 kB[22m [2m│ gzip: 0.23 kB[22m
|
|
109
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/functions/aggregate.js [2m 0.32 kB[22m [2m│ gzip: 0.25 kB[22m
|
|
110
|
+
[34mℹ[39m [2mdist/[22mmigration-engine/create.d.ts.map [2m 0.28 kB[22m [2m│ gzip: 0.22 kB[22m
|
|
111
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/view-common.js [2m 0.25 kB[22m [2m│ gzip: 0.19 kB[22m
|
|
112
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing.js [2m 0.24 kB[22m [2m│ gzip: 0.20 kB[22m
|
|
113
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing-utils.js [2m 0.24 kB[22m [2m│ gzip: 0.19 kB[22m
|
|
114
|
+
[34mℹ[39m [2mdist/[22mnode_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.utils.js [2m 0.23 kB[22m [2m│ gzip: 0.18 kB[22m
|
|
115
|
+
[34mℹ[39m [2mdist/[22mschema-generator/schema-generator.d.ts.map [2m 0.23 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
116
|
+
[34mℹ[39m [2mdist/[22mutil/types.d.ts.map [2m 0.22 kB[22m [2m│ gzip: 0.16 kB[22m
|
|
117
|
+
[34mℹ[39m [2mdist/[22mmigration-engine/shared.js [2m 0.21 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
118
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/drizzle-query.d.ts.map [2m 0.18 kB[22m [2m│ gzip: 0.14 kB[22m
|
|
119
|
+
[34mℹ[39m [2mdist/[22madapters/drizzle/drizzle-uow-compiler.d.ts.map [2m 0.17 kB[22m [2m│ gzip: 0.14 kB[22m
|
|
120
|
+
[34mℹ[39m [2mdist/[22mshared/providers.d.ts.map [2m 0.15 kB[22m [2m│ gzip: 0.13 kB[22m
|
|
121
|
+
[34mℹ[39m [2mdist/[22m[32m[1mquery/unit-of-work.d.ts[22m[39m [2m17.49 kB[22m [2m│ gzip: 4.26 kB[22m
|
|
122
|
+
[34mℹ[39m [2mdist/[22m[32m[1mschema/create.d.ts[22m[39m [2m17.28 kB[22m [2m│ gzip: 4.20 kB[22m
|
|
123
|
+
[34mℹ[39m [2mdist/[22m[32m[1mquery/query.d.ts[22m[39m [2m 6.17 kB[22m [2m│ gzip: 1.59 kB[22m
|
|
124
|
+
[34mℹ[39m [2mdist/[22m[32m[1mquery/cursor.d.ts[22m[39m [2m 2.57 kB[22m [2m│ gzip: 0.93 kB[22m
|
|
125
|
+
[34mℹ[39m [2mdist/[22m[32m[1mfragment.d.ts[22m[39m [2m 2.39 kB[22m [2m│ gzip: 0.75 kB[22m
|
|
126
|
+
[34mℹ[39m [2mdist/[22m[32m[1mmod.d.ts[22m[39m [2m 2.38 kB[22m [2m│ gzip: 0.78 kB[22m
|
|
127
|
+
[34mℹ[39m [2mdist/[22m[32m[1madapters/drizzle/drizzle-adapter.d.ts[22m[39m [2m 0.94 kB[22m [2m│ gzip: 0.42 kB[22m
|
|
128
|
+
[34mℹ[39m [2mdist/[22m[32m[1madapters/kysely/kysely-adapter.d.ts[22m[39m [2m 0.89 kB[22m [2m│ gzip: 0.42 kB[22m
|
|
129
|
+
[34mℹ[39m [2mdist/[22m[32m[1mid.d.ts[22m[39m [2m 0.07 kB[22m [2m│ gzip: 0.07 kB[22m
|
|
130
|
+
[34mℹ[39m [2mdist/[22m[32mmigration-engine/shared.d.ts[39m [2m 2.23 kB[22m [2m│ gzip: 0.82 kB[22m
|
|
131
|
+
[34mℹ[39m [2mdist/[22m[32mquery/condition-builder.d.ts[39m [2m 2.00 kB[22m [2m│ gzip: 0.68 kB[22m
|
|
132
|
+
[34mℹ[39m [2mdist/[22m[32mmigration-engine/create.d.ts[39m [2m 1.23 kB[22m [2m│ gzip: 0.56 kB[22m
|
|
133
|
+
[34mℹ[39m [2mdist/[22m[32madapters/adapters.d.ts[39m [2m 0.85 kB[22m [2m│ gzip: 0.38 kB[22m
|
|
134
|
+
[34mℹ[39m [2mdist/[22m[32mquery/orm/orm.d.ts[39m [2m 0.61 kB[22m [2m│ gzip: 0.34 kB[22m
|
|
135
|
+
[34mℹ[39m [2mdist/[22m[32madapters/drizzle/drizzle-query.d.ts[39m [2m 0.51 kB[22m [2m│ gzip: 0.31 kB[22m
|
|
136
|
+
[34mℹ[39m [2mdist/[22m[32mschema-generator/schema-generator.d.ts[39m [2m 0.37 kB[22m [2m│ gzip: 0.20 kB[22m
|
|
137
|
+
[34mℹ[39m [2mdist/[22m[32mshared/providers.d.ts[39m [2m 0.26 kB[22m [2m│ gzip: 0.19 kB[22m
|
|
138
|
+
[34mℹ[39m [2mdist/[22m[32mutil/types.d.ts[39m [2m 0.26 kB[22m [2m│ gzip: 0.21 kB[22m
|
|
139
|
+
[34mℹ[39m [2mdist/[22m[32madapters/drizzle/drizzle-uow-compiler.d.ts[39m [2m 0.22 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
140
|
+
[34mℹ[39m 133 files, total: 687.07 kB
|
|
141
|
+
[32m✔[39m Build complete in [32m13054ms[39m
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
$ vitest run
|
|
2
|
+
|
|
3
|
+
[1m[46m RUN [49m[22m [36mv3.2.4 [39m[90m/home/runner/work/fragno/fragno/packages/fragno-db[39m
|
|
4
|
+
[2mCoverage enabled with [22m[33mistanbul[39m
|
|
5
|
+
|
|
6
|
+
[32m✓[39m src/adapters/kysely/kysely-query-builder.test.ts [2m([22m[2m83 tests[22m[2m)[22m[33m 530[2mms[22m[39m
|
|
7
|
+
[32m✓[39m src/adapters/kysely/migration/execute-postgres.test.ts [2m([22m[2m50 tests[22m[2m)[22m[33m 597[2mms[22m[39m
|
|
8
|
+
[32m✓[39m src/adapters/kysely/kysely-uow-joins.test.ts [2m([22m[2m26 tests[22m[2m)[22m[33m 301[2mms[22m[39m
|
|
9
|
+
[32m✓[39m src/adapters/kysely/kysely-uow-compiler.test.ts [2m([22m[2m42 tests[22m[2m)[22m[33m 487[2mms[22m[39m
|
|
10
|
+
[32m✓[39m src/schema/create.test.ts [2m([22m[2m28 tests[22m[2m)[22m[32m 171[2mms[22m[39m
|
|
11
|
+
[32m✓[39m src/adapters/kysely/migration/execute-mysql.test.ts [2m([22m[2m36 tests[22m[2m)[22m[33m 439[2mms[22m[39m
|
|
12
|
+
[32m✓[39m src/query/unit-of-work.test.ts [2m([22m[2m30 tests[22m[2m)[22m[32m 262[2mms[22m[39m
|
|
13
|
+
[32m✓[39m src/adapters/drizzle/generate.test.ts [2m([22m[2m13 tests[22m[2m)[22m[32m 190[2mms[22m[39m
|
|
14
|
+
[32m✓[39m src/query/result-transform.test.ts [2m([22m[2m47 tests[22m[2m)[22m[32m 122[2mms[22m[39m
|
|
15
|
+
[32m✓[39m src/schema/serialize.test.ts [2m([22m[2m86 tests[22m[2m)[22m[32m 151[2mms[22m[39m
|
|
16
|
+
[32m✓[39m src/adapters/drizzle/drizzle-uow-compiler.test.ts [2m([22m[2m45 tests[22m[2m)[22m[33m 13722[2mms[22m[39m
|
|
17
|
+
[32m✓[39m src/adapters/kysely/kysely-adapter-pglite.test.ts [2m([22m[2m7 tests[22m[2m)[22m[33m 6116[2mms[22m[39m
|
|
18
|
+
[33m[2m✓[22m[39m KyselyAdapter PGLite[2m > [22mshould run migrations and basic queries [33m 425[2mms[22m[39m
|
|
19
|
+
[32m✓[39m src/query/query-type.test.ts [2m([22m[2m29 tests[22m[2m)[22m[32m 25[2mms[22m[39m
|
|
20
|
+
[32m✓[39m src/query/condition-builder.test.ts [2m([22m[2m20 tests[22m[2m)[22m[32m 15[2mms[22m[39m
|
|
21
|
+
[32m✓[39m src/migration-engine/create.test.ts [2m([22m[2m20 tests[22m[2m)[22m[32m 83[2mms[22m[39m
|
|
22
|
+
[32m✓[39m src/migration-engine/auto-from-schema.test.ts [2m([22m[2m13 tests[22m[2m)[22m[32m 104[2mms[22m[39m
|
|
23
|
+
[32m✓[39m src/adapters/drizzle/drizzle-adapter-pglite.test.ts [2m([22m[2m5 tests[22m[2m)[22m[33m 6048[2mms[22m[39m
|
|
24
|
+
[32m✓[39m src/fragment.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 21[2mms[22m[39m
|
|
25
|
+
[32m✓[39m src/adapters/drizzle/migrate-drizzle.test.ts [2m([22m[2m1 test[22m[2m)[22m[33m 450[2mms[22m[39m
|
|
26
|
+
[32m✓[39m src/query/cursor.test.ts [2m([22m[2m18 tests[22m[2m)[22m[32m 21[2mms[22m[39m
|
|
27
|
+
[32m✓[39m src/query/unit-of-work-types.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 19[2mms[22m[39m
|
|
28
|
+
[32m✓[39m src/adapters/kysely/migration/kysely-migrator.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 154[2mms[22m[39m
|
|
29
|
+
[32m✓[39m src/adapters/drizzle/drizzle-adapter.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 42[2mms[22m[39m
|
|
30
|
+
[32m✓[39m src/adapters/drizzle/join-column-utils.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 13[2mms[22m[39m
|
|
31
|
+
|
|
32
|
+
[2m Test Files [22m [1m[32m24 passed[39m[22m[90m (24)[39m
|
|
33
|
+
[2m Tests [22m [1m[32m636 passed[39m[22m[90m (636)[39m
|
|
34
|
+
[2m Start at [22m 20:04:34
|
|
35
|
+
[2m Duration [22m 38.12s[2m (transform 17.92s, setup 0ms, collect 44.60s, tests 30.08s, environment 18ms, prepare 11.45s)[22m
|
|
36
|
+
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AnySchema } from "../schema/create.js";
|
|
2
|
+
import { Migrator } from "../migration-engine/create.js";
|
|
3
|
+
import { AbstractQuery } from "../query/query.js";
|
|
4
|
+
import { SchemaGenerator } from "../schema-generator/schema-generator.js";
|
|
5
|
+
|
|
6
|
+
//#region src/adapters/adapters.d.ts
|
|
7
|
+
interface DatabaseAdapter<TUOWConfig = void> {
|
|
8
|
+
/**
|
|
9
|
+
* Get current schema version, undefined if not initialized.
|
|
10
|
+
*/
|
|
11
|
+
getSchemaVersion(namespace: string): Promise<string | undefined>;
|
|
12
|
+
createQueryEngine: <const T extends AnySchema>(schema: T, namespace: string) => AbstractQuery<T, TUOWConfig>;
|
|
13
|
+
createMigrationEngine?: <const T extends AnySchema>(schema: T, namespace: string) => Migrator;
|
|
14
|
+
createSchemaGenerator?: <const T extends AnySchema>(schema: T, namespace: string) => SchemaGenerator;
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { DatabaseAdapter };
|
|
18
|
+
//# sourceMappingURL=adapters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.d.ts","names":[],"sources":["../../src/adapters/adapters.ts"],"sourcesContent":[],"mappings":";;;;;;UAKiB;;AAAjB;;EAMsC,gBAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAFC,OAED,CAAA,MAAA,GAAA,SAAA,CAAA;EAC1B,iBAAA,EAAA,CAAA,gBAD0B,SAC1B,CAAA,CAAA,MAAA,EAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,GAEL,aAFK,CAES,CAFT,EAEY,UAFZ,CAAA;EAES,qBAAA,CAAA,EAAA,CAAA,gBAEsB,SAFtB,CAAA,CAAA,MAAA,EAEyC,CAFzC,EAAA,SAAA,EAAA,MAAA,EAAA,GAEkE,QAFlE;EAAG,qBAAA,CAAA,EAAA,CAAA,gBAGmB,SAHnB,CAAA,CAAA,MAAA,EAIZ,CAJY,EAAA,SAAA,EAAA,MAAA,EAAA,GAMjB,eANiB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AnySchema } from "../../schema/create.js";
|
|
2
|
+
import { AbstractQuery } from "../../query/query.js";
|
|
3
|
+
import { SchemaGenerator } from "../../schema-generator/schema-generator.js";
|
|
4
|
+
import { DatabaseAdapter } from "../adapters.js";
|
|
5
|
+
import { DrizzleUOWConfig } from "./drizzle-query.js";
|
|
6
|
+
|
|
7
|
+
//#region src/adapters/drizzle/drizzle-adapter.d.ts
|
|
8
|
+
interface DrizzleConfig {
|
|
9
|
+
db: unknown;
|
|
10
|
+
provider: "sqlite" | "mysql" | "postgresql";
|
|
11
|
+
}
|
|
12
|
+
declare class DrizzleAdapter implements DatabaseAdapter<DrizzleUOWConfig> {
|
|
13
|
+
#private;
|
|
14
|
+
constructor(config: DrizzleConfig);
|
|
15
|
+
getSchemaVersion(namespace: string): Promise<string | undefined>;
|
|
16
|
+
createQueryEngine<TSchema extends AnySchema>(schema: TSchema, _namespace: string): AbstractQuery<TSchema, DrizzleUOWConfig>;
|
|
17
|
+
createSchemaGenerator(schema: AnySchema, namespace: string): SchemaGenerator;
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
export { DrizzleAdapter, DrizzleConfig };
|
|
21
|
+
//# sourceMappingURL=drizzle-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drizzle-adapter.d.ts","names":[],"sources":["../../../src/adapters/drizzle/drizzle-adapter.ts"],"sourcesContent":[],"mappings":";;;;;;;UAiBiB,aAAA;;EAAA,QAAA,EAAA,QAAa,GAAA,OAAA,GAAA,YAAA;AAK9B;AAAuD,cAA1C,cAAA,YAA0B,eAAgB,CAAA,gBAAA,CAAA,CAAA;EAGjC,CAAA,OAAA;EAWuB,WAAA,CAAA,MAAA,EAXvB,aAWuB;EAaT,gBAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAbS,OAaT,CAAA,MAAA,GAAA,SAAA,CAAA;EACxB,iBAAA,CAAA,gBADwB,SACxB,CAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAEP,aAFO,CAEO,OAFP,EAEgB,gBAFhB,CAAA;EAEO,qBAAA,CAAA,MAAA,EAIa,SAJb,EAAA,SAAA,EAAA,MAAA,CAAA,EAI4C,eAJ5C"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { createId } from "../../id.js";
|
|
2
|
+
import { SchemaBuilder, column, idColumn, schema } from "../../schema/create.js";
|
|
3
|
+
import { generateSchema } from "./generate.js";
|
|
4
|
+
import { fromDrizzle } from "./drizzle-query.js";
|
|
5
|
+
|
|
6
|
+
//#region src/adapters/drizzle/drizzle-adapter.ts
|
|
7
|
+
const SETTINGS_TABLE_NAME = "fragno_db_settings";
|
|
8
|
+
var DrizzleAdapter = class {
|
|
9
|
+
#drizzleConfig;
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.#drizzleConfig = config;
|
|
12
|
+
}
|
|
13
|
+
#createFullSchema(schema$1) {
|
|
14
|
+
return new SchemaBuilder().mergeWithExistingSchema(schema$1).mergeWithExistingSchema(createSettingsSchema(schema$1.version)).build();
|
|
15
|
+
}
|
|
16
|
+
async getSchemaVersion(namespace) {
|
|
17
|
+
const manager = createSettingsManager(this.createQueryEngine(createSettingsSchema(0), namespace), namespace);
|
|
18
|
+
const randomId = createId();
|
|
19
|
+
const result = await manager.createKeyWithDefault(randomId);
|
|
20
|
+
if (result) await manager.delete(result.id);
|
|
21
|
+
return result?.value;
|
|
22
|
+
}
|
|
23
|
+
createQueryEngine(schema$1, _namespace) {
|
|
24
|
+
return fromDrizzle(schema$1, this.#drizzleConfig);
|
|
25
|
+
}
|
|
26
|
+
createSchemaGenerator(schema$1, namespace) {
|
|
27
|
+
return { generateSchema: (options) => {
|
|
28
|
+
const path = options?.path ?? `drizzle-schema-${namespace}.ts`;
|
|
29
|
+
return {
|
|
30
|
+
schema: generateSchema(this.#createFullSchema(schema$1), this.#drizzleConfig.provider),
|
|
31
|
+
path
|
|
32
|
+
};
|
|
33
|
+
} };
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
function createSettingsSchema(version) {
|
|
37
|
+
return schema((s) => {
|
|
38
|
+
return s.addTable(SETTINGS_TABLE_NAME, (t) => {
|
|
39
|
+
return t.addColumn("id", idColumn()).addColumn("key", column("string")).addColumn("value", column("string").defaultTo(String(version))).createIndex("unique_key", ["key"], { unique: true });
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function createSettingsManager(queryEngine, namespace) {
|
|
44
|
+
return {
|
|
45
|
+
async createKeyWithDefault(key) {
|
|
46
|
+
const { success } = await queryEngine.createUnitOfWork("createKeyWithDefault").create(SETTINGS_TABLE_NAME, { key: `${namespace}.${key}` }).executeMutations();
|
|
47
|
+
if (!success) throw new Error("Failed to create key with default");
|
|
48
|
+
return this.get(key);
|
|
49
|
+
},
|
|
50
|
+
async get(key) {
|
|
51
|
+
const [[result]] = await queryEngine.createUnitOfWork().find(SETTINGS_TABLE_NAME, (b) => b.whereIndex("unique_key", (eb) => eb("key", "=", `${namespace}.${key}`))).executeRetrieve();
|
|
52
|
+
return result;
|
|
53
|
+
},
|
|
54
|
+
async delete(id) {
|
|
55
|
+
await queryEngine.delete(SETTINGS_TABLE_NAME, id);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
//#endregion
|
|
61
|
+
export { DrizzleAdapter };
|
|
62
|
+
//# sourceMappingURL=drizzle-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drizzle-adapter.js","names":["#drizzleConfig","schema","#createFullSchema"],"sources":["../../../src/adapters/drizzle/drizzle-adapter.ts"],"sourcesContent":["import type { DatabaseAdapter } from \"../adapters\";\nimport {\n column,\n idColumn,\n schema,\n SchemaBuilder,\n type AnySchema,\n type FragnoId,\n} from \"../../schema/create\";\nimport type { AbstractQuery } from \"../../query/query\";\nimport type { SchemaGenerator } from \"../../schema-generator/schema-generator\";\nimport { generateSchema } from \"./generate\";\nimport { fromDrizzle, type DrizzleUOWConfig } from \"./drizzle-query\";\nimport { createId } from \"../../id\";\n\nconst SETTINGS_TABLE_NAME = \"fragno_db_settings\" as const;\n\nexport interface DrizzleConfig {\n db: unknown;\n provider: \"sqlite\" | \"mysql\" | \"postgresql\";\n}\n\nexport class DrizzleAdapter implements DatabaseAdapter<DrizzleUOWConfig> {\n #drizzleConfig: DrizzleConfig;\n\n constructor(config: DrizzleConfig) {\n this.#drizzleConfig = config;\n }\n\n #createFullSchema<T extends AnySchema>(schema: T) {\n return new SchemaBuilder()\n .mergeWithExistingSchema(schema)\n .mergeWithExistingSchema(createSettingsSchema(schema.version))\n .build();\n }\n\n async getSchemaVersion(namespace: string): Promise<string | undefined> {\n const queryEngine = this.createQueryEngine(createSettingsSchema(0), namespace);\n const manager = createSettingsManager(queryEngine, namespace);\n const randomId = createId();\n\n const result = await manager.createKeyWithDefault(randomId);\n if (result) {\n await manager.delete(result.id);\n }\n\n return result?.value;\n }\n\n createQueryEngine<TSchema extends AnySchema>(\n schema: TSchema,\n _namespace: string,\n ): AbstractQuery<TSchema, DrizzleUOWConfig> {\n return fromDrizzle(schema, this.#drizzleConfig);\n }\n\n createSchemaGenerator(schema: AnySchema, namespace: string): SchemaGenerator {\n return {\n generateSchema: (options) => {\n const path = options?.path ?? `drizzle-schema-${namespace}.ts`;\n\n const schemaWithSettingsTable = this.#createFullSchema(schema);\n\n return {\n schema: generateSchema(schemaWithSettingsTable, this.#drizzleConfig.provider),\n path,\n };\n },\n };\n }\n}\n\nfunction createSettingsSchema(version: number) {\n return schema((s) => {\n return s.addTable(SETTINGS_TABLE_NAME, (t) => {\n return t\n .addColumn(\"id\", idColumn())\n .addColumn(\"key\", column(\"string\"))\n .addColumn(\"value\", column(\"string\").defaultTo(String(version)))\n .createIndex(\"unique_key\", [\"key\"], { unique: true });\n });\n });\n}\n\nfunction createSettingsManager(\n queryEngine: AbstractQuery<ReturnType<typeof createSettingsSchema>, DrizzleUOWConfig>,\n namespace: string,\n) {\n return {\n async createKeyWithDefault(key: string) {\n const writeUow = queryEngine\n .createUnitOfWork(\"createKeyWithDefault\")\n .create(SETTINGS_TABLE_NAME, {\n key: `${namespace}.${key}`,\n });\n const { success } = await writeUow.executeMutations();\n if (!success) {\n throw new Error(\"Failed to create key with default\");\n }\n\n return this.get(key);\n },\n\n async get(key: string): Promise<{ id: FragnoId; key: string; value: string } | undefined> {\n const uow = queryEngine\n .createUnitOfWork()\n .find(SETTINGS_TABLE_NAME, (b) =>\n b.whereIndex(\"unique_key\", (eb) => eb(\"key\", \"=\", `${namespace}.${key}`)),\n );\n const [[result]] = await uow.executeRetrieve();\n return result; // FIXME: result should be maybe undefined\n },\n\n async delete(id: FragnoId) {\n await queryEngine.delete(SETTINGS_TABLE_NAME, id);\n },\n };\n}\n"],"mappings":";;;;;;AAeA,MAAM,sBAAsB;AAO5B,IAAa,iBAAb,MAAyE;CACvE;CAEA,YAAY,QAAuB;AACjC,QAAKA,gBAAiB;;CAGxB,kBAAuC,UAAW;AAChD,SAAO,IAAI,eAAe,CACvB,wBAAwBC,SAAO,CAC/B,wBAAwB,qBAAqBA,SAAO,QAAQ,CAAC,CAC7D,OAAO;;CAGZ,MAAM,iBAAiB,WAAgD;EAErE,MAAM,UAAU,sBADI,KAAK,kBAAkB,qBAAqB,EAAE,EAAE,UAAU,EAC3B,UAAU;EAC7D,MAAM,WAAW,UAAU;EAE3B,MAAM,SAAS,MAAM,QAAQ,qBAAqB,SAAS;AAC3D,MAAI,OACF,OAAM,QAAQ,OAAO,OAAO,GAAG;AAGjC,SAAO,QAAQ;;CAGjB,kBACE,UACA,YAC0C;AAC1C,SAAO,YAAYA,UAAQ,MAAKD,cAAe;;CAGjD,sBAAsB,UAAmB,WAAoC;AAC3E,SAAO,EACL,iBAAiB,YAAY;GAC3B,MAAM,OAAO,SAAS,QAAQ,kBAAkB,UAAU;AAI1D,UAAO;IACL,QAAQ,eAHsB,MAAKE,iBAAkBD,SAAO,EAGZ,MAAKD,cAAe,SAAS;IAC7E;IACD;KAEJ;;;AAIL,SAAS,qBAAqB,SAAiB;AAC7C,QAAO,QAAQ,MAAM;AACnB,SAAO,EAAE,SAAS,sBAAsB,MAAM;AAC5C,UAAO,EACJ,UAAU,MAAM,UAAU,CAAC,CAC3B,UAAU,OAAO,OAAO,SAAS,CAAC,CAClC,UAAU,SAAS,OAAO,SAAS,CAAC,UAAU,OAAO,QAAQ,CAAC,CAAC,CAC/D,YAAY,cAAc,CAAC,MAAM,EAAE,EAAE,QAAQ,MAAM,CAAC;IACvD;GACF;;AAGJ,SAAS,sBACP,aACA,WACA;AACA,QAAO;EACL,MAAM,qBAAqB,KAAa;GAMtC,MAAM,EAAE,YAAY,MALH,YACd,iBAAiB,uBAAuB,CACxC,OAAO,qBAAqB,EAC3B,KAAK,GAAG,UAAU,GAAG,OACtB,CAAC,CAC+B,kBAAkB;AACrD,OAAI,CAAC,QACH,OAAM,IAAI,MAAM,oCAAoC;AAGtD,UAAO,KAAK,IAAI,IAAI;;EAGtB,MAAM,IAAI,KAAgF;GAMxF,MAAM,CAAC,CAAC,WAAW,MALP,YACT,kBAAkB,CAClB,KAAK,sBAAsB,MAC1B,EAAE,WAAW,eAAe,OAAO,GAAG,OAAO,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC,CAC1E,CAC0B,iBAAiB;AAC9C,UAAO;;EAGT,MAAM,OAAO,IAAc;AACzB,SAAM,YAAY,OAAO,qBAAqB,GAAG;;EAEpD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DrizzleCompiledQuery } from "./drizzle-uow-compiler.js";
|
|
2
|
+
|
|
3
|
+
//#region src/adapters/drizzle/drizzle-query.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Configuration options for creating a Drizzle Unit of Work
|
|
7
|
+
*/
|
|
8
|
+
interface DrizzleUOWConfig {
|
|
9
|
+
/**
|
|
10
|
+
* Optional callback to receive compiled SQL queries for logging/debugging
|
|
11
|
+
* This callback is invoked for each query as it's compiled
|
|
12
|
+
*/
|
|
13
|
+
onQuery?: (query: DrizzleCompiledQuery) => void;
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { DrizzleUOWConfig };
|
|
17
|
+
//# sourceMappingURL=drizzle-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drizzle-query.d.ts","names":[],"sources":["../../../src/adapters/drizzle/drizzle-query.ts"],"sourcesContent":[],"mappings":";;;;;;;UAkBiB,gBAAA;;;;;oBAKG"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { UnitOfWork } from "../../query/unit-of-work.js";
|
|
2
|
+
import { parseDrizzle } from "./shared.js";
|
|
3
|
+
import { createDrizzleUOWCompiler } from "./drizzle-uow-compiler.js";
|
|
4
|
+
import { executeDrizzleMutationPhase, executeDrizzleRetrievalPhase } from "./drizzle-uow-executor.js";
|
|
5
|
+
import { createDrizzleUOWDecoder } from "./drizzle-uow-decoder.js";
|
|
6
|
+
|
|
7
|
+
//#region src/adapters/drizzle/drizzle-query.ts
|
|
8
|
+
/**
|
|
9
|
+
* Creates a Drizzle-based query engine for the given schema.
|
|
10
|
+
*
|
|
11
|
+
* This is the main entry point for creating a database query interface using Drizzle.
|
|
12
|
+
* It uses a compiler-based architecture where queries are compiled to SQL and then executed,
|
|
13
|
+
* enabling features like SQL snapshot testing.
|
|
14
|
+
*
|
|
15
|
+
* @param schema - The database schema definition
|
|
16
|
+
* @param config - Drizzle configuration containing the database instance and provider
|
|
17
|
+
* @returns An AbstractQuery instance for performing database operations
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* const queryEngine = fromDrizzle(mySchema, {
|
|
22
|
+
* db: drizzle,
|
|
23
|
+
* provider: 'postgresql'
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* const uow = queryEngine.createUnitOfWork('myOperation');
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
function fromDrizzle(schema, config) {
|
|
30
|
+
const [db] = parseDrizzle(config.db);
|
|
31
|
+
const { provider } = config;
|
|
32
|
+
function createUOW(name, uowConfig) {
|
|
33
|
+
return new UnitOfWork(schema, createDrizzleUOWCompiler(schema, config, uowConfig?.onQuery), {
|
|
34
|
+
executeRetrievalPhase: (retrievalBatch) => executeDrizzleRetrievalPhase(db, retrievalBatch),
|
|
35
|
+
executeMutationPhase: (mutationBatch) => executeDrizzleMutationPhase(db, mutationBatch)
|
|
36
|
+
}, createDrizzleUOWDecoder(schema, provider), name);
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
find(tableName, builderFn) {
|
|
40
|
+
const uow = createUOW();
|
|
41
|
+
uow.find(tableName, builderFn);
|
|
42
|
+
return uow.executeRetrieve();
|
|
43
|
+
},
|
|
44
|
+
async findFirst(tableName, builderFn) {
|
|
45
|
+
const uow = createUOW();
|
|
46
|
+
if (builderFn) uow.find(tableName, (b) => builderFn(b).pageSize(1));
|
|
47
|
+
else uow.find(tableName, (b) => b.whereIndex("primary").pageSize(1));
|
|
48
|
+
const [result] = await uow.executeRetrieve();
|
|
49
|
+
return result?.[0] ?? null;
|
|
50
|
+
},
|
|
51
|
+
async create(tableName, values) {
|
|
52
|
+
const uow = createUOW();
|
|
53
|
+
uow.create(tableName, values);
|
|
54
|
+
const { success } = await uow.executeMutations();
|
|
55
|
+
if (!success) throw new Error("Failed to create record");
|
|
56
|
+
const createdId = uow.getCreatedIds()[0];
|
|
57
|
+
if (!createdId) throw new Error("Failed to get created ID");
|
|
58
|
+
return createdId;
|
|
59
|
+
},
|
|
60
|
+
async createMany(tableName, valuesArray) {
|
|
61
|
+
const uow = createUOW();
|
|
62
|
+
for (const values of valuesArray) uow.create(tableName, values);
|
|
63
|
+
const { success } = await uow.executeMutations();
|
|
64
|
+
if (!success) throw new Error("Failed to create records");
|
|
65
|
+
return uow.getCreatedIds();
|
|
66
|
+
},
|
|
67
|
+
async update(tableName, id, builderFn) {
|
|
68
|
+
const uow = createUOW();
|
|
69
|
+
uow.update(tableName, id, builderFn);
|
|
70
|
+
const { success } = await uow.executeMutations();
|
|
71
|
+
if (!success) throw new Error("Failed to update record (version conflict or record not found)");
|
|
72
|
+
},
|
|
73
|
+
async updateMany(tableName, builderFn) {
|
|
74
|
+
let whereConfig = {};
|
|
75
|
+
let setValues;
|
|
76
|
+
builderFn({
|
|
77
|
+
whereIndex(indexName, condition) {
|
|
78
|
+
whereConfig = {
|
|
79
|
+
indexName,
|
|
80
|
+
condition
|
|
81
|
+
};
|
|
82
|
+
return this;
|
|
83
|
+
},
|
|
84
|
+
set(values) {
|
|
85
|
+
setValues = values;
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
if (!whereConfig.indexName) throw new Error("whereIndex() must be called in updateMany");
|
|
90
|
+
if (!setValues) throw new Error("set() must be called in updateMany");
|
|
91
|
+
const findUow = createUOW();
|
|
92
|
+
findUow.find(tableName, (b) => {
|
|
93
|
+
if (whereConfig.condition) return b.whereIndex(whereConfig.indexName, whereConfig.condition);
|
|
94
|
+
return b.whereIndex(whereConfig.indexName);
|
|
95
|
+
});
|
|
96
|
+
const records = (await findUow.executeRetrieve())[0];
|
|
97
|
+
if (!records || records.length === 0) return;
|
|
98
|
+
const updateUow = createUOW();
|
|
99
|
+
for (const record of records) updateUow.update(tableName, record.id, (b) => b.set(setValues));
|
|
100
|
+
const { success } = await updateUow.executeMutations();
|
|
101
|
+
if (!success) throw new Error("Failed to update records (version conflict)");
|
|
102
|
+
},
|
|
103
|
+
async delete(tableName, id, builderFn) {
|
|
104
|
+
const uow = createUOW();
|
|
105
|
+
uow.delete(tableName, id, builderFn);
|
|
106
|
+
const { success } = await uow.executeMutations();
|
|
107
|
+
if (!success) throw new Error("Failed to delete record (version conflict or record not found)");
|
|
108
|
+
},
|
|
109
|
+
async deleteMany(tableName, builderFn) {
|
|
110
|
+
let whereConfig = {};
|
|
111
|
+
builderFn({ whereIndex(indexName, condition) {
|
|
112
|
+
whereConfig = {
|
|
113
|
+
indexName,
|
|
114
|
+
condition
|
|
115
|
+
};
|
|
116
|
+
return this;
|
|
117
|
+
} });
|
|
118
|
+
if (!whereConfig.indexName) throw new Error("whereIndex() must be called in deleteMany");
|
|
119
|
+
const findUow = createUOW();
|
|
120
|
+
findUow.find(tableName, (b) => {
|
|
121
|
+
if (whereConfig.condition) return b.whereIndex(whereConfig.indexName, whereConfig.condition);
|
|
122
|
+
return b.whereIndex(whereConfig.indexName);
|
|
123
|
+
});
|
|
124
|
+
const records = (await findUow.executeRetrieve())[0];
|
|
125
|
+
if (!records || records.length === 0) return;
|
|
126
|
+
const deleteUow = createUOW();
|
|
127
|
+
for (const record of records) deleteUow.delete(tableName, record.id);
|
|
128
|
+
const { success } = await deleteUow.executeMutations();
|
|
129
|
+
if (!success) throw new Error("Failed to delete records (version conflict)");
|
|
130
|
+
},
|
|
131
|
+
createUnitOfWork(name, uowConfig) {
|
|
132
|
+
return createUOW(name, uowConfig);
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
//#endregion
|
|
138
|
+
export { fromDrizzle };
|
|
139
|
+
//# sourceMappingURL=drizzle-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drizzle-query.js","names":["whereConfig: { indexName?: string; condition?: unknown }","setValues: unknown"],"sources":["../../../src/adapters/drizzle/drizzle-query.ts"],"sourcesContent":["import type { AbstractQuery } from \"../../query/query\";\nimport type { AnySchema } from \"../../schema/create\";\nimport type { DrizzleConfig } from \"./drizzle-adapter\";\nimport type { CompiledMutation, UOWExecutor } from \"../../query/unit-of-work\";\nimport { createDrizzleUOWCompiler, type DrizzleCompiledQuery } from \"./drizzle-uow-compiler\";\nimport { executeDrizzleRetrievalPhase, executeDrizzleMutationPhase } from \"./drizzle-uow-executor\";\nimport { UnitOfWork } from \"../../query/unit-of-work\";\nimport { parseDrizzle } from \"./shared\";\nimport { createDrizzleUOWDecoder } from \"./drizzle-uow-decoder\";\n\nexport interface DrizzleResult {\n rows: Record<string, unknown>[];\n affectedRows: number;\n}\n\n/**\n * Configuration options for creating a Drizzle Unit of Work\n */\nexport interface DrizzleUOWConfig {\n /**\n * Optional callback to receive compiled SQL queries for logging/debugging\n * This callback is invoked for each query as it's compiled\n */\n onQuery?: (query: DrizzleCompiledQuery) => void;\n}\n\n/**\n * Creates a Drizzle-based query engine for the given schema.\n *\n * This is the main entry point for creating a database query interface using Drizzle.\n * It uses a compiler-based architecture where queries are compiled to SQL and then executed,\n * enabling features like SQL snapshot testing.\n *\n * @param schema - The database schema definition\n * @param config - Drizzle configuration containing the database instance and provider\n * @returns An AbstractQuery instance for performing database operations\n *\n * @example\n * ```ts\n * const queryEngine = fromDrizzle(mySchema, {\n * db: drizzle,\n * provider: 'postgresql'\n * });\n *\n * const uow = queryEngine.createUnitOfWork('myOperation');\n * ```\n */\nexport function fromDrizzle<T extends AnySchema>(\n schema: T,\n config: DrizzleConfig,\n): AbstractQuery<T, DrizzleUOWConfig> {\n const [db] = parseDrizzle(config.db);\n const { provider } = config;\n\n function createUOW(name?: string, uowConfig?: DrizzleUOWConfig) {\n const uowCompiler = createDrizzleUOWCompiler(schema, config, uowConfig?.onQuery);\n\n const executor: UOWExecutor<DrizzleCompiledQuery, DrizzleResult> = {\n executeRetrievalPhase: (retrievalBatch: DrizzleCompiledQuery[]) =>\n executeDrizzleRetrievalPhase(db, retrievalBatch),\n executeMutationPhase: (mutationBatch: CompiledMutation<DrizzleCompiledQuery>[]) =>\n executeDrizzleMutationPhase(db, mutationBatch),\n };\n\n const decoder = createDrizzleUOWDecoder(schema, provider);\n\n return new UnitOfWork(schema, uowCompiler, executor, decoder, name);\n }\n\n return {\n find(tableName, builderFn) {\n const uow = createUOW();\n uow.find(tableName, builderFn);\n return uow.executeRetrieve();\n },\n\n async findFirst(tableName, builderFn) {\n const uow = createUOW();\n if (builderFn) {\n uow.find(tableName, (b) => builderFn(b as never).pageSize(1));\n } else {\n uow.find(tableName, (b) => b.whereIndex(\"primary\").pageSize(1));\n }\n // executeRetrieve runs an array of `find` operation results, which each return an array of rows\n const [result]: unknown[][] = await uow.executeRetrieve();\n return result?.[0] ?? null;\n },\n\n async create(tableName, values) {\n const uow = createUOW();\n uow.create(tableName as string, values as never);\n const { success } = await uow.executeMutations();\n if (!success) {\n throw new Error(\"Failed to create record\");\n }\n\n const createdIds = uow.getCreatedIds();\n const createdId = createdIds[0];\n if (!createdId) {\n throw new Error(\"Failed to get created ID\");\n }\n return createdId;\n },\n\n async createMany(tableName, valuesArray) {\n const uow = createUOW();\n for (const values of valuesArray) {\n uow.create(tableName as string, values as never);\n }\n const { success } = await uow.executeMutations();\n if (!success) {\n throw new Error(\"Failed to create records\");\n }\n\n return uow.getCreatedIds();\n },\n\n async update(tableName, id, builderFn) {\n const uow = createUOW();\n uow.update(tableName as string, id, builderFn as never);\n const { success } = await uow.executeMutations();\n if (!success) {\n throw new Error(\"Failed to update record (version conflict or record not found)\");\n }\n },\n\n async updateMany(tableName, builderFn) {\n // FIXME: This is not correct\n\n let whereConfig: { indexName?: string; condition?: unknown } = {};\n let setValues: unknown;\n\n const specialBuilder = {\n whereIndex(indexName: string, condition?: unknown) {\n whereConfig = { indexName, condition };\n return this;\n },\n set(values: unknown) {\n setValues = values;\n return this;\n },\n };\n\n builderFn(specialBuilder);\n\n if (!whereConfig.indexName) {\n throw new Error(\"whereIndex() must be called in updateMany\");\n }\n if (!setValues) {\n throw new Error(\"set() must be called in updateMany\");\n }\n\n const findUow = createUOW();\n findUow.find(tableName, (b) => {\n if (whereConfig.condition) {\n return b.whereIndex(whereConfig.indexName as never, whereConfig.condition as never);\n }\n return b.whereIndex(whereConfig.indexName as never);\n });\n const findResults = await findUow.executeRetrieve();\n const records = (findResults as unknown as [unknown])[0];\n\n // @ts-expect-error - Type narrowing doesn't work through unknown cast\n if (!records || records.length === 0) {\n return;\n }\n\n const updateUow = createUOW();\n for (const record of records as never as Array<{ id: unknown }>) {\n updateUow.update(tableName as string, record.id as string, (b) =>\n b.set(setValues as never),\n );\n }\n const { success } = await updateUow.executeMutations();\n if (!success) {\n throw new Error(\"Failed to update records (version conflict)\");\n }\n },\n\n async delete(tableName, id, builderFn) {\n const uow = createUOW();\n uow.delete(tableName as string, id, builderFn as never);\n const { success } = await uow.executeMutations();\n if (!success) {\n throw new Error(\"Failed to delete record (version conflict or record not found)\");\n }\n },\n\n async deleteMany(tableName, builderFn) {\n let whereConfig: { indexName?: string; condition?: unknown } = {};\n\n const specialBuilder = {\n whereIndex(indexName: string, condition?: unknown) {\n whereConfig = { indexName, condition };\n return this;\n },\n };\n\n builderFn(specialBuilder as never);\n\n if (!whereConfig.indexName) {\n throw new Error(\"whereIndex() must be called in deleteMany\");\n }\n\n const findUow = createUOW();\n findUow.find(tableName as string, (b) => {\n if (whereConfig.condition) {\n return b.whereIndex(whereConfig.indexName as never, whereConfig.condition as never);\n }\n return b.whereIndex(whereConfig.indexName as never);\n });\n const findResults2 = await findUow.executeRetrieve();\n const records = (findResults2 as unknown as [unknown])[0];\n\n // @ts-expect-error - Type narrowing doesn't work through unknown cast\n if (!records || records.length === 0) {\n return;\n }\n\n const deleteUow = createUOW();\n for (const record of records as never as Array<{ id: unknown }>) {\n deleteUow.delete(tableName as string, record.id as string);\n }\n const { success } = await deleteUow.executeMutations();\n if (!success) {\n throw new Error(\"Failed to delete records (version conflict)\");\n }\n },\n\n createUnitOfWork(name, uowConfig) {\n return createUOW(name, uowConfig);\n },\n } as AbstractQuery<T, DrizzleUOWConfig>;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drizzle-uow-compiler.d.ts","names":[],"sources":["../../../src/adapters/drizzle/drizzle-uow-compiler.ts"],"sourcesContent":[],"mappings":";;KAkBY,oBAAA"}
|