prisma-kysely 2.3.0 → 3.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 (93) hide show
  1. package/dist/bin.js +1 -4
  2. package/dist/generator.js +868 -80
  3. package/package.json +29 -17
  4. package/dist/__test__/e2e.test.js +0 -651
  5. package/dist/__test__/e2e.test.js.map +0 -1
  6. package/dist/bin.js.map +0 -1
  7. package/dist/constants.js +0 -5
  8. package/dist/constants.js.map +0 -1
  9. package/dist/dialectTests/common.js +0 -59
  10. package/dist/dialectTests/common.js.map +0 -1
  11. package/dist/dialectTests/mysql.js +0 -37
  12. package/dist/dialectTests/mysql.js.map +0 -1
  13. package/dist/dialectTests/postgresql.js +0 -33
  14. package/dist/dialectTests/postgresql.js.map +0 -1
  15. package/dist/dialectTests/sqlite.js +0 -56
  16. package/dist/dialectTests/sqlite.js.map +0 -1
  17. package/dist/generator.js.map +0 -1
  18. package/dist/helpers/generateDatabaseType.js +0 -27
  19. package/dist/helpers/generateDatabaseType.js.map +0 -1
  20. package/dist/helpers/generateDatabaseType.test.js +0 -127
  21. package/dist/helpers/generateDatabaseType.test.js.map +0 -1
  22. package/dist/helpers/generateEnumType.js +0 -32
  23. package/dist/helpers/generateEnumType.js.map +0 -1
  24. package/dist/helpers/generateEnumType.test.js +0 -52
  25. package/dist/helpers/generateEnumType.test.js.map +0 -1
  26. package/dist/helpers/generateField.js +0 -38
  27. package/dist/helpers/generateField.js.map +0 -1
  28. package/dist/helpers/generateField.test.js +0 -132
  29. package/dist/helpers/generateField.test.js.map +0 -1
  30. package/dist/helpers/generateFieldType.js +0 -99
  31. package/dist/helpers/generateFieldType.js.map +0 -1
  32. package/dist/helpers/generateFieldType.test.js +0 -118
  33. package/dist/helpers/generateFieldType.test.js.map +0 -1
  34. package/dist/helpers/generateFile.js +0 -26
  35. package/dist/helpers/generateFile.js.map +0 -1
  36. package/dist/helpers/generateFile.test.js +0 -29
  37. package/dist/helpers/generateFile.test.js.map +0 -1
  38. package/dist/helpers/generateFiles.js +0 -100
  39. package/dist/helpers/generateFiles.js.map +0 -1
  40. package/dist/helpers/generateImplicitManyToManyModels.js +0 -86
  41. package/dist/helpers/generateImplicitManyToManyModels.js.map +0 -1
  42. package/dist/helpers/generateImplicitManyToManyModels.test.js +0 -636
  43. package/dist/helpers/generateImplicitManyToManyModels.test.js.map +0 -1
  44. package/dist/helpers/generateModel.js +0 -59
  45. package/dist/helpers/generateModel.js.map +0 -1
  46. package/dist/helpers/generateModel.test.js +0 -173
  47. package/dist/helpers/generateModel.test.js.map +0 -1
  48. package/dist/helpers/generateStringLiteralUnion.js +0 -16
  49. package/dist/helpers/generateStringLiteralUnion.js.map +0 -1
  50. package/dist/helpers/generateStringLiteralUnion.test.js +0 -22
  51. package/dist/helpers/generateStringLiteralUnion.test.js.map +0 -1
  52. package/dist/helpers/generateTypeOverrideFromDocumentation.js +0 -43
  53. package/dist/helpers/generateTypeOverrideFromDocumentation.js.map +0 -1
  54. package/dist/helpers/generateTypeOverrideFromDocumentation.test.js +0 -33
  55. package/dist/helpers/generateTypeOverrideFromDocumentation.test.js.map +0 -1
  56. package/dist/helpers/generateTypedReferenceNode.js +0 -12
  57. package/dist/helpers/generateTypedReferenceNode.js.map +0 -1
  58. package/dist/helpers/generateTypedReferenceNode.test.js +0 -11
  59. package/dist/helpers/generateTypedReferenceNode.test.js.map +0 -1
  60. package/dist/helpers/generatedEnumType.test.js +0 -65
  61. package/dist/helpers/generatedEnumType.test.js.map +0 -1
  62. package/dist/helpers/multiSchemaHelpers.js +0 -66
  63. package/dist/helpers/multiSchemaHelpers.js.map +0 -1
  64. package/dist/helpers/multiSchemaHelpers.test.js +0 -76
  65. package/dist/helpers/multiSchemaHelpers.test.js.map +0 -1
  66. package/dist/helpers/wrappedTypeHelpers.js +0 -27
  67. package/dist/helpers/wrappedTypeHelpers.js.map +0 -1
  68. package/dist/helpers/wrappedTypeHelpers.test.js +0 -27
  69. package/dist/helpers/wrappedTypeHelpers.test.js.map +0 -1
  70. package/dist/utils/applyJSDocWorkaround.js +0 -8
  71. package/dist/utils/applyJSDocWorkaround.js.map +0 -1
  72. package/dist/utils/formatFile.js +0 -53
  73. package/dist/utils/formatFile.js.map +0 -1
  74. package/dist/utils/formatFile.test.js +0 -13
  75. package/dist/utils/formatFile.test.js.map +0 -1
  76. package/dist/utils/isValidTSIdentifier.js +0 -5
  77. package/dist/utils/isValidTSIdentifier.js.map +0 -1
  78. package/dist/utils/normalizeCase.js +0 -12
  79. package/dist/utils/normalizeCase.js.map +0 -1
  80. package/dist/utils/normalizeCase.test.js +0 -37
  81. package/dist/utils/normalizeCase.test.js.map +0 -1
  82. package/dist/utils/sorted.js +0 -10
  83. package/dist/utils/sorted.js.map +0 -1
  84. package/dist/utils/testUtils.js +0 -42
  85. package/dist/utils/testUtils.js.map +0 -1
  86. package/dist/utils/validateConfig.js +0 -71
  87. package/dist/utils/validateConfig.js.map +0 -1
  88. package/dist/utils/validateConfig.test.js +0 -20
  89. package/dist/utils/validateConfig.test.js.map +0 -1
  90. package/dist/utils/words.js +0 -96
  91. package/dist/utils/words.js.map +0 -1
  92. package/dist/utils/writeFileSafely.js +0 -24
  93. package/dist/utils/writeFileSafely.js.map +0 -1
@@ -1,59 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateModel = void 0;
7
- const typescript_1 = __importDefault(require("typescript"));
8
- const generateField_1 = require("./generateField");
9
- const generateFieldType_1 = require("./generateFieldType");
10
- const generateTypeOverrideFromDocumentation_1 = require("./generateTypeOverrideFromDocumentation");
11
- const normalizeCase_1 = require("../utils/normalizeCase");
12
- const words_1 = require("../utils/words");
13
- const defaultTypesImplementedInJS = ["cuid", "uuid"];
14
- const generateModel = (model, config, { defaultSchema, groupBySchema, multiSchemaMap }) => {
15
- const properties = model.fields.flatMap((field) => {
16
- const isGenerated = field.hasDefaultValue &&
17
- !(typeof field.default === "object" &&
18
- "name" in field.default &&
19
- defaultTypesImplementedInJS.includes(field.default.name));
20
- const typeOverride = field.documentation
21
- ? (0, generateTypeOverrideFromDocumentation_1.generateTypeOverrideFromDocumentation)(field.documentation)
22
- : null;
23
- if (field.kind === "object" || field.kind === "unsupported")
24
- return [];
25
- const dbName = typeof field.dbName === "string" ? field.dbName : null;
26
- const schemaPrefix = groupBySchema && (multiSchemaMap === null || multiSchemaMap === void 0 ? void 0 : multiSchemaMap.get(field.type));
27
- if (field.kind === "enum") {
28
- return (0, generateField_1.generateField)({
29
- isId: field.isId,
30
- name: (0, normalizeCase_1.normalizeCase)(dbName || field.name, config),
31
- type: typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier(schemaPrefix && defaultSchema !== schemaPrefix
32
- ? `${(0, words_1.capitalize)(schemaPrefix)}.${field.type}`
33
- : field.type), undefined),
34
- nullable: !field.isRequired,
35
- generated: isGenerated,
36
- list: field.isList,
37
- documentation: field.documentation,
38
- config,
39
- });
40
- }
41
- return (0, generateField_1.generateField)({
42
- name: (0, normalizeCase_1.normalizeCase)(dbName || field.name, config),
43
- type: typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier((0, generateFieldType_1.generateFieldType)(field.type, config, typeOverride)), undefined),
44
- nullable: !field.isRequired,
45
- generated: isGenerated,
46
- list: field.isList,
47
- documentation: field.documentation,
48
- isId: field.isId,
49
- config,
50
- });
51
- });
52
- return {
53
- typeName: model.name,
54
- tableName: model.dbName || model.name,
55
- definition: typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], typescript_1.default.factory.createIdentifier(model.name), undefined, typescript_1.default.factory.createTypeLiteralNode(properties)),
56
- };
57
- };
58
- exports.generateModel = generateModel;
59
- //# sourceMappingURL=generateModel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateModel.js","sourceRoot":"","sources":["../../src/helpers/generateModel.ts"],"names":[],"mappings":"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"}
@@ -1,173 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const generateModel_1 = require("./generateModel");
5
- const testUtils_1 = require("../utils/testUtils");
6
- (0, vitest_1.test)("it generates a model!", () => {
7
- const model = (0, generateModel_1.generateModel)({
8
- name: "User",
9
- fields: [
10
- {
11
- name: "id",
12
- isId: true,
13
- isGenerated: true,
14
- default: { name: "uuid", args: [] },
15
- kind: "scalar",
16
- type: "String",
17
- hasDefaultValue: true,
18
- isList: false,
19
- isReadOnly: false,
20
- isRequired: true,
21
- isUnique: false,
22
- },
23
- {
24
- name: "id2",
25
- isId: false,
26
- isGenerated: false,
27
- default: { name: "dbgenerated", args: ["uuid()"] },
28
- kind: "scalar",
29
- type: "String",
30
- hasDefaultValue: true,
31
- isList: false,
32
- isReadOnly: false,
33
- isRequired: true,
34
- isUnique: false,
35
- },
36
- {
37
- name: "name",
38
- isId: false,
39
- isGenerated: false,
40
- kind: "scalar",
41
- type: "String",
42
- hasDefaultValue: false,
43
- isList: false,
44
- isReadOnly: false,
45
- isRequired: false,
46
- isUnique: false,
47
- },
48
- {
49
- name: "unsupportedField",
50
- isId: false,
51
- isGenerated: false,
52
- kind: "unsupported",
53
- type: "String",
54
- hasDefaultValue: false,
55
- isList: false,
56
- isReadOnly: false,
57
- isRequired: false,
58
- isUnique: false,
59
- },
60
- {
61
- name: "objectField",
62
- isId: false,
63
- isGenerated: false,
64
- kind: "object",
65
- type: "SomeOtherObject",
66
- hasDefaultValue: false,
67
- isList: false,
68
- isReadOnly: false,
69
- isRequired: false,
70
- isUnique: false,
71
- },
72
- {
73
- name: "enumField",
74
- isId: false,
75
- isGenerated: false,
76
- kind: "enum",
77
- type: "CoolEnum",
78
- hasDefaultValue: false,
79
- isList: false,
80
- isReadOnly: false,
81
- isRequired: true,
82
- isUnique: false,
83
- },
84
- ],
85
- schema: null,
86
- primaryKey: null,
87
- dbName: null,
88
- uniqueFields: [],
89
- uniqueIndexes: [],
90
- }, {
91
- databaseProvider: "sqlite",
92
- fileName: "",
93
- enumFileName: "",
94
- camelCase: false,
95
- readOnlyIds: false,
96
- groupBySchema: false,
97
- defaultSchema: "public",
98
- dbTypeName: "DB",
99
- importExtension: "",
100
- exportWrappedTypes: false,
101
- }, {
102
- groupBySchema: false,
103
- defaultSchema: "public",
104
- });
105
- (0, vitest_1.expect)(model.tableName).toEqual("User");
106
- (0, vitest_1.expect)(model.typeName).toEqual("User");
107
- const source = (0, testUtils_1.stringifyTsNode)(model.definition);
108
- (0, vitest_1.expect)(source).toEqual(`export type User = {
109
- id: string;
110
- id2: Generated<string>;
111
- name: string | null;
112
- enumField: CoolEnum;
113
- };`);
114
- });
115
- (0, vitest_1.test)("it respects camelCase option", () => {
116
- const model = (0, generateModel_1.generateModel)({
117
- name: "User",
118
- fields: [
119
- {
120
- name: "id",
121
- isId: true,
122
- isGenerated: true,
123
- default: { name: "uuid", args: [] },
124
- kind: "scalar",
125
- type: "String",
126
- hasDefaultValue: true,
127
- isList: false,
128
- isReadOnly: false,
129
- isRequired: true,
130
- isUnique: false,
131
- },
132
- {
133
- name: "user_name",
134
- isId: false,
135
- isGenerated: false,
136
- kind: "scalar",
137
- type: "String",
138
- hasDefaultValue: false,
139
- isList: false,
140
- isReadOnly: false,
141
- isRequired: false,
142
- isUnique: false,
143
- },
144
- ],
145
- schema: null,
146
- primaryKey: null,
147
- dbName: null,
148
- uniqueFields: [],
149
- uniqueIndexes: [],
150
- }, {
151
- databaseProvider: "sqlite",
152
- fileName: "",
153
- enumFileName: "",
154
- camelCase: true,
155
- readOnlyIds: false,
156
- groupBySchema: false,
157
- defaultSchema: "public",
158
- dbTypeName: "DB",
159
- importExtension: "",
160
- exportWrappedTypes: false,
161
- }, {
162
- groupBySchema: false,
163
- defaultSchema: "public",
164
- });
165
- (0, vitest_1.expect)(model.tableName).toEqual("User");
166
- (0, vitest_1.expect)(model.typeName).toEqual("User");
167
- const source = (0, testUtils_1.stringifyTsNode)(model.definition);
168
- (0, vitest_1.expect)(source).toEqual(`export type User = {
169
- id: string;
170
- userName: string | null;
171
- };`);
172
- });
173
- //# sourceMappingURL=generateModel.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateModel.test.js","sourceRoot":"","sources":["../../src/helpers/generateModel.test.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateStringLiteralUnion = void 0;
7
- const typescript_1 = __importDefault(require("typescript"));
8
- const generateStringLiteralUnion = (stringLiterals) => {
9
- if (stringLiterals.length === 0)
10
- return null;
11
- if (stringLiterals.length === 1)
12
- return typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(stringLiterals[0]));
13
- return typescript_1.default.factory.createUnionTypeNode(stringLiterals.map((literal) => typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(literal))));
14
- };
15
- exports.generateStringLiteralUnion = generateStringLiteralUnion;
16
- //# sourceMappingURL=generateStringLiteralUnion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateStringLiteralUnion.js","sourceRoot":"","sources":["../../src/helpers/generateStringLiteralUnion.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA4B;AAErB,MAAM,0BAA0B,GAAG,CAAC,cAAwB,EAAE,EAAE;IACrE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAC7B,OAAO,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CACrC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAClD,CAAC;IACJ,OAAO,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CACnC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC7B,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAC1E,CACF,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,0BAA0B,8BAWrC"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const generateStringLiteralUnion_1 = require("./generateStringLiteralUnion");
5
- const testUtils_1 = require("../utils/testUtils");
6
- (0, vitest_1.test)("it returns null for 0 items", () => {
7
- const node = (0, generateStringLiteralUnion_1.generateStringLiteralUnion)([]);
8
- (0, vitest_1.expect)(node).toBeNull();
9
- });
10
- (0, vitest_1.test)("it generates string literal unions for 1 item", () => {
11
- const node = (0, generateStringLiteralUnion_1.generateStringLiteralUnion)(["option1"]);
12
- (0, vitest_1.expect)(node).toBeDefined();
13
- const result = (0, testUtils_1.stringifyTsNode)(node);
14
- (0, vitest_1.expect)(result).toEqual('"option1"');
15
- });
16
- (0, vitest_1.test)("it generates string literal unions for 2 items", () => {
17
- const node = (0, generateStringLiteralUnion_1.generateStringLiteralUnion)(["option1", "option2"]);
18
- (0, vitest_1.expect)(node).toBeDefined();
19
- const result = (0, testUtils_1.stringifyTsNode)(node);
20
- (0, vitest_1.expect)(result).toEqual('"option1" | "option2"');
21
- });
22
- //# sourceMappingURL=generateStringLiteralUnion.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateStringLiteralUnion.test.js","sourceRoot":"","sources":["../../src/helpers/generateStringLiteralUnion.test.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AAEtC,6EAAkF;AAClF,kDAAoD;AAEpD,IAAA,aAAI,EAAC,6BAA6B,EAAE,GAAG,EAAE;IACvC,MAAM,IAAI,GAAG,IAAA,uDAA0B,EAAC,EAAE,CAAC,CAAC;IAE5C,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,+CAA+C,EAAE,GAAG,EAAE;IACzD,MAAM,IAAI,GAAG,IAAA,uDAA0B,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAErD,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAE3B,MAAM,MAAM,GAAG,IAAA,2BAAe,EAAC,IAAK,CAAC,CAAC;IAEtC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gDAAgD,EAAE,GAAG,EAAE;IAC1D,MAAM,IAAI,GAAG,IAAA,uDAA0B,EAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAEhE,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAE3B,MAAM,MAAM,GAAG,IAAA,2BAAe,EAAC,IAAK,CAAC,CAAC;IAEtC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateTypeOverrideFromDocumentation = void 0;
4
- const START_LEXEME = "@kyselyType(";
5
- const generateTypeOverrideFromDocumentation = (documentation) => {
6
- const tokens = documentation.split("");
7
- let matchState = null;
8
- let parentheses = 0;
9
- let i = 0;
10
- while (i < documentation.length) {
11
- const currentToken = tokens[i];
12
- if (matchState) {
13
- if (currentToken === ")" && parentheses === 0)
14
- return matchState.tokens.join("");
15
- if (currentToken === ")")
16
- parentheses--;
17
- if (currentToken === "(")
18
- parentheses++;
19
- matchState.tokens.push(currentToken);
20
- i++;
21
- if (i === documentation.length) {
22
- i = matchState.startLocation + 1;
23
- matchState = null;
24
- continue;
25
- }
26
- continue;
27
- }
28
- if (currentToken === "@") {
29
- const isMatch = tokens.slice(i, i + START_LEXEME.length).join("") === START_LEXEME;
30
- if (!isMatch) {
31
- i++;
32
- continue;
33
- }
34
- matchState = { tokens: [], startLocation: i };
35
- i += START_LEXEME.length;
36
- continue;
37
- }
38
- i++;
39
- }
40
- return null;
41
- };
42
- exports.generateTypeOverrideFromDocumentation = generateTypeOverrideFromDocumentation;
43
- //# sourceMappingURL=generateTypeOverrideFromDocumentation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateTypeOverrideFromDocumentation.js","sourceRoot":"","sources":["../../src/helpers/generateTypeOverrideFromDocumentation.ts"],"names":[],"mappings":";;;AAAA,MAAM,YAAY,GAAG,cAAc,CAAC;AAS7B,MAAM,qCAAqC,GAAG,CACnD,aAAqB,EACrB,EAAE;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEvC,IAAI,UAAU,GAAuD,IAAI,CAAC;IAC1E,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAG/B,IAAI,UAAU,EAAE,CAAC;YAGf,IAAI,YAAY,KAAK,GAAG,IAAI,WAAW,KAAK,CAAC;gBAC3C,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAIpC,IAAI,YAAY,KAAK,GAAG;gBAAE,WAAW,EAAE,CAAC;YACxC,IAAI,YAAY,KAAK,GAAG;gBAAE,WAAW,EAAE,CAAC;YAGxC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAErC,CAAC,EAAE,CAAC;YAKJ,IAAI,CAAC,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC/B,CAAC,GAAG,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC;gBACjC,UAAU,GAAG,IAAI,CAAC;gBAClB,SAAS;YACX,CAAC;YAED,SAAS;QACX,CAAC;QAID,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;YACzB,MAAM,OAAO,GACX,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,YAAY,CAAC;YAGrE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,CAAC,EAAE,CAAC;gBACJ,SAAS;YACX,CAAC;YAGD,UAAU,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YAC9C,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC;YAEzB,SAAS;QACX,CAAC;QAED,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AA/DW,QAAA,qCAAqC,yCA+DhD"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const generateTypeOverrideFromDocumentation_1 = require("./generateTypeOverrideFromDocumentation");
5
- (0, vitest_1.test)("finds a type override", () => {
6
- const docString = "this is some property \n here is the type override @kyselyType('admin' | 'member') ";
7
- (0, vitest_1.expect)((0, generateTypeOverrideFromDocumentation_1.generateTypeOverrideFromDocumentation)(docString)).toEqual("'admin' | 'member'");
8
- });
9
- (0, vitest_1.test)("supports parentheses in type", () => {
10
- const docString = "this is some property \n here is the type override @kyselyType(('admin' | 'member')) ";
11
- (0, vitest_1.expect)((0, generateTypeOverrideFromDocumentation_1.generateTypeOverrideFromDocumentation)(docString)).toEqual("('admin' | 'member')");
12
- });
13
- (0, vitest_1.test)("reacts correctly to unbalanced parens", () => {
14
- const docString = "this is some property \n here is the type override @kyselyType(('admin' | 'member') ";
15
- (0, vitest_1.expect)((0, generateTypeOverrideFromDocumentation_1.generateTypeOverrideFromDocumentation)(docString)).toEqual(null);
16
- });
17
- (0, vitest_1.test)("reacts correctly to extra parens", () => {
18
- const docString = "this is some property \n here is the type override @kyselyType(('admin' | 'member'))) ";
19
- (0, vitest_1.expect)((0, generateTypeOverrideFromDocumentation_1.generateTypeOverrideFromDocumentation)(docString)).toEqual("('admin' | 'member')");
20
- });
21
- (0, vitest_1.test)("finds type following incomplete one", () => {
22
- const docString = "this is some property \n here is the type @kyselyType( override @kyselyType('admin' | 'member') ";
23
- (0, vitest_1.expect)((0, generateTypeOverrideFromDocumentation_1.generateTypeOverrideFromDocumentation)(docString)).toEqual("'admin' | 'member'");
24
- });
25
- (0, vitest_1.test)("doesn't do anything in case of no type", () => {
26
- const docString = "this is some property with no override";
27
- (0, vitest_1.expect)((0, generateTypeOverrideFromDocumentation_1.generateTypeOverrideFromDocumentation)(docString)).toEqual(null);
28
- });
29
- (0, vitest_1.test)("bails when we have an at sign and no match", () => {
30
- const docString = "hit me up at squiggly@goofy.af";
31
- (0, vitest_1.expect)((0, generateTypeOverrideFromDocumentation_1.generateTypeOverrideFromDocumentation)(docString)).toEqual(null);
32
- });
33
- //# sourceMappingURL=generateTypeOverrideFromDocumentation.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateTypeOverrideFromDocumentation.test.js","sourceRoot":"","sources":["../../src/helpers/generateTypeOverrideFromDocumentation.test.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AAEtC,mGAAgG;AAEhG,IAAA,aAAI,EAAC,uBAAuB,EAAE,GAAG,EAAE;IACjC,MAAM,SAAS,GACb,qFAAqF,CAAC;IAExF,IAAA,eAAM,EAAC,IAAA,6EAAqC,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAC9D,oBAAoB,CACrB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,8BAA8B,EAAE,GAAG,EAAE;IACxC,MAAM,SAAS,GACb,uFAAuF,CAAC;IAE1F,IAAA,eAAM,EAAC,IAAA,6EAAqC,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAC9D,sBAAsB,CACvB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uCAAuC,EAAE,GAAG,EAAE;IACjD,MAAM,SAAS,GACb,sFAAsF,CAAC;IAEzF,IAAA,eAAM,EAAC,IAAA,6EAAqC,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzE,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,kCAAkC,EAAE,GAAG,EAAE;IAC5C,MAAM,SAAS,GACb,wFAAwF,CAAC;IAE3F,IAAA,eAAM,EAAC,IAAA,6EAAqC,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAC9D,sBAAsB,CACvB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,qCAAqC,EAAE,GAAG,EAAE;IAC/C,MAAM,SAAS,GACb,kGAAkG,CAAC;IAErG,IAAA,eAAM,EAAC,IAAA,6EAAqC,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAC9D,oBAAoB,CACrB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,wCAAwC,EAAE,GAAG,EAAE;IAClD,MAAM,SAAS,GAAG,wCAAwC,CAAC;IAE3D,IAAA,eAAM,EAAC,IAAA,6EAAqC,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzE,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,4CAA4C,EAAE,GAAG,EAAE;IACtD,MAAM,SAAS,GAAG,gCAAgC,CAAC;IAEnD,IAAA,eAAM,EAAC,IAAA,6EAAqC,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzE,CAAC,CAAC,CAAC"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateTypedReferenceNode = void 0;
7
- const typescript_1 = __importDefault(require("typescript"));
8
- const generateTypedReferenceNode = (name) => {
9
- return typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], name, undefined, typescript_1.default.factory.createTypeReferenceNode(`(typeof ${name})[keyof typeof ${name}]`, undefined));
10
- };
11
- exports.generateTypedReferenceNode = generateTypedReferenceNode;
12
- //# sourceMappingURL=generateTypedReferenceNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateTypedReferenceNode.js","sourceRoot":"","sources":["../../src/helpers/generateTypedReferenceNode.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA4B;AAErB,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAE,EAAE;IACzD,OAAO,oBAAE,CAAC,OAAO,CAAC,0BAA0B,CAC1C,CAAC,oBAAE,CAAC,OAAO,CAAC,cAAc,CAAC,oBAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EACxD,IAAI,EACJ,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAChC,WAAW,IAAI,kBAAkB,IAAI,GAAG,EACxC,SAAS,CACV,CACF,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,0BAA0B,8BAUrC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const testUtils_1 = require("../utils/testUtils");
5
- const generateTypedReferenceNode_1 = require("./generateTypedReferenceNode");
6
- (0, vitest_1.test)("it generated the typed reference node", () => {
7
- const node = (0, generateTypedReferenceNode_1.generateTypedReferenceNode)("Name");
8
- const result = (0, testUtils_1.stringifyTsNode)(node);
9
- (0, vitest_1.expect)(result).toEqual("export type Name = (typeof Name)[keyof typeof Name];");
10
- });
11
- //# sourceMappingURL=generateTypedReferenceNode.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateTypedReferenceNode.test.js","sourceRoot":"","sources":["../../src/helpers/generateTypedReferenceNode.test.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AAEtC,kDAAoD;AAEpD,6EAA0E;AAE1E,IAAA,aAAI,EAAC,uCAAuC,EAAE,GAAG,EAAE;IACjD,MAAM,IAAI,GAAG,IAAA,uDAA0B,EAAC,MAAM,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,IAAA,2BAAe,EAAC,IAAI,CAAC,CAAC;IAErC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CACpB,sDAAsD,CACvD,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,65 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const typescript_1 = __importStar(require("typescript"));
37
- const vitest_1 = require("vitest");
38
- const generateEnumType_1 = require("./generateEnumType");
39
- (0, vitest_1.test)("it generates the enum type", () => {
40
- const { objectDeclaration, typeDeclaration } = (0, generateEnumType_1.generateEnumType)("Name", [
41
- { name: "FOO", dbName: "FOO" },
42
- { name: "BAR", dbName: "BAR" },
43
- ]);
44
- const printer = (0, typescript_1.createPrinter)();
45
- const result = printer.printList(typescript_1.default.ListFormat.MultiLine, typescript_1.default.factory.createNodeArray([objectDeclaration, typeDeclaration]), typescript_1.default.createSourceFile("", "", typescript_1.default.ScriptTarget.Latest));
46
- (0, vitest_1.expect)(result).toEqual(`export const Name = {
47
- FOO: "FOO",
48
- BAR: "BAR"
49
- } as const;
50
- export type Name = (typeof Name)[keyof typeof Name];\n`);
51
- });
52
- (0, vitest_1.test)("it generates the enum type when using Prisma's @map()", () => {
53
- const { objectDeclaration, typeDeclaration } = (0, generateEnumType_1.generateEnumType)("Name", [
54
- { name: "FOO", dbName: "foo" },
55
- { name: "BAR", dbName: "bar" },
56
- ]);
57
- const printer = (0, typescript_1.createPrinter)();
58
- const result = printer.printList(typescript_1.default.ListFormat.MultiLine, typescript_1.default.factory.createNodeArray([objectDeclaration, typeDeclaration]), typescript_1.default.createSourceFile("", "", typescript_1.default.ScriptTarget.Latest));
59
- (0, vitest_1.expect)(result).toEqual(`export const Name = {
60
- FOO: "foo",
61
- BAR: "bar"
62
- } as const;
63
- export type Name = (typeof Name)[keyof typeof Name];\n`);
64
- });
65
- //# sourceMappingURL=generatedEnumType.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generatedEnumType.test.js","sourceRoot":"","sources":["../../src/helpers/generatedEnumType.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA+C;AAC/C,mCAAsC;AAEtC,yDAAsD;AAEtD,IAAA,aAAI,EAAC,4BAA4B,EAAE,GAAG,EAAE;IACtC,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,IAAA,mCAAgB,EAAC,MAAM,EAAE;QACtE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;QAC9B,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;KAC/B,CAAE,CAAC;IAEJ,MAAM,OAAO,GAAG,IAAA,0BAAa,GAAE,CAAC;IAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAC9B,oBAAE,CAAC,UAAU,CAAC,SAAS,EACvB,oBAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,EAChE,oBAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,oBAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CACpD,CAAC;IAEF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC;;;;uDAI8B,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uDAAuD,EAAE,GAAG,EAAE;IACjE,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,IAAA,mCAAgB,EAAC,MAAM,EAAE;QACtE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;QAC9B,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;KAC/B,CAAE,CAAC;IAEJ,MAAM,OAAO,GAAG,IAAA,0BAAa,GAAE,CAAC;IAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAC9B,oBAAE,CAAC,UAAU,CAAC,SAAS,EACvB,oBAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,EAChE,oBAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,oBAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CACpD,CAAC;IAEF,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC;;;;uDAI8B,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC"}
@@ -1,66 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.convertToMultiSchemaModels = void 0;
7
- exports.parseMultiSchemaMap = parseMultiSchemaMap;
8
- const prisma_ast_1 = require("@mrleebo/prisma-ast");
9
- const typescript_1 = __importDefault(require("typescript"));
10
- const words_1 = require("../utils/words");
11
- const convertToMultiSchemaModels = ({ defaultSchema, filterBySchema, groupBySchema, models, multiSchemaMap, }) => {
12
- return models.flatMap((model) => {
13
- const schemaName = multiSchemaMap === null || multiSchemaMap === void 0 ? void 0 : multiSchemaMap.get(model.typeName);
14
- if (!schemaName) {
15
- return model;
16
- }
17
- if (filterBySchema && !filterBySchema.has(schemaName)) {
18
- return [];
19
- }
20
- if (schemaName === defaultSchema) {
21
- return model;
22
- }
23
- return [
24
- {
25
- ...model,
26
- typeName: groupBySchema
27
- ? `${(0, words_1.capitalize)(schemaName)}.${model.typeName}`
28
- : model.typeName,
29
- tableName: model.tableName
30
- ? `${schemaName}.${model.tableName}`
31
- : undefined,
32
- schema: groupBySchema ? schemaName : undefined,
33
- },
34
- ];
35
- });
36
- };
37
- exports.convertToMultiSchemaModels = convertToMultiSchemaModels;
38
- const isIdentifierText = typescript_1.default.isIdentifierText;
39
- function parseMultiSchemaMap(dataModelStr) {
40
- var _a;
41
- const parsedSchema = (0, prisma_ast_1.getSchema)(dataModelStr);
42
- const multiSchemaMap = new Map();
43
- for (const block of parsedSchema.list) {
44
- if (block.type !== "model" &&
45
- block.type !== "view" &&
46
- block.type !== "type" &&
47
- block.type !== "enum") {
48
- continue;
49
- }
50
- const properties = block.type === "enum" ? block.enumerators : block.properties;
51
- const schemaProperty = properties.find((prop) => prop.type === "attribute" && prop.name === "schema");
52
- const schemaName = (_a = schemaProperty === null || schemaProperty === void 0 ? void 0 : schemaProperty.args) === null || _a === void 0 ? void 0 : _a[0].value;
53
- if (typeof schemaName !== "string") {
54
- multiSchemaMap.set(block.name, "");
55
- }
56
- else {
57
- const schema = JSON.parse(schemaName).toString();
58
- if (isIdentifierText && !isIdentifierText(schema)) {
59
- throw new Error(`Cannot generate identifier for schema "${schema}" in model "${block.name}" because it is not a valid Identifier, please disable \`groupBySchema\` or rename it.`);
60
- }
61
- multiSchemaMap.set(block.name, schema);
62
- }
63
- }
64
- return multiSchemaMap;
65
- }
66
- //# sourceMappingURL=multiSchemaHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multiSchemaHelpers.js","sourceRoot":"","sources":["../../src/helpers/multiSchemaHelpers.ts"],"names":[],"mappings":"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"}
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const multiSchemaHelpers_1 = require("./multiSchemaHelpers");
5
- const testDataModel = `generator kysely {
6
- provider = "node ./dist/bin.js"
7
- previewFeatures = ["multiSchema"]
8
- }
9
-
10
- datasource db {
11
- provider = "postgresql"
12
- schemas = ["mammals", "birds"]
13
- url = env("TEST_DATABASE_URL")
14
- }
15
-
16
- model Elephant {
17
- id Int @id
18
- name String
19
-
20
- @@map("elephants")
21
- @@schema("mammals")
22
- }
23
-
24
- model Eagle {
25
- id Int @id
26
- name String
27
-
28
- @@map("eagles")
29
- @@schema("birds")
30
- }
31
-
32
- model Fish {
33
- id Int @id
34
- name String
35
-
36
- @@map("fish")
37
- @@schema("public")
38
- }
39
-
40
- `;
41
- (0, vitest_1.test)("returns a list of models with schemas appended to the table name", () => {
42
- const initialModels = [
43
- { typeName: "Elephant", tableName: "elephants" },
44
- { typeName: "Eagle", tableName: "eagles" },
45
- { typeName: "Fish", tableName: "fish" },
46
- ];
47
- const result = (0, multiSchemaHelpers_1.convertToMultiSchemaModels)({
48
- models: initialModels,
49
- groupBySchema: false,
50
- defaultSchema: "public",
51
- filterBySchema: null,
52
- multiSchemaMap: (0, multiSchemaHelpers_1.parseMultiSchemaMap)(testDataModel),
53
- });
54
- (0, vitest_1.expect)(result).toEqual([
55
- { typeName: "Elephant", tableName: "mammals.elephants" },
56
- { typeName: "Eagle", tableName: "birds.eagles" },
57
- { typeName: "Fish", tableName: "fish" },
58
- ]);
59
- });
60
- (0, vitest_1.test)("returns a list of models with schemas appended to the table name filtered by schema", () => {
61
- const initialModels = [
62
- { typeName: "Elephant", tableName: "elephants" },
63
- { typeName: "Eagle", tableName: "eagles" },
64
- ];
65
- const result = (0, multiSchemaHelpers_1.convertToMultiSchemaModels)({
66
- models: initialModels,
67
- groupBySchema: false,
68
- defaultSchema: "public",
69
- filterBySchema: new Set(["mammals"]),
70
- multiSchemaMap: (0, multiSchemaHelpers_1.parseMultiSchemaMap)(testDataModel),
71
- });
72
- (0, vitest_1.expect)(result).toEqual([
73
- { typeName: "Elephant", tableName: "mammals.elephants" },
74
- ]);
75
- });
76
- //# sourceMappingURL=multiSchemaHelpers.test.js.map