@fragno-dev/db 0.1.3 → 0.1.6

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.
Files changed (62) hide show
  1. package/.turbo/turbo-build.log +43 -30
  2. package/CHANGELOG.md +19 -0
  3. package/dist/adapters/adapters.js +1 -0
  4. package/dist/adapters/drizzle/drizzle-adapter.d.ts +1 -1
  5. package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +1 -1
  6. package/dist/adapters/drizzle/drizzle-adapter.js +9 -2
  7. package/dist/adapters/drizzle/drizzle-adapter.js.map +1 -1
  8. package/dist/adapters/drizzle/generate.js +1 -1
  9. package/dist/adapters/drizzle/generate.js.map +1 -1
  10. package/dist/adapters/kysely/kysely-adapter.d.ts +1 -1
  11. package/dist/adapters/kysely/kysely-adapter.d.ts.map +1 -1
  12. package/dist/adapters/kysely/kysely-adapter.js +47 -27
  13. package/dist/adapters/kysely/kysely-adapter.js.map +1 -1
  14. package/dist/adapters/kysely/kysely-query-compiler.js +2 -2
  15. package/dist/adapters/kysely/kysely-query-compiler.js.map +1 -1
  16. package/dist/adapters/kysely/kysely-query.js +2 -1
  17. package/dist/adapters/kysely/kysely-query.js.map +1 -1
  18. package/dist/adapters/kysely/kysely-uow-compiler.js +2 -2
  19. package/dist/adapters/kysely/kysely-uow-compiler.js.map +1 -1
  20. package/dist/adapters/kysely/migration/execute-base.js +128 -0
  21. package/dist/adapters/kysely/migration/execute-base.js.map +1 -0
  22. package/dist/adapters/kysely/migration/execute-factory.js +28 -0
  23. package/dist/adapters/kysely/migration/execute-factory.js.map +1 -0
  24. package/dist/adapters/kysely/migration/execute-mssql.js +112 -0
  25. package/dist/adapters/kysely/migration/execute-mssql.js.map +1 -0
  26. package/dist/adapters/kysely/migration/execute-mysql.js +93 -0
  27. package/dist/adapters/kysely/migration/execute-mysql.js.map +1 -0
  28. package/dist/adapters/kysely/migration/execute-postgres.js +104 -0
  29. package/dist/adapters/kysely/migration/execute-postgres.js.map +1 -0
  30. package/dist/adapters/kysely/migration/execute-sqlite.js +123 -0
  31. package/dist/adapters/kysely/migration/execute-sqlite.js.map +1 -0
  32. package/dist/adapters/kysely/migration/execute.js +23 -168
  33. package/dist/adapters/kysely/migration/execute.js.map +1 -1
  34. package/dist/migration-engine/shared.d.ts +24 -5
  35. package/dist/migration-engine/shared.d.ts.map +1 -1
  36. package/dist/migration-engine/shared.js.map +1 -1
  37. package/dist/query/query.d.ts +4 -4
  38. package/dist/query/query.d.ts.map +1 -1
  39. package/dist/query/unit-of-work.d.ts +22 -22
  40. package/dist/query/unit-of-work.d.ts.map +1 -1
  41. package/dist/schema/create.d.ts +41 -41
  42. package/dist/schema/create.d.ts.map +1 -1
  43. package/package.json +7 -2
  44. package/src/adapters/drizzle/drizzle-adapter-pglite.test.ts +1 -1
  45. package/src/adapters/drizzle/drizzle-adapter.ts +13 -3
  46. package/src/adapters/drizzle/generate.test.ts +97 -0
  47. package/src/adapters/drizzle/generate.ts +3 -2
  48. package/src/adapters/kysely/kysely-adapter.ts +64 -35
  49. package/src/adapters/kysely/kysely-query-compiler.ts +3 -1
  50. package/src/adapters/kysely/kysely-query.ts +3 -1
  51. package/src/adapters/kysely/kysely-uow-compiler.ts +4 -2
  52. package/src/adapters/kysely/migration/execute-base.ts +256 -0
  53. package/src/adapters/kysely/migration/execute-factory.ts +32 -0
  54. package/src/adapters/kysely/migration/execute-mssql.ts +250 -0
  55. package/src/adapters/kysely/migration/execute-mysql.ts +211 -0
  56. package/src/adapters/kysely/migration/execute-postgres.ts +234 -0
  57. package/src/adapters/kysely/migration/execute-sqlite.test.ts +1363 -0
  58. package/src/adapters/kysely/migration/execute-sqlite.ts +247 -0
  59. package/src/adapters/kysely/migration/execute.ts +33 -396
  60. package/src/adapters/kysely/migration/kysely-migrator.test.ts +84 -2
  61. package/src/migration-engine/shared.ts +29 -11
  62. package/tsdown.config.ts +1 -0
@@ -58,36 +58,36 @@ interface ForeignKey {
58
58
  referencedTable: AnyTable;
59
59
  referencedColumns: AnyColumn[];
60
60
  }
61
- declare class RelationInit<TRelationType$1 extends RelationType, TTables extends Record<string, AnyTable>, TTableName$1 extends keyof TTables> {
62
- type: TRelationType$1;
63
- referencedTable: TTables[TTableName$1];
61
+ declare class RelationInit<TRelationType extends RelationType, TTables extends Record<string, AnyTable>, TTableName extends keyof TTables> {
62
+ type: TRelationType;
63
+ referencedTable: TTables[TTableName];
64
64
  referencer: AnyTable;
65
65
  on: [string, string][];
66
- constructor(type: TRelationType$1, referencedTable: TTables[TTableName$1], referencer: AnyTable);
66
+ constructor(type: TRelationType, referencedTable: TTables[TTableName], referencer: AnyTable);
67
67
  }
68
- interface Index<TColumns$1 extends AnyColumn[] = AnyColumn[], TColumnNames$1 extends readonly string[] = readonly string[]> {
68
+ interface Index<TColumns extends AnyColumn[] = AnyColumn[], TColumnNames extends readonly string[] = readonly string[]> {
69
69
  name: string;
70
- columns: TColumns$1;
71
- columnNames: TColumnNames$1;
70
+ columns: TColumns;
71
+ columnNames: TColumnNames;
72
72
  unique: boolean;
73
73
  }
74
- declare class ExplicitRelationInit<TRelationType$1 extends RelationType, TTables extends Record<string, AnyTable>, TTableName$1 extends keyof TTables> extends RelationInit<TRelationType$1, TTables, TTableName$1> {
75
- init(ormName: string): Relation<TRelationType$1, TTables[TTableName$1]>;
74
+ declare class ExplicitRelationInit<TRelationType extends RelationType, TTables extends Record<string, AnyTable>, TTableName extends keyof TTables> extends RelationInit<TRelationType, TTables, TTableName> {
75
+ init(ormName: string): Relation<TRelationType, TTables[TTableName]>;
76
76
  }
77
- interface Relation<TRelationType$1 extends RelationType = RelationType, TTable extends AnyTable = AnyTable> {
77
+ interface Relation<TRelationType extends RelationType = RelationType, TTable extends AnyTable = AnyTable> {
78
78
  id: string;
79
79
  name: string;
80
- type: TRelationType$1;
80
+ type: TRelationType;
81
81
  table: TTable;
82
82
  referencer: AnyTable;
83
83
  on: [string, string][];
84
84
  }
85
- interface Table<TColumns$1 extends Record<string, AnyColumn> = Record<string, AnyColumn>, TRelations$1 extends Record<string, AnyRelation> = Record<string, AnyRelation>, TIndexes$1 extends Record<string, Index> = Record<string, Index>> {
85
+ interface Table<TColumns extends Record<string, AnyColumn> = Record<string, AnyColumn>, TRelations extends Record<string, AnyRelation> = Record<string, AnyRelation>, TIndexes extends Record<string, Index> = Record<string, Index>> {
86
86
  name: string;
87
87
  ormName: string;
88
- columns: TColumns$1;
89
- relations: TRelations$1;
90
- indexes: TIndexes$1;
88
+ columns: TColumns;
89
+ relations: TRelations;
90
+ indexes: TIndexes;
91
91
  /**
92
92
  * Get column by name
93
93
  */
@@ -144,24 +144,24 @@ type TypeMap = {
144
144
  date: Date;
145
145
  timestamp: Date;
146
146
  } & Record<`varchar(${number})`, string>;
147
- declare class Column<TType$1 extends keyof TypeMap, TIn = unknown, TOut = unknown> {
148
- type: TType$1;
147
+ declare class Column<TType extends keyof TypeMap, TIn = unknown, TOut = unknown> {
148
+ type: TType;
149
149
  name: string;
150
150
  ormName: string;
151
151
  isNullable: boolean;
152
152
  role: "external-id" | "internal-id" | "version" | "reference" | "regular";
153
153
  isHidden: boolean;
154
154
  default?: {
155
- value: TypeMap[TType$1];
155
+ value: TypeMap[TType];
156
156
  } | {
157
157
  dbSpecial: "now";
158
158
  } | {
159
- runtime: "cuid" | "now" | (() => TypeMap[TType$1]);
159
+ runtime: "cuid" | "now" | (() => TypeMap[TType]);
160
160
  };
161
161
  tableName: string;
162
- constructor(type: TType$1);
163
- nullable<TNullable extends boolean = true>(nullable?: TNullable): Column<TType$1, TNullable extends true ? TIn | null : Exclude<TIn, null>, TNullable extends true ? TOut | null : Exclude<TOut, null>>;
164
- hidden<THidden extends boolean = true>(hidden?: THidden): Column<TType$1, null, null>;
162
+ constructor(type: TType);
163
+ nullable<TNullable extends boolean = true>(nullable?: TNullable): Column<TType, TNullable extends true ? TIn | null : Exclude<TIn, null>, TNullable extends true ? TOut | null : Exclude<TOut, null>>;
164
+ hidden<THidden extends boolean = true>(hidden?: THidden): Column<TType, null, null>;
165
165
  /**
166
166
  * Generate default value at runtime in application code (not in the database).
167
167
  *
@@ -184,7 +184,7 @@ declare class Column<TType$1 extends keyof TypeMap, TIn = unknown, TOut = unknow
184
184
  * column("integer").defaultTo$((b) => Math.floor(Math.random() * 100)) // Custom function
185
185
  * ```
186
186
  */
187
- defaultTo$(value: TypeMap[TType$1] | ((builder: RuntimeDefaultBuilder) => RuntimeSpecial | TypeMap[TType$1])): Column<TType$1, TIn | null, TOut>;
187
+ defaultTo$(value: TypeMap[TType] | ((builder: RuntimeDefaultBuilder) => RuntimeSpecial | TypeMap[TType])): Column<TType, TIn | null, TOut>;
188
188
  /**
189
189
  * Set a database-level default value (generated by the database, not application code).
190
190
  *
@@ -207,13 +207,13 @@ declare class Column<TType$1 extends keyof TypeMap, TIn = unknown, TOut = unknow
207
207
  * column("timestamp").defaultTo((b) => b.now())
208
208
  * ```
209
209
  */
210
- defaultTo(value: TypeMap[TType$1] | ((builder: DefaultBuilder) => DBSpecial | TypeMap[TType$1])): Column<TType$1, TIn | null, TOut>;
210
+ defaultTo(value: TypeMap[TType] | ((builder: DefaultBuilder) => DBSpecial | TypeMap[TType])): Column<TType, TIn | null, TOut>;
211
211
  /**
212
212
  * Generate default value for the column at runtime.
213
213
  * Used for both runtime defaults (defaultTo$) and fallback generation for
214
214
  * database defaults (defaultTo) when the database doesn't support them.
215
215
  */
216
- generateDefaultValue(): TypeMap[TType$1] | undefined;
216
+ generateDefaultValue(): TypeMap[TType] | undefined;
217
217
  /**
218
218
  * @description This is used for type inference only. Runtime value will be undefined.
219
219
  * @internal
@@ -225,10 +225,10 @@ declare class Column<TType$1 extends keyof TypeMap, TIn = unknown, TOut = unknow
225
225
  */
226
226
  get $out(): TOut;
227
227
  }
228
- declare class IdColumn<TType$1 extends IdColumnType = IdColumnType, TIn = unknown, TOut = unknown> extends Column<TType$1, TIn, TOut> {
228
+ declare class IdColumn<TType extends IdColumnType = IdColumnType, TIn = unknown, TOut = unknown> extends Column<TType, TIn, TOut> {
229
229
  id: boolean;
230
- defaultTo$(value: TypeMap[TType$1] | ((builder: RuntimeDefaultBuilder) => RuntimeSpecial | TypeMap[TType$1])): IdColumn<TType$1, TIn | null, TOut>;
231
- defaultTo(value: TypeMap[TType$1] | ((builder: DefaultBuilder) => DBSpecial | TypeMap[TType$1])): IdColumn<TType$1, TIn | null, TOut>;
230
+ defaultTo$(value: TypeMap[TType] | ((builder: RuntimeDefaultBuilder) => RuntimeSpecial | TypeMap[TType])): IdColumn<TType, TIn | null, TOut>;
231
+ defaultTo(value: TypeMap[TType] | ((builder: DefaultBuilder) => DBSpecial | TypeMap[TType])): IdColumn<TType, TIn | null, TOut>;
232
232
  }
233
233
  /**
234
234
  * Internal ID column - used for database-native joins and foreign keys.
@@ -246,7 +246,7 @@ declare class VersionColumn<TIn = unknown, TOut = unknown> extends Column<"integ
246
246
  role: "version";
247
247
  constructor();
248
248
  }
249
- declare function column<TType$1 extends keyof TypeMap>(type: TType$1): Column<TType$1, TypeMap[TType$1], TypeMap[TType$1]>;
249
+ declare function column<TType extends keyof TypeMap>(type: TType): Column<TType, TypeMap[TType], TypeMap[TType]>;
250
250
  /**
251
251
  * Create a reference column that points to another table's internal ID.
252
252
  * This is used for foreign key relationships.
@@ -329,32 +329,32 @@ declare class FragnoReference {
329
329
  get internalId(): bigint;
330
330
  }
331
331
  type RelationType = "one" | "many";
332
- declare class TableBuilder<TColumns$1 extends Record<string, AnyColumn> = Record<string, AnyColumn>, TRelations$1 extends Record<string, AnyRelation> = Record<string, AnyRelation>, TIndexes$1 extends Record<string, Index> = Record<string, Index>> {
332
+ declare class TableBuilder<TColumns extends Record<string, AnyColumn> = Record<string, AnyColumn>, TRelations extends Record<string, AnyRelation> = Record<string, AnyRelation>, TIndexes extends Record<string, Index> = Record<string, Index>> {
333
333
  #private;
334
334
  constructor(name: string);
335
- setColumns(columns: TColumns$1): void;
336
- setRelations(relations: TRelations$1): void;
337
- setIndexes(indexes: TIndexes$1): void;
335
+ setColumns(columns: TColumns): void;
336
+ setRelations(relations: TRelations): void;
337
+ setIndexes(indexes: TIndexes): void;
338
338
  getIndexes(): Index[];
339
339
  getColumnOrder(): string[];
340
340
  /**
341
341
  * Add a column to the table.
342
342
  */
343
- addColumn<TColumnName extends string, TColumn extends AnyColumn>(ormName: TColumnName, col: TColumn): TableBuilder<TColumns$1 & Record<TColumnName, TColumn>, TRelations$1, TIndexes$1>;
343
+ addColumn<TColumnName extends string, TColumn extends AnyColumn>(ormName: TColumnName, col: TColumn): TableBuilder<TColumns & Record<TColumnName, TColumn>, TRelations, TIndexes>;
344
344
  /**
345
345
  * Add a column to the table with simplified syntax.
346
346
  */
347
- addColumn<TColumnName extends string, TType extends keyof TypeMap>(ormName: TColumnName, type: TType): TableBuilder<TColumns$1 & Record<TColumnName, Column<TType, TypeMap[TType], TypeMap[TType]>>, TRelations$1, TIndexes$1>;
347
+ addColumn<TColumnName extends string, TType extends keyof TypeMap>(ormName: TColumnName, type: TType): TableBuilder<TColumns & Record<TColumnName, Column<TType, TypeMap[TType], TypeMap[TType]>>, TRelations, TIndexes>;
348
348
  /**
349
349
  * Create an index on the specified columns.
350
350
  */
351
- createIndex<TIndexName extends string, const TColumnNames extends readonly (string & keyof TColumns$1)[]>(name: TIndexName, columns: TColumnNames, options?: {
351
+ createIndex<TIndexName extends string, const TColumnNames extends readonly (string & keyof TColumns)[]>(name: TIndexName, columns: TColumnNames, options?: {
352
352
  unique?: boolean;
353
- }): TableBuilder<TColumns$1, TRelations$1, TIndexes$1 & Record<TIndexName, Index<ColumnsToTuple<TColumns$1, TColumnNames>, TColumnNames>>>;
353
+ }): TableBuilder<TColumns, TRelations, TIndexes & Record<TIndexName, Index<ColumnsToTuple<TColumns, TColumnNames>, TColumnNames>>>;
354
354
  /**
355
355
  * Build the final table. This should be called after all columns are added.
356
356
  */
357
- build(): Table<TColumns$1, TRelations$1, TIndexes$1>;
357
+ build(): Table<TColumns, TRelations, TIndexes>;
358
358
  }
359
359
  interface Schema<TTables extends Record<string, AnyTable> = Record<string, AnyTable>> {
360
360
  /**
@@ -373,16 +373,16 @@ interface Schema<TTables extends Record<string, AnyTable> = Record<string, AnyTa
373
373
  * Utility type for updating a single table's relations in a schema.
374
374
  * Used to properly type the return value of addReference.
375
375
  */
376
- type UpdateTableRelations<TTables extends Record<string, AnyTable>, TTableName$1 extends keyof TTables, TReferenceName$1 extends string, TReferencedTableName extends keyof TTables, TRelationType$1 extends RelationType = RelationType> = { [K in keyof TTables]: K extends TTableName$1 ? Table<TTables[TTableName$1]["columns"], TTables[TTableName$1]["relations"] & Record<TReferenceName$1, Relation<TRelationType$1, TTables[TReferencedTableName]>>, TTables[TTableName$1]["indexes"]> : TTables[K] };
376
+ type UpdateTableRelations<TTables extends Record<string, AnyTable>, TTableName extends keyof TTables, TReferenceName extends string, TReferencedTableName extends keyof TTables, TRelationType extends RelationType = RelationType> = { [K in keyof TTables]: K extends TTableName ? Table<TTables[TTableName]["columns"], TTables[TTableName]["relations"] & Record<TReferenceName, Relation<TRelationType, TTables[TReferencedTableName]>>, TTables[TTableName]["indexes"]> : TTables[K] };
377
377
  /**
378
378
  * Utility type for updating a single table in a schema.
379
379
  * Used to properly type the return value of alterTable.
380
380
  */
381
- type UpdateTable<TTables extends Record<string, AnyTable>, TTableName$1 extends keyof TTables, TNewColumns$1 extends Record<string, AnyColumn>, TNewRelations$1 extends Record<string, AnyRelation>, TNewIndexes$1 extends Record<string, Index>> = { [K in keyof TTables]: K extends TTableName$1 ? Table<TNewColumns$1, TNewRelations$1, TNewIndexes$1> : TTables[K] };
381
+ type UpdateTable<TTables extends Record<string, AnyTable>, TTableName extends keyof TTables, TNewColumns extends Record<string, AnyColumn>, TNewRelations extends Record<string, AnyRelation>, TNewIndexes extends Record<string, Index>> = { [K in keyof TTables]: K extends TTableName ? Table<TNewColumns, TNewRelations, TNewIndexes> : TTables[K] };
382
382
  /**
383
383
  * Map an array of column names to a tuple of their actual column types
384
384
  */
385
- type ColumnsToTuple<TColumns$1 extends Record<string, AnyColumn>, TColumnNames$1 extends readonly (keyof TColumns$1)[]> = { [K in keyof TColumnNames$1]: TColumnNames$1[K] extends keyof TColumns$1 ? TColumns$1[TColumnNames$1[K]] : never } & AnyColumn[];
385
+ type ColumnsToTuple<TColumns extends Record<string, AnyColumn>, TColumnNames extends readonly (keyof TColumns)[]> = { [K in keyof TColumnNames]: TColumnNames[K] extends keyof TColumns ? TColumns[TColumnNames[K]] : never } & AnyColumn[];
386
386
  declare class SchemaBuilder<TTables extends Record<string, AnyTable> = {}> {
387
387
  #private;
388
388
  constructor(existingSchema?: Schema<TTables>);
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","names":[],"sources":["../../src/schema/create.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"create.d.ts","names":[],"sources":["../../src/schema/create.ts"],"sourcesContent":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fragno-dev/db",
3
- "version": "0.1.3",
3
+ "version": "0.1.6",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -23,6 +23,11 @@
23
23
  "types": "./dist/query/query.d.ts",
24
24
  "default": "./dist/query/query.js"
25
25
  },
26
+ "./adapters": {
27
+ "development": "./src/adapters/adapters.ts",
28
+ "types": "./dist/adapters/adapters.d.ts",
29
+ "default": "./dist/adapters/adapters.js"
30
+ },
26
31
  "./adapters/kysely": {
27
32
  "development": "./src/adapters/kysely/kysely-adapter.ts",
28
33
  "types": "./dist/adapters/kysely/kysely-adapter.d.ts",
@@ -65,7 +70,7 @@
65
70
  "kysely-pglite": "^0.6.1",
66
71
  "vitest": "^3.2.4",
67
72
  "zod": "^4.1.12",
68
- "@fragno-dev/core": "0.1.2",
73
+ "@fragno-dev/core": "0.1.3",
69
74
  "@fragno-private/typescript-config": "0.0.1",
70
75
  "@fragno-private/vitest-config": "0.0.0"
71
76
  },
@@ -100,7 +100,7 @@ describe("DrizzleAdapter PGLite", () => {
100
100
  }
101
101
 
102
102
  adapter = new DrizzleAdapter({
103
- db,
103
+ db: () => db,
104
104
  provider: "postgresql",
105
105
  });
106
106
 
@@ -9,7 +9,7 @@ import { createSettingsManager, settingsSchema } from "../../shared/settings-sch
9
9
  import { sql } from "drizzle-orm";
10
10
 
11
11
  export interface DrizzleConfig {
12
- db: unknown;
12
+ db: unknown | (() => unknown);
13
13
  provider: "sqlite" | "mysql" | "postgresql";
14
14
  }
15
15
 
@@ -24,9 +24,14 @@ export class DrizzleAdapter implements DatabaseAdapter<DrizzleUOWConfig> {
24
24
  return this.#drizzleConfig.provider;
25
25
  }
26
26
 
27
+ #getDb(): DBType {
28
+ const db = this.#drizzleConfig.db;
29
+ return (typeof db === "function" ? db() : db) as DBType;
30
+ }
31
+
27
32
  async isConnectionHealthy(): Promise<boolean> {
28
33
  try {
29
- const result = await (this.#drizzleConfig.db as DBType).execute(sql`SELECT 1 as healthy`);
34
+ const result = await this.#getDb().execute(sql`SELECT 1 as healthy`);
30
35
 
31
36
  // Handle different result formats across providers
32
37
  // PostgreSQL/MySQL: { rows: [...] }
@@ -57,7 +62,12 @@ export class DrizzleAdapter implements DatabaseAdapter<DrizzleUOWConfig> {
57
62
  ): AbstractQuery<TSchema, DrizzleUOWConfig> {
58
63
  // Only create mapper if namespace is non-empty
59
64
  const mapper = namespace ? createTableNameMapper(namespace) : undefined;
60
- return fromDrizzle(schema, this.#drizzleConfig, mapper);
65
+ // Resolve the db instance if it's a function
66
+ const resolvedConfig: DrizzleConfig = {
67
+ db: this.#getDb(),
68
+ provider: this.#drizzleConfig.provider,
69
+ };
70
+ return fromDrizzle(schema, resolvedConfig, mapper);
61
71
  }
62
72
 
63
73
  createSchemaGenerator(
@@ -1063,4 +1063,101 @@ describe("generateSchema", () => {
1063
1063
  `);
1064
1064
  });
1065
1065
  });
1066
+
1067
+ describe("namespace sanitization", () => {
1068
+ it("should sanitize namespace with special characters in foreign key references", () => {
1069
+ const generated = generateSchema(
1070
+ [{ namespace: "my-fragment-v2", schema: testSchema }],
1071
+ "postgresql",
1072
+ );
1073
+
1074
+ // Should generate valid JavaScript identifiers (underscores instead of hyphens)
1075
+ expect(generated).toContain("export const users_my_fragment_v2 =");
1076
+ expect(generated).toContain("export const posts_my_fragment_v2 =");
1077
+
1078
+ // Foreign key should reference sanitized table name
1079
+ expect(generated).toContain("foreignColumns: [users_my_fragment_v2._internalId]");
1080
+
1081
+ // Relations should also use sanitized names
1082
+ expect(generated).toContain("author: one(users_my_fragment_v2");
1083
+ expect(generated).toContain("fields: [posts_my_fragment_v2.userId]");
1084
+ expect(generated).toContain("references: [users_my_fragment_v2._internalId]");
1085
+
1086
+ // Physical table names in the database can keep hyphens
1087
+ expect(generated).toContain('pgTable("users_my-fragment-v2"');
1088
+ expect(generated).toContain('pgTable("posts_my-fragment-v2"');
1089
+
1090
+ expect(generated).toMatchInlineSnapshot(`
1091
+ "import { pgTable, varchar, text, bigserial, integer, uniqueIndex, index, bigint, foreignKey } from "drizzle-orm/pg-core"
1092
+ import { createId } from "@fragno-dev/db/id"
1093
+ import { relations } from "drizzle-orm"
1094
+
1095
+ // ============================================================================
1096
+ // Settings Table (shared across all fragments)
1097
+ // ============================================================================
1098
+
1099
+ export const fragno_db_settings = pgTable("fragno_db_settings", {
1100
+ id: varchar("id", { length: 30 }).notNull().$defaultFn(() => createId()),
1101
+ key: text("key").notNull(),
1102
+ value: text("value").notNull(),
1103
+ _internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
1104
+ _version: integer("_version").notNull().default(0)
1105
+ }, (table) => [
1106
+ uniqueIndex("unique_key").on(table.key)
1107
+ ])
1108
+
1109
+ export const fragnoDbSettingSchemaVersion = 1;
1110
+
1111
+ // ============================================================================
1112
+ // Fragment: my-fragment-v2
1113
+ // ============================================================================
1114
+
1115
+ export const users_my_fragment_v2 = pgTable("users_my-fragment-v2", {
1116
+ id: varchar("id", { length: 30 }).notNull().$defaultFn(() => createId()),
1117
+ name: text("name").notNull(),
1118
+ email: text("email").notNull(),
1119
+ age: integer("age"),
1120
+ _internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
1121
+ _version: integer("_version").notNull().default(0)
1122
+ }, (table) => [
1123
+ uniqueIndex("idx_email_my-fragment-v2").on(table.email),
1124
+ index("idx_name_my-fragment-v2").on(table.name)
1125
+ ])
1126
+
1127
+ export const posts_my_fragment_v2 = pgTable("posts_my-fragment-v2", {
1128
+ id: varchar("id", { length: 30 }).notNull().$defaultFn(() => createId()),
1129
+ title: text("title").notNull(),
1130
+ content: text("content").notNull(),
1131
+ userId: bigint("userId", { mode: "number" }).notNull(),
1132
+ viewCount: integer("viewCount").notNull().default(0),
1133
+ _internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
1134
+ _version: integer("_version").notNull().default(0)
1135
+ }, (table) => [
1136
+ foreignKey({
1137
+ columns: [table.userId],
1138
+ foreignColumns: [users_my_fragment_v2._internalId],
1139
+ name: "fk_posts_users_author_my-fragment-v2"
1140
+ }),
1141
+ index("idx_user_my-fragment-v2").on(table.userId),
1142
+ index("idx_title_my-fragment-v2").on(table.title)
1143
+ ])
1144
+
1145
+ export const posts_my_fragment_v2Relations = relations(posts_my_fragment_v2, ({ one }) => ({
1146
+ author: one(users_my_fragment_v2, {
1147
+ relationName: "posts_users",
1148
+ fields: [posts_my_fragment_v2.userId],
1149
+ references: [users_my_fragment_v2._internalId]
1150
+ })
1151
+ }));
1152
+
1153
+ export const my_fragment_v2_schema = {
1154
+ "users_my-fragment-v2": users_my_fragment_v2,
1155
+ users: users_my_fragment_v2,
1156
+ "posts_my-fragment-v2": posts_my_fragment_v2,
1157
+ posts: posts_my_fragment_v2,
1158
+ schemaVersion: 3
1159
+ }"
1160
+ `);
1161
+ });
1162
+ });
1066
1163
  });
@@ -338,8 +338,9 @@ function generateForeignKeys(ctx: GeneratorContext, table: AnyTable, namespace?:
338
338
  foreignColumns.push(`table.${actualRefCol}`);
339
339
  } else {
340
340
  // Suffix the foreign table reference with namespace if provided
341
- const foreignTableRef =
342
- mapper && namespace ? mapper.toPhysical(relation.table.ormName) : relation.table.ormName;
341
+ const foreignTableRef = namespace
342
+ ? `${relation.table.ormName}_${sanitizeNamespace(namespace)}`
343
+ : relation.table.ormName;
343
344
  foreignColumns.push(`${foreignTableRef}.${actualRefCol}`);
344
345
  }
345
346
  }
@@ -4,7 +4,7 @@ import type { DatabaseAdapter } from "../adapters";
4
4
  import { createMigrator, type Migrator } from "../../migration-engine/create";
5
5
  import type { AnySchema } from "../../schema/create";
6
6
  import type { CustomOperation, MigrationOperation } from "../../migration-engine/shared";
7
- import { execute } from "./migration/execute";
7
+ import { execute, preprocessOperations } from "./migration/execute";
8
8
  import type { AbstractQuery } from "../../query/query";
9
9
  import { fromKysely } from "./kysely-query";
10
10
  import { createTableNameMapper } from "./kysely-shared";
@@ -15,7 +15,7 @@ import { SETTINGS_TABLE_NAME } from "../../shared/settings-schema";
15
15
  type KyselyAny = Kysely<any>;
16
16
 
17
17
  export interface KyselyConfig {
18
- db: KyselyAny;
18
+ db: KyselyAny | (() => KyselyAny);
19
19
  provider: SQLProvider;
20
20
  }
21
21
 
@@ -26,17 +26,26 @@ export class KyselyAdapter implements DatabaseAdapter {
26
26
  this.#kyselyConfig = config;
27
27
  }
28
28
 
29
+ #getDb(): KyselyAny {
30
+ const db = this.#kyselyConfig.db;
31
+ return typeof db === "function" ? db() : db;
32
+ }
33
+
29
34
  createQueryEngine<T extends AnySchema>(schema: T, namespace: string): AbstractQuery<T> {
30
35
  // Only create mapper if namespace is non-empty
31
36
  const mapper = namespace ? createTableNameMapper(namespace) : undefined;
32
- return fromKysely(schema, this.#kyselyConfig, mapper);
37
+ // Resolve the db instance if it's a function
38
+ const resolvedConfig: KyselyConfig = {
39
+ db: this.#getDb(),
40
+ provider: this.#kyselyConfig.provider,
41
+ };
42
+ return fromKysely(schema, resolvedConfig, mapper);
33
43
  }
34
44
 
35
45
  async isConnectionHealthy(): Promise<boolean> {
36
46
  try {
37
- const result = await this.#kyselyConfig.db.executeQuery(
38
- sql`SELECT 1 as healthy`.compile(this.#kyselyConfig.db),
39
- );
47
+ const db = this.#getDb();
48
+ const result = await db.executeQuery(sql`SELECT 1 as healthy`.compile(db));
40
49
  return (result.rows[0] as Record<string, unknown>)["healthy"] === 1;
41
50
  } catch {
42
51
  return false;
@@ -44,43 +53,54 @@ export class KyselyAdapter implements DatabaseAdapter {
44
53
  }
45
54
 
46
55
  createMigrationEngine(schema: AnySchema, namespace: string): Migrator {
47
- const manager = createSettingsManager(this.#kyselyConfig.db, namespace);
56
+ const manager = createSettingsManager(this.#getDb(), namespace);
48
57
  const mapper = namespace ? createTableNameMapper(namespace) : undefined;
49
58
 
50
- const onCustomNode = (node: CustomOperation, db: KyselyAny) => {
51
- const statement = sql.raw(node["sql"] as string);
52
-
53
- return {
54
- compile() {
55
- return statement.compile(db);
56
- },
57
- execute() {
58
- return statement.execute(db);
59
- },
60
- };
61
- };
59
+ const preprocessMigrationOperations = (operations: MigrationOperation[]) => {
60
+ let preprocessed = preprocessOperations(operations, this.#kyselyConfig);
62
61
 
63
- const preprocess = (operations: MigrationOperation[], db: KyselyAny) => {
64
62
  if (this.#kyselyConfig.provider === "mysql") {
65
- operations.unshift({ type: "custom", sql: "SET FOREIGN_KEY_CHECKS = 0" });
66
- operations.push({ type: "custom", sql: "SET FOREIGN_KEY_CHECKS = 1" });
67
- } else if (this.#kyselyConfig.provider === "sqlite") {
68
- operations.unshift({
69
- type: "custom",
70
- sql: "PRAGMA defer_foreign_keys = ON",
71
- });
63
+ preprocessed.unshift({ type: "custom", sql: "SET FOREIGN_KEY_CHECKS = 0" });
64
+ preprocessed.push({ type: "custom", sql: "SET FOREIGN_KEY_CHECKS = 1" });
72
65
  }
73
66
 
67
+ return preprocessed;
68
+ };
69
+
70
+ // Convert operations to executable nodes bound to specific db instance
71
+ const toExecutableNodes = (operations: MigrationOperation[], db: KyselyAny) => {
72
+ const onCustomNode = (node: CustomOperation, db: KyselyAny) => {
73
+ const statement = sql.raw(node["sql"] as string);
74
+
75
+ return {
76
+ compile() {
77
+ return statement.compile(db);
78
+ },
79
+ execute() {
80
+ return statement.execute(db);
81
+ },
82
+ };
83
+ };
84
+
85
+ const dbConfig: KyselyConfig = { db, provider: this.#kyselyConfig.provider };
74
86
  return operations.flatMap((op) =>
75
- execute(op, this.#kyselyConfig, (node) => onCustomNode(node, db), mapper),
87
+ execute(op, dbConfig, (node) => onCustomNode(node, db), mapper),
76
88
  );
77
89
  };
78
90
 
79
91
  const migrator = createMigrator({
80
92
  schema,
81
93
  executor: async (operations) => {
82
- await this.#kyselyConfig.db.transaction().execute(async (tx) => {
83
- for (const node of preprocess(operations, tx)) {
94
+ const db = this.#getDb();
95
+ // For SQLite, execute PRAGMA defer_foreign_keys BEFORE transaction
96
+ if (this.#kyselyConfig.provider === "sqlite") {
97
+ await sql.raw("PRAGMA defer_foreign_keys = ON").execute(db);
98
+ }
99
+
100
+ await db.transaction().execute(async (tx) => {
101
+ const preprocessed = preprocessMigrationOperations(operations);
102
+ const nodes = toExecutableNodes(preprocessed, tx);
103
+ for (const node of nodes) {
84
104
  try {
85
105
  await node.execute();
86
106
  } catch (e) {
@@ -92,11 +112,20 @@ export class KyselyAdapter implements DatabaseAdapter {
92
112
  },
93
113
  sql: {
94
114
  toSql: (operations) => {
95
- const compiled = preprocess(operations, this.#kyselyConfig.db).map(
96
- (m) => `${m.compile().sql};`,
97
- );
115
+ const parts: string[] = [];
116
+
117
+ // Add SQLite PRAGMA at the beginning
118
+ if (this.#kyselyConfig.provider === "sqlite") {
119
+ parts.push("PRAGMA defer_foreign_keys = ON;");
120
+ }
121
+
122
+ const preprocessed = preprocessMigrationOperations(operations);
123
+ const nodes = toExecutableNodes(preprocessed, this.#getDb());
124
+ const compiled = nodes.map((node) => `${node.compile().sql};`);
125
+
126
+ parts.push(...compiled);
98
127
 
99
- return compiled.join("\n\n");
128
+ return parts.join("\n\n");
100
129
  },
101
130
  },
102
131
 
@@ -123,7 +152,7 @@ export class KyselyAdapter implements DatabaseAdapter {
123
152
  }
124
153
 
125
154
  getSchemaVersion(namespace: string) {
126
- const manager = createSettingsManager(this.#kyselyConfig.db, namespace);
155
+ const manager = createSettingsManager(this.#getDb(), namespace);
127
156
 
128
157
  return manager.get(`schema_version`);
129
158
  }
@@ -30,7 +30,9 @@ export function createKyselyQueryCompiler<T extends AnySchema>(
30
30
  config: KyselyConfig,
31
31
  mapper?: TableNameMapper,
32
32
  ): KyselyQueryCompiler {
33
- const { db: kysely, provider } = config;
33
+ const { db, provider } = config;
34
+ // Resolve the db instance if it's a function
35
+ const kysely = typeof db === "function" ? db() : db;
34
36
  const queryBuilder = createKyselyQueryBuilder(kysely, provider, mapper);
35
37
 
36
38
  function toTable(name: unknown): AnyTable {
@@ -39,7 +39,9 @@ export function fromKysely<T extends AnySchema>(
39
39
  config: KyselyConfig,
40
40
  mapper?: TableNameMapper,
41
41
  ): AbstractQuery<T> {
42
- const { db: kysely, provider } = config;
42
+ const { db, provider } = config;
43
+ // Resolve the db instance if it's a function
44
+ const kysely = typeof db === "function" ? db() : db;
43
45
  const uowCompiler = createKyselyUOWCompiler(schema, config, mapper);
44
46
 
45
47
  function createUOW(name?: string): UnitOfWork<T, []> {
@@ -31,8 +31,10 @@ export function createKyselyUOWCompiler<TSchema extends AnySchema>(
31
31
  mapper?: TableNameMapper,
32
32
  ): UOWCompiler<TSchema, CompiledQuery> {
33
33
  const queryCompiler = createKyselyQueryCompiler(schema, config, mapper);
34
- const queryBuilder = createKyselyQueryBuilder(config.db, config.provider, mapper);
35
- const { provider } = config;
34
+ const { db, provider } = config;
35
+ // Resolve the db instance if it's a function
36
+ const kysely = typeof db === "function" ? db() : db;
37
+ const queryBuilder = createKyselyQueryBuilder(kysely, provider, mapper);
36
38
 
37
39
  function toTable(name: unknown) {
38
40
  const table = schema.tables[name as string];