prisma-kysely 1.7.1 → 2.0.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.
Files changed (63) hide show
  1. package/README.md +15 -9
  2. package/dist/__test__/e2e.test.js +346 -43
  3. package/dist/__test__/e2e.test.js.map +1 -1
  4. package/dist/dialectTests/common.js +4 -4
  5. package/dist/dialectTests/common.js.map +1 -1
  6. package/dist/dialectTests/sqlite.js +27 -5
  7. package/dist/dialectTests/sqlite.js.map +1 -1
  8. package/dist/generator.js +37 -11
  9. package/dist/generator.js.map +1 -1
  10. package/dist/helpers/generateDatabaseType.js +1 -1
  11. package/dist/helpers/generateDatabaseType.js.map +1 -1
  12. package/dist/helpers/generateDatabaseType.test.js +36 -0
  13. package/dist/helpers/generateDatabaseType.test.js.map +1 -1
  14. package/dist/helpers/generateEnumType.js +8 -3
  15. package/dist/helpers/generateEnumType.js.map +1 -1
  16. package/dist/helpers/generateEnumType.test.js +18 -8
  17. package/dist/helpers/generateEnumType.test.js.map +1 -1
  18. package/dist/helpers/generateField.js.map +1 -1
  19. package/dist/helpers/generateFieldType.js +15 -1
  20. package/dist/helpers/generateFieldType.js.map +1 -1
  21. package/dist/helpers/generateFieldType.test.js +24 -0
  22. package/dist/helpers/generateFieldType.test.js.map +1 -1
  23. package/dist/helpers/generateFile.js.map +1 -1
  24. package/dist/helpers/generateFile.test.js +0 -1
  25. package/dist/helpers/generateFile.test.js.map +1 -1
  26. package/dist/helpers/generateFiles.js +55 -7
  27. package/dist/helpers/generateFiles.js.map +1 -1
  28. package/dist/helpers/generateImplicitManyToManyModels.js +13 -12
  29. package/dist/helpers/generateImplicitManyToManyModels.js.map +1 -1
  30. package/dist/helpers/generateImplicitManyToManyModels.test.js +347 -0
  31. package/dist/helpers/generateImplicitManyToManyModels.test.js.map +1 -1
  32. package/dist/helpers/generateModel.js +6 -2
  33. package/dist/helpers/generateModel.js.map +1 -1
  34. package/dist/helpers/generateModel.test.js +18 -2
  35. package/dist/helpers/generateModel.test.js.map +1 -1
  36. package/dist/helpers/generateStringLiteralUnion.test.js +2 -6
  37. package/dist/helpers/generateStringLiteralUnion.test.js.map +1 -1
  38. package/dist/helpers/generateTypeOverrideFromDocumentation.js.map +1 -1
  39. package/dist/helpers/generatedEnumType.test.js +19 -9
  40. package/dist/helpers/generatedEnumType.test.js.map +1 -1
  41. package/dist/helpers/multiSchemaHelpers.js +55 -16
  42. package/dist/helpers/multiSchemaHelpers.js.map +1 -1
  43. package/dist/helpers/multiSchemaHelpers.test.js +36 -2
  44. package/dist/helpers/multiSchemaHelpers.test.js.map +1 -1
  45. package/dist/utils/formatFile.js +18 -8
  46. package/dist/utils/formatFile.js.map +1 -1
  47. package/dist/utils/normalizeCase.js +2 -2
  48. package/dist/utils/normalizeCase.js.map +1 -1
  49. package/dist/utils/normalizeCase.test.js +8 -0
  50. package/dist/utils/normalizeCase.test.js.map +1 -1
  51. package/dist/utils/testUtils.js +17 -7
  52. package/dist/utils/testUtils.js.map +1 -1
  53. package/dist/utils/validateConfig.js +9 -0
  54. package/dist/utils/validateConfig.js.map +1 -1
  55. package/dist/utils/validateConfig.test.js.map +1 -1
  56. package/dist/utils/{camelCase.js → words.js} +7 -4
  57. package/dist/utils/words.js.map +1 -0
  58. package/package.json +54 -48
  59. package/dist/helpers/generateTypedAliasDeclaration.js +0 -12
  60. package/dist/helpers/generateTypedAliasDeclaration.js.map +0 -1
  61. package/dist/helpers/generateTypedAliasDeclaration.test.js +0 -15
  62. package/dist/helpers/generateTypedAliasDeclaration.test.js.map +0 -1
  63. package/dist/utils/camelCase.js.map +0 -1
package/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  <p align="center">
4
4
  <a href="https://www.npmjs.com/package/prisma-kysely"><img src="https://badge.fury.io/js/prisma-kysely.svg"></a>
5
+ <a href="https://ko-fi.com/N4N7QQZVA"><img height=20 src="https://ko-fi.com/img/githubbutton_sm.svg"></a>
5
6
  </p>
6
7
 
7
8
  <br/>
@@ -39,7 +40,7 @@ without losing the safety of the TypeScript type system?
39
40
  output = "../src/db"
40
41
  fileName = "types.ts"
41
42
  // Optionally generate runtime enums to a separate file
42
- enumFileName = "enums.ts"
43
+ enumFileName = "enums.ts"
43
44
  }
44
45
  ```
45
46
 
@@ -74,14 +75,19 @@ hope it's just as useful for you! 😎
74
75
 
75
76
  ### Config
76
77
 
77
- | Key | Description |
78
- | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
79
- | `output` | The directory where generated code will be saved |
80
- | `fileName` | The filename for the generated file |
81
- | `enumFileName` | The filename for the generated enums. Omitting this will generate enums and files in the same file. |
82
- | `camelCase` | Enable support for Kysely's camelCase plugin |
83
- | `readOnlyIds` | Use Kysely's `GeneratedAlways` for `@id` fields with default values, preventing insert and update. |
84
- | `[typename]TypeOverride` | Allows you to override the resulting TypeScript type for any Prisma type. Useful when targeting a different environment than Node (e.g. WinterCG compatible runtimes that use UInt8Arrays instead of Buffers for binary types etc.) Check out the [config validator](https://github.com/valtyr/prisma-kysely/blob/main/src/utils/validateConfig.ts) for a complete list of options. |
78
+ | Key | Description | Default |
79
+ | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
80
+ | `output` | The directory where generated code will be saved | |
81
+ | `fileName` | The filename for the generated file | `types.ts` |
82
+ | `importExtension` | The extension to append to imports. E.g: `".js"` or `".ts"`. Use `""` to append nothing. | `""` |
83
+ | `enumFileName` | The filename for the generated enums. Omitting this will generate enums and files in the same file. | |
84
+ | `camelCase` | Enable support for Kysely's camelCase plugin | `false` |
85
+ | `readOnlyIds` | Use Kysely's `GeneratedAlways` for `@id` fields with default values, preventing insert and update. | `false` |
86
+ | `[typename]TypeOverride` | Allows you to override the resulting TypeScript type for any Prisma type. Useful when targeting a different environment than Node (e.g. WinterCG compatible runtimes that use UInt8Arrays instead of Buffers for binary types etc.) Check out the [config validator](https://github.com/valtyr/prisma-kysely/blob/main/src/utils/validateConfig.ts) for a complete list of options. | |
87
+ | `dbTypeName` | Allows you to override the exported type with all tables | `DB` |
88
+ | `groupBySchema` | When using `multiSchema` preview features, group all models and enums for a schema into their own namespace. (Ex: `model Dog { @@schema("animals") }` will be available under `Animals.Dog`) | `false` |
89
+ | `filterBySchema` | When using `multiSchema` preview features, only include models and enums for the specified schema. | `false` |
90
+ | `defaultSchema` | When using `multiSchema` preview features, which schema should not be wrapped by a namespace. | `'public'` |
85
91
 
86
92
  ### Per-field type overrides
87
93
 
@@ -3,11 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const child_process_1 = require("child_process");
7
- const promises_1 = __importDefault(require("fs/promises"));
8
- const util_1 = require("util");
6
+ const node_child_process_1 = require("node:child_process");
7
+ const promises_1 = __importDefault(require("node:fs/promises"));
8
+ const node_util_1 = require("node:util");
9
9
  const vitest_1 = require("vitest");
10
- const exec = (0, util_1.promisify)(child_process_1.exec);
10
+ const exec = (0, node_util_1.promisify)(node_child_process_1.exec);
11
11
  (0, vitest_1.beforeEach)(async () => {
12
12
  await promises_1.default.rename("./prisma", "./prisma-old").catch(() => { });
13
13
  });
@@ -20,7 +20,7 @@ const exec = (0, util_1.promisify)(child_process_1.exec);
20
20
  .catch(() => { });
21
21
  await promises_1.default.rename("./prisma-old", "./prisma").catch(() => { });
22
22
  });
23
- (0, vitest_1.test)("End to end test", async () => {
23
+ (0, vitest_1.test)("End to end test", { timeout: 20000 }, async () => {
24
24
  await exec("yarn prisma init --datasource-provider sqlite");
25
25
  await promises_1.default.writeFile("./prisma/schema.prisma", `datasource db {
26
26
  provider = "sqlite"
@@ -30,7 +30,7 @@ const exec = (0, util_1.promisify)(child_process_1.exec);
30
30
  generator kysely {
31
31
  provider = "node ./dist/bin.js"
32
32
  }
33
-
33
+
34
34
  model TestUser {
35
35
  id String @id
36
36
  name String
@@ -39,7 +39,7 @@ const exec = (0, util_1.promisify)(child_process_1.exec);
39
39
  updatedAt DateTime
40
40
  sprockets Sprocket[]
41
41
  }
42
-
42
+
43
43
  model Sprocket {
44
44
  id Int @id
45
45
  users TestUser[]
@@ -48,13 +48,13 @@ const exec = (0, util_1.promisify)(child_process_1.exec);
48
48
  const generatedSource = await promises_1.default.readFile("./prisma/generated/types.ts", {
49
49
  encoding: "utf-8",
50
50
  });
51
- (0, vitest_1.expect)(generatedSource.includes(`export type SprocketToTestUser = {
52
- A: number;
53
- B: string;
54
- };`)).toBeTruthy();
55
- (0, vitest_1.expect)(generatedSource.includes("_SprocketToTestUser: SprocketToTestUser")).toBeTruthy();
56
- }, { timeout: 20000 });
57
- (0, vitest_1.test)("End to end test - with custom type override", async () => {
51
+ (0, vitest_1.expect)(generatedSource).toContain(`export type SprocketToTestUser = {
52
+ A: number;
53
+ B: string;
54
+ };`);
55
+ (0, vitest_1.expect)(generatedSource).toContain("_SprocketToTestUser: SprocketToTestUser");
56
+ });
57
+ (0, vitest_1.test)("End to end test - with custom type override", { timeout: 20000 }, async () => {
58
58
  await exec("yarn prisma init --datasource-provider sqlite");
59
59
  await promises_1.default.writeFile("./prisma/schema.prisma", `datasource db {
60
60
  provider = "sqlite"
@@ -64,7 +64,7 @@ const exec = (0, util_1.promisify)(child_process_1.exec);
64
64
  generator kysely {
65
65
  provider = "node ./dist/bin.js"
66
66
  }
67
-
67
+
68
68
  model TestUser {
69
69
  id String @id
70
70
  name String
@@ -76,16 +76,16 @@ const exec = (0, util_1.promisify)(child_process_1.exec);
76
76
  const generatedSource = await promises_1.default.readFile("./prisma/generated/types.ts", {
77
77
  encoding: "utf-8",
78
78
  });
79
- (0, vitest_1.expect)(generatedSource.includes(`export type TestUser = {
80
- id: string;
81
- name: string;
82
- /**
83
- * @kyselyType('member' | 'owner')
84
- */
85
- role: "member" | "owner";
86
- };`)).toBeTruthy();
87
- }, { timeout: 20000 });
88
- (0, vitest_1.test)("End to end test - separate entrypoints", async () => {
79
+ (0, vitest_1.expect)(generatedSource).toContain(`export type TestUser = {
80
+ id: string;
81
+ name: string;
82
+ /**
83
+ * @kyselyType('member' | 'owner')
84
+ */
85
+ role: 'member' | 'owner';
86
+ };`);
87
+ });
88
+ (0, vitest_1.test)("End to end test - separate entrypoints", { timeout: 20000 }, async () => {
89
89
  await exec("yarn prisma init --datasource-provider mysql");
90
90
  await promises_1.default.writeFile("./prisma/schema.prisma", `datasource db {
91
91
  provider = "mysql"
@@ -102,7 +102,7 @@ const exec = (0, util_1.promisify)(child_process_1.exec);
102
102
  B
103
103
  C
104
104
  }
105
-
105
+
106
106
  model TestUser {
107
107
  id String @id
108
108
  name String
@@ -121,14 +121,14 @@ const exec = (0, util_1.promisify)(child_process_1.exec);
121
121
  encoding: "utf-8",
122
122
  });
123
123
  (0, vitest_1.expect)(enumFile).toEqual(`export const TestEnum = {
124
- A: "A",
125
- B: "B",
126
- C: "C",
124
+ A: "A",
125
+ B: "B",
126
+ C: "C"
127
127
  } as const;
128
128
  export type TestEnum = (typeof TestEnum)[keyof typeof TestEnum];
129
129
  `);
130
- }, { timeout: 20000 });
131
- (0, vitest_1.test)("End to end test - separate entrypoints but no enums", async () => {
130
+ });
131
+ (0, vitest_1.test)("End to end test - separate entrypoints but no enums", { timeout: 20000 }, async () => {
132
132
  await exec("yarn prisma init --datasource-provider sqlite");
133
133
  await promises_1.default.writeFile("./prisma/schema.prisma", `datasource db {
134
134
  provider = "sqlite"
@@ -139,7 +139,7 @@ export type TestEnum = (typeof TestEnum)[keyof typeof TestEnum];
139
139
  provider = "node ./dist/bin.js"
140
140
  enumFileName = "enums.ts"
141
141
  }
142
-
142
+
143
143
  model TestUser {
144
144
  id String @id
145
145
  name String
@@ -153,35 +153,35 @@ export type TestEnum = (typeof TestEnum)[keyof typeof TestEnum];
153
153
  encoding: "utf-8",
154
154
  });
155
155
  (0, vitest_1.expect)(typeFile).not.toContain('from "./enums"');
156
- (0, vitest_1.expect)(promises_1.default.readFile("./prisma/generated/enums.ts", {
156
+ await (0, vitest_1.expect)(promises_1.default.readFile("./prisma/generated/enums.ts", {
157
157
  encoding: "utf-8",
158
158
  })).rejects.toThrow();
159
- }, { timeout: 20000 });
160
- (0, vitest_1.test)("End to end test - multi-schema support", async () => {
159
+ });
160
+ (0, vitest_1.test)("End to end test - multi-schema support", { timeout: 20000 }, async () => {
161
161
  await exec("yarn prisma init --datasource-provider postgresql");
162
162
  await promises_1.default.writeFile("./prisma/schema.prisma", `generator kysely {
163
163
  provider = "node ./dist/bin.js"
164
164
  previewFeatures = ["multiSchema"]
165
165
  }
166
-
166
+
167
167
  datasource db {
168
168
  provider = "postgresql"
169
169
  schemas = ["mammals", "birds"]
170
170
  url = env("TEST_DATABASE_URL")
171
171
  }
172
-
172
+
173
173
  model Elephant {
174
174
  id Int @id
175
175
  name String
176
-
176
+
177
177
  @@map("elephants")
178
178
  @@schema("mammals")
179
179
  }
180
-
180
+
181
181
  model Eagle {
182
182
  id Int @id
183
183
  name String
184
-
184
+
185
185
  @@map("eagles")
186
186
  @@schema("birds")
187
187
  }`);
@@ -190,8 +190,311 @@ export type TestEnum = (typeof TestEnum)[keyof typeof TestEnum];
190
190
  encoding: "utf-8",
191
191
  });
192
192
  (0, vitest_1.expect)(typeFile).toContain(`export type DB = {
193
- "birds.eagles": Eagle;
194
- "mammals.elephants": Elephant;
193
+ "birds.eagles": Eagle;
194
+ "mammals.elephants": Elephant;
195
+ };`);
196
+ });
197
+ (0, vitest_1.test)("End to end test - multi-schema and filterBySchema support", { timeout: 20000 }, async () => {
198
+ await exec("yarn prisma init --datasource-provider postgresql");
199
+ await promises_1.default.writeFile("./prisma/schema.prisma", `generator kysely {
200
+ provider = "node ./dist/bin.js"
201
+ previewFeatures = ["multiSchema"]
202
+ filterBySchema = ["mammals"]
203
+ }
204
+
205
+ datasource db {
206
+ provider = "postgresql"
207
+ schemas = ["mammals", "birds"]
208
+ url = env("TEST_DATABASE_URL")
209
+ }
210
+
211
+ model Elephant {
212
+ id Int @id
213
+ name String
214
+
215
+ @@map("elephants")
216
+ @@schema("mammals")
217
+ }
218
+
219
+ model Eagle {
220
+ id Int @id
221
+ name String
222
+
223
+ @@map("eagles")
224
+ @@schema("birds")
225
+ }`);
226
+ await exec("yarn prisma generate");
227
+ const typeFile = await promises_1.default.readFile("./prisma/generated/types.ts", {
228
+ encoding: "utf-8",
229
+ });
230
+ (0, vitest_1.expect)(typeFile).toContain(`export type DB = {
231
+ "mammals.elephants": Elephant;
232
+ };`);
233
+ });
234
+ (0, vitest_1.test)("End to end test - multi-schema and groupBySchema support", { timeout: 20000 }, async () => {
235
+ await exec("yarn prisma init --datasource-provider postgresql");
236
+ await promises_1.default.writeFile("./prisma/schema.prisma", `
237
+ generator kysely {
238
+ provider = "node ./dist/bin.js"
239
+ previewFeatures = ["multiSchema"]
240
+ groupBySchema = true
241
+ }
242
+
243
+ datasource db {
244
+ provider = "postgresql"
245
+ schemas = ["mammals", "birds", "world"]
246
+ url = env("TEST_DATABASE_URL")
247
+ }
248
+
249
+ model Elephant {
250
+ id Int @id
251
+ name String
252
+ ability Ability @default(WALK)
253
+ color Color
254
+
255
+ @@map("elephants")
256
+ @@schema("mammals")
257
+ }
258
+
259
+ model Eagle {
260
+ id Int @id
261
+ name String
262
+ ability Ability @default(FLY)
263
+
264
+ @@map("eagles")
265
+ @@schema("birds")
266
+ }
267
+
268
+ enum Ability {
269
+ FLY
270
+ WALK
271
+
272
+ @@schema("world")
273
+ }
274
+
275
+ enum Color {
276
+ GRAY
277
+ PINK
278
+
279
+ @@schema("mammals")
280
+ }
281
+ `);
282
+ await exec("yarn prisma generate");
283
+ const typeFile = await promises_1.default.readFile("./prisma/generated/types.ts", {
284
+ encoding: "utf-8",
285
+ });
286
+ (0, vitest_1.expect)(typeFile).toContain(`export namespace Birds {
287
+ export type Eagle = {`);
288
+ (0, vitest_1.expect)(typeFile).toContain(`export namespace Mammals {
289
+ export const Color = {`);
290
+ (0, vitest_1.expect)(typeFile).toContain("color: Mammals.Color;");
291
+ (0, vitest_1.expect)(typeFile).toContain(`export type DB = {
292
+ "birds.eagles": Birds.Eagle;
293
+ "mammals.elephants": Mammals.Elephant;
195
294
  };`);
196
- }, { timeout: 20000 });
295
+ });
296
+ (0, vitest_1.test)("End to end test - multi-schema, groupBySchema and defaultSchema support", { timeout: 20000 }, async () => {
297
+ await exec("yarn prisma init --datasource-provider postgresql");
298
+ await promises_1.default.writeFile("./prisma/schema.prisma", `
299
+ generator kysely {
300
+ provider = "node ./dist/bin.js"
301
+ previewFeatures = ["multiSchema"]
302
+ groupBySchema = true
303
+ defaultSchema = "fish"
304
+ }
305
+
306
+ datasource db {
307
+ provider = "postgresql"
308
+ schemas = ["mammals", "birds", "world", "fish"]
309
+ url = env("TEST_DATABASE_URL")
310
+ }
311
+
312
+ model Elephant {
313
+ id Int @id
314
+ name String
315
+ ability Ability @default(WALK)
316
+ color Color
317
+
318
+ @@map("elephants")
319
+ @@schema("mammals")
320
+ }
321
+
322
+ model Eagle {
323
+ id Int @id
324
+ name String
325
+ ability Ability @default(FLY)
326
+
327
+ @@map("eagles")
328
+ @@schema("birds")
329
+ }
330
+
331
+ model Shark {
332
+ id Int @id
333
+ name String
334
+ color Color
335
+
336
+ @@map("shark")
337
+ @@schema("fish")
338
+ }
339
+
340
+ enum Ability {
341
+ FLY
342
+ WALK
343
+
344
+ @@schema("world")
345
+ }
346
+
347
+ enum Color {
348
+ GRAY
349
+ PINK
350
+
351
+ @@schema("mammals")
352
+ }
353
+ `);
354
+ await exec("yarn prisma generate");
355
+ const typeFile = await promises_1.default.readFile("./prisma/generated/types.ts", {
356
+ encoding: "utf-8",
357
+ });
358
+ (0, vitest_1.expect)(typeFile).toContain(`export namespace Birds {
359
+ export type Eagle = {`);
360
+ (0, vitest_1.expect)(typeFile).toContain(`export namespace Mammals {
361
+ export const Color = {`);
362
+ (0, vitest_1.expect)(typeFile).toContain("export type Shark = {");
363
+ (0, vitest_1.expect)(typeFile).toContain("color: Mammals.Color;");
364
+ (0, vitest_1.expect)(typeFile).toContain(`export type DB = {
365
+ "birds.eagles": Birds.Eagle;
366
+ "mammals.elephants": Mammals.Elephant;
367
+ shark: Shark;
368
+ };`);
369
+ });
370
+ (0, vitest_1.test)("End to end test - multi-schema, groupBySchema and filterBySchema support", { timeout: 20000 }, async () => {
371
+ await exec("yarn prisma init --datasource-provider postgresql");
372
+ await promises_1.default.writeFile("./prisma/schema.prisma", `
373
+ generator kysely {
374
+ provider = "node ./dist/bin.js"
375
+ previewFeatures = ["multiSchema"]
376
+ groupBySchema = true
377
+ filterBySchema = ["mammals", "world"]
378
+ }
379
+
380
+ datasource db {
381
+ provider = "postgresql"
382
+ schemas = ["mammals", "birds", "world"]
383
+ url = env("TEST_DATABASE_URL")
384
+ }
385
+
386
+ model Elephant {
387
+ id Int @id
388
+ name String
389
+ ability Ability @default(WALK)
390
+ color Color
391
+
392
+ @@map("elephants")
393
+ @@schema("mammals")
394
+ }
395
+
396
+ model Eagle {
397
+ id Int @id
398
+ name String
399
+ ability Ability @default(FLY)
400
+
401
+ @@map("eagles")
402
+ @@schema("birds")
403
+ }
404
+
405
+ enum Ability {
406
+ FLY
407
+ WALK
408
+
409
+ @@schema("world")
410
+ }
411
+
412
+ enum Color {
413
+ GRAY
414
+ PINK
415
+
416
+ @@schema("mammals")
417
+ }
418
+ `);
419
+ await exec("yarn prisma generate");
420
+ const typeFile = await promises_1.default.readFile("./prisma/generated/types.ts", {
421
+ encoding: "utf-8",
422
+ });
423
+ (0, vitest_1.expect)(typeFile).not.toContain(`export namespace Birds {
424
+ export type Eagle = {`);
425
+ (0, vitest_1.expect)(typeFile).toContain(`export namespace Mammals {
426
+ export const Color = {`);
427
+ (0, vitest_1.expect)(typeFile).toContain("color: Mammals.Color;");
428
+ (0, vitest_1.expect)(typeFile).toContain(`export type DB = {
429
+ "mammals.elephants": Mammals.Elephant;
430
+ };`);
431
+ });
432
+ (0, vitest_1.test)("End to end test - multi-schema with views support", { timeout: 20000 }, async () => {
433
+ await exec("yarn prisma init --datasource-provider postgresql");
434
+ await promises_1.default.writeFile("./prisma/schema.prisma", `generator kysely {
435
+ provider = "node ./dist/bin.js"
436
+ previewFeatures = ["multiSchema", "views"]
437
+ }
438
+
439
+ datasource db {
440
+ provider = "postgresql"
441
+ schemas = ["public", "analytics"]
442
+ url = env("TEST_DATABASE_URL")
443
+ }
444
+
445
+ model User {
446
+ id Int @id
447
+ name String
448
+ email String
449
+ posts Post[]
450
+
451
+ @@schema("public")
452
+ }
453
+
454
+ model Post {
455
+ id Int @id
456
+ title String
457
+ content String
458
+ authorId Int
459
+ author User @relation(fields: [authorId], references: [id])
460
+
461
+ @@schema("public")
462
+ }
463
+
464
+ view UserStats {
465
+ id Int @unique
466
+ name String
467
+ postCount Int
468
+
469
+ @@schema("analytics")
470
+ }
471
+
472
+ view PostSummary {
473
+ id Int @unique
474
+ title String
475
+ author String
476
+
477
+ @@schema("public")
478
+ }`);
479
+ await exec("yarn prisma generate");
480
+ const typeFile = await promises_1.default.readFile("./prisma/generated/types.ts", {
481
+ encoding: "utf-8",
482
+ });
483
+ (0, vitest_1.expect)(typeFile).toContain(`export type DB = {
484
+ "analytics.UserStats": UserStats;
485
+ Post: Post;
486
+ PostSummary: PostSummary;
487
+ User: User;
488
+ };`);
489
+ (0, vitest_1.expect)(typeFile).toContain(`export type UserStats = {
490
+ id: number;
491
+ name: string;
492
+ postCount: number;
493
+ };`);
494
+ (0, vitest_1.expect)(typeFile).toContain(`export type PostSummary = {
495
+ id: number;
496
+ title: string;
497
+ author: string;
498
+ };`);
499
+ });
197
500
  //# sourceMappingURL=e2e.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"e2e.test.js","sourceRoot":"","sources":["../../src/__test__/e2e.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"e2e.test.js","sourceRoot":"","sources":["../../src/__test__/e2e.test.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.preparePrisma = exports.generateSchema = exports.MYSQL_URL = exports.POSTGRES_URL = void 0;
7
- const child_process_1 = require("child_process");
8
- const promises_1 = __importDefault(require("fs/promises"));
9
- const util_1 = require("util");
10
- const exec = (0, util_1.promisify)(child_process_1.exec);
7
+ const node_child_process_1 = require("node:child_process");
8
+ const promises_1 = __importDefault(require("node:fs/promises"));
9
+ const node_util_1 = require("node:util");
10
+ const exec = (0, node_util_1.promisify)(node_child_process_1.exec);
11
11
  exports.POSTGRES_URL = "postgres://postgres:postgres@localhost:22331/postgres";
12
12
  exports.MYSQL_URL = "mysql://root:mysql@localhost:22332/test";
13
13
  function generateDatasource(dialect) {
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/dialectTests/common.ts"],"names":[],"mappings":";;;;;;AAAA,iDAA+C;AAC/C,2DAA6B;AAC7B,+BAAiC;AAEjC,MAAM,IAAI,GAAG,IAAA,gBAAS,EAAC,oBAAM,CAAC,CAAC;AAIlB,QAAA,YAAY,GACvB,uDAAuD,CAAC;AAC7C,QAAA,SAAS,GAAG,yCAAyC,CAAC;AAEnE,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,QAAQ,OAAO,EAAE;QACf,KAAK,QAAQ;YACX,OAAO,4CAA4C,CAAC;QACtD,KAAK,YAAY;YACf,OAAO,mCAAmC,oBAAY,GAAG,CAAC;QAC5D,KAAK,OAAO;YACV,OAAO,8BAA8B,iBAAS,GAAG,CAAC;KACrD;AACH,CAAC;AAEM,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAE,EAAE;IACjD,OAAO;UACC,kBAAkB,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;MAgB/B,CAAC;AACP,CAAC,CAAC;AAnBW,QAAA,cAAc,kBAmBzB;AAEK,MAAM,aAAa,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;IACtD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,MAAM,kBAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1D,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,MAAM,kBAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAE3B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,MAAM,kBAAE,CAAC,SAAS,CAAC,wBAAwB,EAAE,IAAA,sBAAc,EAAC,OAAO,CAAC,EAAE;QACpE,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,MAAM,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,MAAM,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACrC,CAAC,CAAC;AAhBW,QAAA,aAAa,iBAgBxB"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/dialectTests/common.ts"],"names":[],"mappings":";;;;;;AAAA,2DAAoD;AACpD,gEAAkC;AAClC,yCAAsC;AAEtC,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,yBAAM,CAAC,CAAC;AAIlB,QAAA,YAAY,GACvB,uDAAuD,CAAC;AAC7C,QAAA,SAAS,GAAG,yCAAyC,CAAC;AAEnE,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,4CAA4C,CAAC;QACtD,KAAK,YAAY;YACf,OAAO,mCAAmC,oBAAY,GAAG,CAAC;QAC5D,KAAK,OAAO;YACV,OAAO,8BAA8B,iBAAS,GAAG,CAAC;IACtD,CAAC;AACH,CAAC;AAEM,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAE,EAAE;IACjD,OAAO;UACC,kBAAkB,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;MAgB/B,CAAC;AACP,CAAC,CAAC;AAnBW,QAAA,cAAc,kBAmBzB;AAEK,MAAM,aAAa,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;IACtD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,MAAM,kBAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1D,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,MAAM,kBAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAE3B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,MAAM,kBAAE,CAAC,SAAS,CAAC,wBAAwB,EAAE,IAAA,sBAAc,EAAC,OAAO,CAAC,EAAE;QACpE,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,MAAM,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,MAAM,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACrC,CAAC,CAAC;AAhBW,QAAA,aAAa,iBAgBxB"}
@@ -1,16 +1,38 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
7
3
  const kysely_1 = require("kysely");
4
+ const node_sqlite_1 = require("node:sqlite");
8
5
  const common_1 = require("./common");
6
+ class KyselyNodeSQLiteDatabase {
7
+ constructor(url, options) {
8
+ this.database = new node_sqlite_1.DatabaseSync(url, options);
9
+ }
10
+ close() {
11
+ this.database.close();
12
+ }
13
+ prepare(sql) {
14
+ return new KyselyNodeSQLiteStatement(this.database.prepare(sql));
15
+ }
16
+ }
17
+ class KyselyNodeSQLiteStatement {
18
+ constructor(statement) {
19
+ this.statement = statement;
20
+ }
21
+ iterate(parameters) {
22
+ return this.statement.iterate(...parameters);
23
+ }
24
+ all(parameters) {
25
+ return this.statement.all(...parameters);
26
+ }
27
+ run(parameters) {
28
+ return this.statement.run(...parameters);
29
+ }
30
+ }
9
31
  const main = async () => {
10
32
  await (0, common_1.preparePrisma)("sqlite");
11
33
  const db = new kysely_1.Kysely({
12
34
  dialect: new kysely_1.SqliteDialect({
13
- database: new better_sqlite3_1.default("./prisma/dev.db"),
35
+ database: new KyselyNodeSQLiteDatabase("./prisma/dev.db"),
14
36
  }),
15
37
  });
16
38
  await db
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/dialectTests/sqlite.ts"],"names":[],"mappings":";;;;;AAAA,oEAAsC;AACtC,mCAA+C;AAE/C,qCAAsD;AAEtD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACtB,MAAM,IAAA,sBAAa,EAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,eAAM,CAAQ;QAC3B,OAAO,EAAE,IAAI,sBAAa,CAAC;YACzB,QAAQ,EAAE,IAAI,wBAAQ,CAAC,iBAAiB,CAAC;SAC1C,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,EAAE;SACL,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;SAClC,OAAO,EAAE,CAAC;IAEb,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,UAAU,CAAC,QAAQ,CAAC;SACpB,SAAS,EAAE;SACX,uBAAuB,EAAE,CAAC;IAE7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,GAAG;QACH,KAAK;QACL,MAAM,EAAE,OAAO,KAAK;KACrB,CAAC,CAAC,CAAC;IACJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEvB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;AACrB,CAAC,CAAC;AAEF,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/dialectTests/sqlite.ts"],"names":[],"mappings":";;AACA,mCAA+C;AAM/C,6CAA2C;AAE3C,qCAAsD;AAEtD,MAAM,wBAAwB;IAG5B,YAAY,GAA0B,EAAE,OAA6B;QACnE,IAAI,CAAC,QAAQ,GAAG,IAAI,0BAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,GAAW;QACjB,OAAO,IAAI,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,CAAC;CACF;AAED,MAAM,yBAAyB;IAG7B,YAAY,SAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,UAAwC;QAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC;IAC/C,CAAC;IAGD,GAAG,CAAC,UAAwC;QAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IAC3C,CAAC;IACD,GAAG,CAAC,UAAwC;QAI1C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACtB,MAAM,IAAA,sBAAa,EAAC,QAAQ,CAAC,CAAC;IAE9B,MAAM,EAAE,GAAG,IAAI,eAAM,CAAQ;QAC3B,OAAO,EAAE,IAAI,sBAAa,CAAC;YACzB,QAAQ,EAAE,IAAI,wBAAwB,CAAC,iBAAiB,CAAC;SAC1D,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,EAAE;SACL,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;SAClC,OAAO,EAAE,CAAC;IAEb,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,UAAU,CAAC,QAAQ,CAAC;SACpB,SAAS,EAAE;SACX,uBAAuB,EAAE,CAAC;IAE7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,GAAG;QACH,KAAK;QACL,MAAM,EAAE,OAAO,KAAK;KACrB,CAAC,CAAC,CAAC;IACJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEvB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;AACrB,CAAC,CAAC;AAEF,IAAI,EAAE,CAAC"}