prisma-kysely 1.8.0 → 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.
- package/README.md +15 -9
- package/dist/__test__/e2e.test.js +346 -43
- package/dist/__test__/e2e.test.js.map +1 -1
- package/dist/dialectTests/common.js +4 -4
- package/dist/dialectTests/common.js.map +1 -1
- package/dist/dialectTests/sqlite.js +27 -5
- package/dist/dialectTests/sqlite.js.map +1 -1
- package/dist/generator.js +37 -11
- package/dist/generator.js.map +1 -1
- package/dist/helpers/generateDatabaseType.js +1 -1
- package/dist/helpers/generateDatabaseType.js.map +1 -1
- package/dist/helpers/generateDatabaseType.test.js +36 -0
- package/dist/helpers/generateDatabaseType.test.js.map +1 -1
- package/dist/helpers/generateEnumType.js +8 -3
- package/dist/helpers/generateEnumType.js.map +1 -1
- package/dist/helpers/generateEnumType.test.js +18 -8
- package/dist/helpers/generateEnumType.test.js.map +1 -1
- package/dist/helpers/generateField.js.map +1 -1
- package/dist/helpers/generateFieldType.js.map +1 -1
- package/dist/helpers/generateFieldType.test.js +24 -0
- package/dist/helpers/generateFieldType.test.js.map +1 -1
- package/dist/helpers/generateFile.js.map +1 -1
- package/dist/helpers/generateFile.test.js +0 -1
- package/dist/helpers/generateFile.test.js.map +1 -1
- package/dist/helpers/generateFiles.js +55 -7
- package/dist/helpers/generateFiles.js.map +1 -1
- package/dist/helpers/generateImplicitManyToManyModels.js +12 -11
- package/dist/helpers/generateImplicitManyToManyModels.js.map +1 -1
- package/dist/helpers/generateImplicitManyToManyModels.test.js +129 -0
- package/dist/helpers/generateImplicitManyToManyModels.test.js.map +1 -1
- package/dist/helpers/generateModel.js +6 -2
- package/dist/helpers/generateModel.js.map +1 -1
- package/dist/helpers/generateModel.test.js +18 -2
- package/dist/helpers/generateModel.test.js.map +1 -1
- package/dist/helpers/generateStringLiteralUnion.test.js +2 -6
- package/dist/helpers/generateStringLiteralUnion.test.js.map +1 -1
- package/dist/helpers/generateTypeOverrideFromDocumentation.js.map +1 -1
- package/dist/helpers/generatedEnumType.test.js +19 -9
- package/dist/helpers/generatedEnumType.test.js.map +1 -1
- package/dist/helpers/multiSchemaHelpers.js +55 -16
- package/dist/helpers/multiSchemaHelpers.js.map +1 -1
- package/dist/helpers/multiSchemaHelpers.test.js +36 -2
- package/dist/helpers/multiSchemaHelpers.test.js.map +1 -1
- package/dist/utils/formatFile.js +18 -8
- package/dist/utils/formatFile.js.map +1 -1
- package/dist/utils/normalizeCase.js +2 -2
- package/dist/utils/normalizeCase.js.map +1 -1
- package/dist/utils/normalizeCase.test.js +8 -0
- package/dist/utils/normalizeCase.test.js.map +1 -1
- package/dist/utils/testUtils.js +17 -7
- package/dist/utils/testUtils.js.map +1 -1
- package/dist/utils/validateConfig.js +8 -0
- package/dist/utils/validateConfig.js.map +1 -1
- package/dist/utils/validateConfig.test.js.map +1 -1
- package/dist/utils/{camelCase.js → words.js} +7 -4
- package/dist/utils/words.js.map +1 -0
- package/package.json +54 -48
- package/dist/helpers/generateTypedAliasDeclaration.js +0 -12
- package/dist/helpers/generateTypedAliasDeclaration.js.map +0 -1
- package/dist/helpers/generateTypedAliasDeclaration.test.js +0 -15
- package/dist/helpers/generateTypedAliasDeclaration.test.js.map +0 -1
- 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
|
-
|
|
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
|
-
| `
|
|
82
|
-
| `
|
|
83
|
-
| `
|
|
84
|
-
| `
|
|
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
|
|
7
|
-
const promises_1 = __importDefault(require("fs/promises"));
|
|
8
|
-
const
|
|
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,
|
|
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.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
};`)
|
|
55
|
-
(0, vitest_1.expect)(generatedSource.
|
|
56
|
-
}
|
|
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.
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
};`)
|
|
87
|
-
}
|
|
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
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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
|
-
}
|
|
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
|
-
}
|
|
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
|
-
|
|
194
|
-
|
|
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
|
-
}
|
|
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":";;;;;AAAA,
|
|
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
|
|
8
|
-
const promises_1 = __importDefault(require("fs/promises"));
|
|
9
|
-
const
|
|
10
|
-
const exec = (0,
|
|
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,
|
|
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
|
|
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":"
|
|
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"}
|