prisma-kysely 2.3.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -0
- package/dist/bin.js +1 -4
- package/dist/generator.js +874 -80
- package/package.json +30 -18
- package/dist/__test__/e2e.test.js +0 -651
- package/dist/__test__/e2e.test.js.map +0 -1
- package/dist/bin.js.map +0 -1
- package/dist/constants.js +0 -5
- package/dist/constants.js.map +0 -1
- package/dist/dialectTests/common.js +0 -59
- package/dist/dialectTests/common.js.map +0 -1
- package/dist/dialectTests/mysql.js +0 -37
- package/dist/dialectTests/mysql.js.map +0 -1
- package/dist/dialectTests/postgresql.js +0 -33
- package/dist/dialectTests/postgresql.js.map +0 -1
- package/dist/dialectTests/sqlite.js +0 -56
- package/dist/dialectTests/sqlite.js.map +0 -1
- package/dist/generator.js.map +0 -1
- package/dist/helpers/generateDatabaseType.js +0 -27
- package/dist/helpers/generateDatabaseType.js.map +0 -1
- package/dist/helpers/generateDatabaseType.test.js +0 -127
- package/dist/helpers/generateDatabaseType.test.js.map +0 -1
- package/dist/helpers/generateEnumType.js +0 -32
- package/dist/helpers/generateEnumType.js.map +0 -1
- package/dist/helpers/generateEnumType.test.js +0 -52
- package/dist/helpers/generateEnumType.test.js.map +0 -1
- package/dist/helpers/generateField.js +0 -38
- package/dist/helpers/generateField.js.map +0 -1
- package/dist/helpers/generateField.test.js +0 -132
- package/dist/helpers/generateField.test.js.map +0 -1
- package/dist/helpers/generateFieldType.js +0 -99
- package/dist/helpers/generateFieldType.js.map +0 -1
- package/dist/helpers/generateFieldType.test.js +0 -118
- package/dist/helpers/generateFieldType.test.js.map +0 -1
- package/dist/helpers/generateFile.js +0 -26
- package/dist/helpers/generateFile.js.map +0 -1
- package/dist/helpers/generateFile.test.js +0 -29
- package/dist/helpers/generateFile.test.js.map +0 -1
- package/dist/helpers/generateFiles.js +0 -100
- package/dist/helpers/generateFiles.js.map +0 -1
- package/dist/helpers/generateImplicitManyToManyModels.js +0 -86
- package/dist/helpers/generateImplicitManyToManyModels.js.map +0 -1
- package/dist/helpers/generateImplicitManyToManyModels.test.js +0 -636
- package/dist/helpers/generateImplicitManyToManyModels.test.js.map +0 -1
- package/dist/helpers/generateModel.js +0 -59
- package/dist/helpers/generateModel.js.map +0 -1
- package/dist/helpers/generateModel.test.js +0 -173
- package/dist/helpers/generateModel.test.js.map +0 -1
- package/dist/helpers/generateStringLiteralUnion.js +0 -16
- package/dist/helpers/generateStringLiteralUnion.js.map +0 -1
- package/dist/helpers/generateStringLiteralUnion.test.js +0 -22
- package/dist/helpers/generateStringLiteralUnion.test.js.map +0 -1
- package/dist/helpers/generateTypeOverrideFromDocumentation.js +0 -43
- package/dist/helpers/generateTypeOverrideFromDocumentation.js.map +0 -1
- package/dist/helpers/generateTypeOverrideFromDocumentation.test.js +0 -33
- package/dist/helpers/generateTypeOverrideFromDocumentation.test.js.map +0 -1
- package/dist/helpers/generateTypedReferenceNode.js +0 -12
- package/dist/helpers/generateTypedReferenceNode.js.map +0 -1
- package/dist/helpers/generateTypedReferenceNode.test.js +0 -11
- package/dist/helpers/generateTypedReferenceNode.test.js.map +0 -1
- package/dist/helpers/generatedEnumType.test.js +0 -65
- package/dist/helpers/generatedEnumType.test.js.map +0 -1
- package/dist/helpers/multiSchemaHelpers.js +0 -66
- package/dist/helpers/multiSchemaHelpers.js.map +0 -1
- package/dist/helpers/multiSchemaHelpers.test.js +0 -76
- package/dist/helpers/multiSchemaHelpers.test.js.map +0 -1
- package/dist/helpers/wrappedTypeHelpers.js +0 -27
- package/dist/helpers/wrappedTypeHelpers.js.map +0 -1
- package/dist/helpers/wrappedTypeHelpers.test.js +0 -27
- package/dist/helpers/wrappedTypeHelpers.test.js.map +0 -1
- package/dist/utils/applyJSDocWorkaround.js +0 -8
- package/dist/utils/applyJSDocWorkaround.js.map +0 -1
- package/dist/utils/formatFile.js +0 -53
- package/dist/utils/formatFile.js.map +0 -1
- package/dist/utils/formatFile.test.js +0 -13
- package/dist/utils/formatFile.test.js.map +0 -1
- package/dist/utils/isValidTSIdentifier.js +0 -5
- package/dist/utils/isValidTSIdentifier.js.map +0 -1
- package/dist/utils/normalizeCase.js +0 -12
- package/dist/utils/normalizeCase.js.map +0 -1
- package/dist/utils/normalizeCase.test.js +0 -37
- package/dist/utils/normalizeCase.test.js.map +0 -1
- package/dist/utils/sorted.js +0 -10
- package/dist/utils/sorted.js.map +0 -1
- package/dist/utils/testUtils.js +0 -42
- package/dist/utils/testUtils.js.map +0 -1
- package/dist/utils/validateConfig.js +0 -71
- package/dist/utils/validateConfig.js.map +0 -1
- package/dist/utils/validateConfig.test.js +0 -20
- package/dist/utils/validateConfig.test.js.map +0 -1
- package/dist/utils/words.js +0 -96
- package/dist/utils/words.js.map +0 -1
- package/dist/utils/writeFileSafely.js +0 -24
- 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
|