runlify 0.0.782 → 0.0.786
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/build/index.js +4 -2
- package/build/projectsGeneration/builders/BaseSavableEntityBuilder.js +17 -13
- package/build/projectsGeneration/builders/SystemMetaBuilder.js +27 -3
- package/build/projectsGeneration/builders/buildedTypes.js +1 -1
- package/build/projectsGeneration/builders/storage.js +60 -0
- package/build/projectsGeneration/commonEntities/addCommonCommands.js +22 -4
- package/build/projectsGeneration/defaultCatalogs/{addElasticSearch.js → addExternalSearch.js} +5 -5
- package/build/projectsGeneration/defaultCatalogs/index.js +2 -2
- package/build/projectsGeneration/generateProject/back/generateBack.js +3 -1
- package/build/projectsGeneration/generateProject/back/src/services/generateBackEntityService.js +2 -2
- package/build/projectsGeneration/generateProject/generateBackClickHouseBootstrap.js +16 -0
- package/build/projectsGeneration/generateProject/generateBackElasticBootstrap.js +3 -2
- package/build/projectsGeneration/generateProject/generateEnvironment.js +33 -16
- package/build/projectsGeneration/generators/fileTemplates/back/clickhouse/jobs.js +94 -0
- package/build/projectsGeneration/generators/fileTemplates/back/elastic/jobs.js +15 -3
- package/build/projectsGeneration/generators/fileTemplates/back/environment/src/clients/createPgPrismaClient.js +43 -0
- package/build/projectsGeneration/generators/fileTemplates/back/environment/src/clients/getPrisma.js +139 -20
- package/build/projectsGeneration/generators/fileTemplates/back/environment/src/init/prisma/writeClientPackageStubs.js +39 -0
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/class.js +31 -20
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/config.js +9 -2
- package/build/projectsGeneration/generators/prisma/scheme/genPrismaConfig.js +34 -0
- package/build/projectsGeneration/generators/prisma/scheme/genPrismaConfig.spec.js +28 -0
- package/build/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.js +29 -12
- package/build/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.spec.js +99 -0
- package/build/projectsGeneration/utils/buildPrismaCommands.js +80 -0
- package/build/projectsGeneration/utils/buildPrismaCommands.spec.js +58 -0
- package/build/projectsGeneration/utils/detectPrismaMajorVersion.js +62 -0
- package/build/projectsGeneration/utils/detectPrismaMajorVersion.spec.js +51 -0
- package/build/types/index.d.ts +1 -0
- package/build/types/projectsGeneration/builders/BaseSavableEntityBuilder.d.ts +4 -4
- package/build/types/projectsGeneration/builders/SystemMetaBuilder.d.ts +4 -1
- package/build/types/projectsGeneration/builders/buildedTypes.d.ts +2 -2
- package/build/types/projectsGeneration/builders/storage.d.ts +21 -0
- package/build/types/projectsGeneration/defaultCatalogs/addExternalSearch.d.ts +2 -0
- package/build/types/projectsGeneration/defaultCatalogs/index.d.ts +1 -1
- package/build/types/projectsGeneration/generateProject/generateBackClickHouseBootstrap.d.ts +3 -0
- package/build/types/projectsGeneration/generators/fileTemplates/back/clickhouse/jobs.d.ts +183 -0
- package/build/types/projectsGeneration/generators/fileTemplates/back/environment/src/clients/createPgPrismaClient.d.ts +1 -0
- package/build/types/projectsGeneration/generators/fileTemplates/back/environment/src/clients/getPrisma.d.ts +1 -1
- package/build/types/projectsGeneration/generators/fileTemplates/back/environment/src/init/prisma/writeClientPackageStubs.d.ts +2 -0
- package/build/types/projectsGeneration/generators/fileTemplates/back/services/entity/class.d.ts +1 -1
- package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaConfig.d.ts +13 -0
- package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaConfig.spec.d.ts +1 -0
- package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.d.ts +3 -1
- package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.spec.d.ts +1 -0
- package/build/types/projectsGeneration/utils/buildPrismaCommands.d.ts +11 -0
- package/build/types/projectsGeneration/utils/buildPrismaCommands.spec.d.ts +1 -0
- package/build/types/projectsGeneration/utils/detectPrismaMajorVersion.d.ts +2 -0
- package/build/types/projectsGeneration/utils/detectPrismaMajorVersion.spec.d.ts +1 -0
- package/package.json +9 -1
- package/build/types/projectsGeneration/defaultCatalogs/addElasticSearch.d.ts +0 -2
package/build/projectsGeneration/generators/fileTemplates/back/environment/src/clients/getPrisma.js
CHANGED
|
@@ -3,19 +3,65 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.prismaGetterTmpl = void 0;
|
|
4
4
|
const change_case_1 = require("change-case");
|
|
5
5
|
const cases_1 = require("../../../../../../../utils/cases");
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
.join('\n');
|
|
13
|
-
const extraGetters = otherDbs.map((db) => {
|
|
14
|
-
const p = (0, cases_1.pascal)(db);
|
|
15
|
-
const writeKey = (0, change_case_1.camelCase)(`database.${db}.write.uri`);
|
|
16
|
-
const readUriKey = (0, change_case_1.camelCase)(`database.${db}.readOnly.uri`);
|
|
17
|
-
const readEnabledKey = (0, change_case_1.camelCase)(`database.${db}.readOnly.enabled`);
|
|
6
|
+
const buildExtraGetter = (db, p7) => {
|
|
7
|
+
const p = (0, cases_1.pascal)(db);
|
|
8
|
+
const writeKey = (0, change_case_1.camelCase)(`database.${db}.write.uri`);
|
|
9
|
+
const readUriKey = (0, change_case_1.camelCase)(`database.${db}.readOnly.uri`);
|
|
10
|
+
const readEnabledKey = (0, change_case_1.camelCase)(`database.${db}.readOnly.enabled`);
|
|
11
|
+
if (p7) {
|
|
18
12
|
return `
|
|
13
|
+
const prisma${p}ByUri = new Map<string, PrismaClient${p}>();
|
|
14
|
+
|
|
15
|
+
export const getPrisma${p} = async (connectionType: 'write' | 'readOnly') => {
|
|
16
|
+
const {
|
|
17
|
+
${writeKey}: writeUri,
|
|
18
|
+
${readUriKey}: readOnlyUri,
|
|
19
|
+
${readEnabledKey}: readOnlyEnabled,
|
|
20
|
+
} = await getConfig();
|
|
21
|
+
|
|
22
|
+
let uri: string;
|
|
23
|
+
|
|
24
|
+
if (connectionType === 'write') {
|
|
25
|
+
uri = writeUri;
|
|
26
|
+
} else {
|
|
27
|
+
if (!readOnlyEnabled) {
|
|
28
|
+
const msg = 'Read only database connection cannot be used with the database.${db}.readOnly.enabled is not true';
|
|
29
|
+
return new Proxy({} as any, {
|
|
30
|
+
get(_target: PrismaClient${p}, property: string | symbol) {
|
|
31
|
+
if (property === 'then') {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
if (property === '$disconnect') {
|
|
35
|
+
return () => log.info('noop $disconnect');
|
|
36
|
+
}
|
|
37
|
+
log.error(\`getPrisma${p}: \${property.toString()}\`);
|
|
38
|
+
log.error(msg);
|
|
39
|
+
throw new Error(msg);
|
|
40
|
+
},
|
|
41
|
+
apply: () => {
|
|
42
|
+
log.error('apply');
|
|
43
|
+
log.error(msg);
|
|
44
|
+
throw new Error(msg);
|
|
45
|
+
},
|
|
46
|
+
}) as PrismaClient${p};
|
|
47
|
+
}
|
|
48
|
+
if (!readOnlyUri) {
|
|
49
|
+
throw new Error('database.${db}.readOnly.uri must be set');
|
|
50
|
+
}
|
|
51
|
+
uri = readOnlyUri;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
let prisma${p} = prisma${p}ByUri.get(uri);
|
|
55
|
+
if (!prisma${p}) {
|
|
56
|
+
prisma${p} = createPgPrismaClient(PrismaClient${p}, uri);
|
|
57
|
+
prisma${p}ByUri.set(uri, prisma${p});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return prisma${p};
|
|
61
|
+
};
|
|
62
|
+
`;
|
|
63
|
+
}
|
|
64
|
+
return `
|
|
19
65
|
let prisma${p}: PrismaClient${p} | null = null;
|
|
20
66
|
|
|
21
67
|
export const getPrisma${p} = async (connectionType: 'write' | 'readOnly') => {
|
|
@@ -70,13 +116,74 @@ export const getPrisma${p} = async (connectionType: 'write' | 'readOnly') => {
|
|
|
70
116
|
return prisma${p};
|
|
71
117
|
};
|
|
72
118
|
`;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
119
|
+
};
|
|
120
|
+
const prismaGetterTmpl = (args, prismaMajor) => {
|
|
121
|
+
const p7 = (prismaMajor !== null && prismaMajor !== void 0 ? prismaMajor : 6) >= 7;
|
|
122
|
+
const otherDbs = args.system.dataBases
|
|
123
|
+
.map((d) => d.name)
|
|
124
|
+
.filter((d) => d !== 'main');
|
|
125
|
+
const extraImports = otherDbs
|
|
126
|
+
.map((db) => `import {PrismaClient as PrismaClient${(0, cases_1.pascal)(db)}} from '${p7 ? `@prisma/${db}/client` : `../../prisma/databases/${db}/client`}';`)
|
|
127
|
+
.join('\n');
|
|
128
|
+
const extraGetters = otherDbs.map((db) => buildExtraGetter(db, p7)).join('');
|
|
129
|
+
const mainGetter = p7
|
|
130
|
+
? `
|
|
131
|
+
const prismaByUri = new Map<string, PrismaClient>();
|
|
132
|
+
|
|
133
|
+
export const getPrisma = async (connectionType: 'write' | 'readOnly') => {
|
|
134
|
+
const {
|
|
135
|
+
databaseMainWriteUri,
|
|
136
|
+
databaseMainReadOnlyUri,
|
|
137
|
+
databaseMainReadOnlyEnabled,
|
|
138
|
+
} = await getConfig();
|
|
139
|
+
|
|
140
|
+
let uri: string;
|
|
141
|
+
|
|
142
|
+
if (connectionType === 'write') {
|
|
143
|
+
uri = databaseMainWriteUri;
|
|
144
|
+
} else {
|
|
145
|
+
if (!databaseMainReadOnlyEnabled) {
|
|
146
|
+
const msg = 'Read only database connection cannot be used with the database.main.readOnly.enabled is not true';
|
|
147
|
+
return new Proxy({} as any, {
|
|
148
|
+
get(_target: PrismaClient, property: string | symbol) {
|
|
149
|
+
if (property === 'then') {
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (property === '$disconnect') {
|
|
154
|
+
return () => log.info('noop $disconnect');
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
log.error(\`get: \${property.toString()}\`);
|
|
79
158
|
|
|
159
|
+
log.error(msg);
|
|
160
|
+
throw new Error(msg);
|
|
161
|
+
},
|
|
162
|
+
apply: () => {
|
|
163
|
+
log.error('apply');
|
|
164
|
+
log.error(msg);
|
|
165
|
+
throw new Error(msg);
|
|
166
|
+
},
|
|
167
|
+
}) as PrismaClient;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
if (!databaseMainReadOnlyUri) {
|
|
171
|
+
throw new Error('database.main.readOnly.uri must be set');
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
uri = databaseMainReadOnlyUri;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
let prisma = prismaByUri.get(uri);
|
|
178
|
+
if (!prisma) {
|
|
179
|
+
prisma = createPgPrismaClient(PrismaClient, uri);
|
|
180
|
+
prismaByUri.set(uri, prisma);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
return prisma;
|
|
184
|
+
};
|
|
185
|
+
`
|
|
186
|
+
: `
|
|
80
187
|
let prisma: PrismaClient | null = null;
|
|
81
188
|
|
|
82
189
|
export const getPrisma = async (connectionType: 'write' | 'readOnly') => {
|
|
@@ -137,8 +244,20 @@ export const getPrisma = async (connectionType: 'write' | 'readOnly') => {
|
|
|
137
244
|
|
|
138
245
|
return prisma;
|
|
139
246
|
};
|
|
140
|
-
|
|
247
|
+
`;
|
|
248
|
+
const p7Imports = p7
|
|
249
|
+
? `import {createPgPrismaClient} from './createPgPrismaClient';
|
|
250
|
+
`
|
|
251
|
+
: `import {addParamsToDatabaseUri} from '../utils/addParamsToPgUri';
|
|
252
|
+
`;
|
|
253
|
+
return `import {PrismaClient} from '@prisma/client';
|
|
254
|
+
${extraImports}
|
|
255
|
+
import {getConfig} from '../config';
|
|
256
|
+
import log from '../log';
|
|
257
|
+
${p7Imports}
|
|
258
|
+
${mainGetter}
|
|
259
|
+
${extraGetters}
|
|
141
260
|
`;
|
|
142
261
|
};
|
|
143
262
|
exports.prismaGetterTmpl = prismaGetterTmpl;
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UHJpc21hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0b3JzL2ZpbGVUZW1wbGF0ZXMvYmFjay9lbnZpcm9ubWVudC9zcmMvY2xpZW50cy9nZXRQcmlzbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXFDO0FBQ3JDLDREQUF1RDtBQUd2RCxNQUFNLGdCQUFnQixHQUFHLENBQ3ZCLEVBQVUsRUFDVixFQUFXLEVBQ0gsRUFBRTtJQUNWLE1BQU0sQ0FBQyxHQUFHLElBQUEsY0FBTSxFQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3BCLE1BQU0sUUFBUSxHQUFHLElBQUEsdUJBQVMsRUFBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDdEQsTUFBTSxVQUFVLEdBQUcsSUFBQSx1QkFBUyxFQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQTtJQUMzRCxNQUFNLGNBQWMsR0FBRyxJQUFBLHVCQUFTLEVBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDLENBQUE7SUFFbkUsSUFBSSxFQUFFLEVBQUU7UUFDTixPQUFPO2NBQ0csQ0FBQyx1Q0FBdUMsQ0FBQzs7d0JBRS9CLENBQUM7O01BRW5CLFFBQVE7TUFDUixVQUFVO01BQ1YsY0FBYzs7Ozs7Ozs7O29GQVNnRSxFQUFFOzttQ0FFbkQsQ0FBQzs7Ozs7OztpQ0FPSCxDQUFDOzs7Ozs7Ozs7MEJBU1IsQ0FBQzs7O2tDQUdPLEVBQUU7Ozs7O2NBS3RCLENBQUMsWUFBWSxDQUFDO2VBQ2IsQ0FBQztZQUNKLENBQUMsdUNBQXVDLENBQUM7WUFDekMsQ0FBQyx3QkFBd0IsQ0FBQzs7O2lCQUdyQixDQUFDOztDQUVqQixDQUFBO0tBQ0U7SUFFRCxPQUFPO1lBQ0csQ0FBQyxpQkFBaUIsQ0FBQzs7d0JBRVAsQ0FBQzs7TUFFbkIsUUFBUTtNQUNSLFVBQVU7TUFDVixjQUFjOzs7Ozs7Ozs7b0ZBU2dFLEVBQUU7O21DQUVuRCxDQUFDOzs7Ozs7O2lDQU9ILENBQUM7Ozs7Ozs7OzswQkFTUixDQUFDOzs7a0NBR08sRUFBRTs7Ozs7ZUFLckIsQ0FBQztZQUNKLENBQUMsc0JBQXNCLENBQUM7Ozs7Ozs7OztpQkFTbkIsQ0FBQzs7Q0FFakIsQ0FBQTtBQUNELENBQUMsQ0FBQTtBQUVNLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUErQixFQUFFLFdBQW9CLEVBQUUsRUFBRTtJQUN4RixNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQVcsYUFBWCxXQUFXLGNBQVgsV0FBVyxHQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7U0FDbkMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2xCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFBO0lBRTlCLE1BQU0sWUFBWSxHQUFHLFFBQVE7U0FDMUIsR0FBRyxDQUNGLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDTCx1Q0FBdUMsSUFBQSxjQUFNLEVBQzNDLEVBQUUsQ0FDSCxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLEVBQUUsU0FBUyxJQUFJLENBQ3RGO1NBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRWIsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRTVFLE1BQU0sVUFBVSxHQUFHLEVBQUU7UUFDbkIsQ0FBQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBdURMO1FBQ0csQ0FBQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNkRMLENBQUE7SUFFQyxNQUFNLFNBQVMsR0FBRyxFQUFFO1FBQ2xCLENBQUMsQ0FBQztDQUNMO1FBQ0csQ0FBQyxDQUFDO0NBQ0wsQ0FBQTtJQUVDLE9BQU87RUFDUCxZQUFZOzs7RUFHWixTQUFTO0VBQ1QsVUFBVTtFQUNWLFlBQVk7Q0FDYixDQUFBO0FBQ0QsQ0FBQyxDQUFBO0FBdkpZLFFBQUEsZ0JBQWdCLG9CQXVKNUIifQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.writeClientPackageStubsTmpl = void 0;
|
|
4
|
+
const writeClientPackageStubsTmpl = (args) => {
|
|
5
|
+
const extraDbs = args.system.dataBases
|
|
6
|
+
.map((d) => d.name)
|
|
7
|
+
.filter((d) => d !== 'main');
|
|
8
|
+
return `import {existsSync, writeFileSync} from 'node:fs';
|
|
9
|
+
import {join} from 'node:path';
|
|
10
|
+
|
|
11
|
+
const extraDatabases = ${JSON.stringify(extraDbs)};
|
|
12
|
+
|
|
13
|
+
const writeStub = (dir: string, packageName: string): void => {
|
|
14
|
+
const clientTs = join(dir, 'client.ts');
|
|
15
|
+
if (!existsSync(clientTs)) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
writeFileSync(
|
|
19
|
+
join(dir, 'package.json'),
|
|
20
|
+
JSON.stringify({name: packageName, types: './client.ts'}) + '\\n',
|
|
21
|
+
);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const shardsOnly = process.argv.includes('--shards-only');
|
|
25
|
+
|
|
26
|
+
if (shardsOnly) {
|
|
27
|
+
writeStub('prisma/shards/build', '@prisma/shards/build');
|
|
28
|
+
} else {
|
|
29
|
+
for (const db of extraDatabases) {
|
|
30
|
+
writeStub(
|
|
31
|
+
join('prisma', 'databases', db, 'client'),
|
|
32
|
+
\`@prisma/\${db}/client\`,
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
`;
|
|
37
|
+
};
|
|
38
|
+
exports.writeClientPackageStubsTmpl = writeClientPackageStubsTmpl;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVDbGllbnRQYWNrYWdlU3R1YnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvZmlsZVRlbXBsYXRlcy9iYWNrL2Vudmlyb25tZW50L3NyYy9pbml0L3ByaXNtYS93cml0ZUNsaWVudFBhY2thZ2VTdHVicy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFTyxNQUFNLDJCQUEyQixHQUFHLENBQUMsSUFBK0IsRUFBVSxFQUFFO0lBQ3JGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztTQUNuQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUE7SUFFOUIsT0FBTzs7O3lCQUdnQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXlCaEQsQ0FBQTtBQUNELENBQUMsQ0FBQTtBQWxDWSxRQUFBLDJCQUEyQiwrQkFrQ3ZDIn0=
|
|
@@ -4,7 +4,9 @@ exports.prismaServiceBaseClassTmpl = void 0;
|
|
|
4
4
|
const cases_1 = require("../../../../../../utils/cases");
|
|
5
5
|
const pluralize_1 = require("pluralize");
|
|
6
6
|
const utils_1 = require("../../../../../utils");
|
|
7
|
-
const
|
|
7
|
+
const detectPrismaMajorVersion_1 = require("../../../../../utils/detectPrismaMajorVersion");
|
|
8
|
+
const storage_1 = require("../../../../../builders/storage");
|
|
9
|
+
const prismaServiceBaseClassTmpl = ({ entity, options, }) => {
|
|
8
10
|
const contextName = 'Context';
|
|
9
11
|
const forbiddenForUserFields = entity.fields.filter((f) => !f.updatableByUser && f.name !== 'search');
|
|
10
12
|
const requiredForDbButNotForUserFields = entity.fields.filter((f) => f.required && !f.requiredOnInput && f.name !== 'id');
|
|
@@ -13,43 +15,46 @@ const prismaServiceBaseClassTmpl = ({ entity, }) => {
|
|
|
13
15
|
.filter((f) => !f.hidden);
|
|
14
16
|
const isSharded = entity.sharded && entity.database === 'main';
|
|
15
17
|
const prismaCtxKey = entity.database === 'main' ? 'prisma' : `prisma${(0, cases_1.pascal)(entity.database)}`;
|
|
16
|
-
const
|
|
18
|
+
const storage = entity.storage;
|
|
19
|
+
const isHybridExternalSearch = (0, storage_1.isStorageExternalSearch)(storage);
|
|
20
|
+
const searchPrefix = (0, storage_1.getSearchServicePrefix)(storage);
|
|
17
21
|
const isDocument = entity.type === 'document';
|
|
18
22
|
const isSumRegistry = entity.type === 'sumRegistry';
|
|
19
23
|
const isInfoRegistry = entity.type === 'infoRegistry';
|
|
20
24
|
const isClearFromDB = entity.clearDBAfter.length > 0;
|
|
21
|
-
const isPrismaDelegatable =
|
|
25
|
+
const isPrismaDelegatable = (0, storage_1.usesPrismaDelegate)(storage) && !isSharded;
|
|
26
|
+
const isExternalStoreOnly = (0, storage_1.isStorageElasticOnly)(storage) || (0, storage_1.isStorageClickHouseOnly)(storage);
|
|
22
27
|
let extendedType = 'BaseService';
|
|
23
|
-
if (
|
|
24
|
-
extendedType =
|
|
28
|
+
if (isHybridExternalSearch && searchPrefix) {
|
|
29
|
+
extendedType = `${searchPrefix}BaseSearch`;
|
|
25
30
|
}
|
|
26
31
|
if (isSharded) {
|
|
27
32
|
extendedType = 'ShardsService';
|
|
28
33
|
}
|
|
29
34
|
if (isDocument) {
|
|
30
35
|
extendedType = 'DocumentBaseService';
|
|
31
|
-
if (
|
|
32
|
-
extendedType =
|
|
36
|
+
if (isHybridExternalSearch && searchPrefix) {
|
|
37
|
+
extendedType = `${searchPrefix}DocumentBaseService`;
|
|
33
38
|
}
|
|
34
39
|
}
|
|
35
40
|
if (isSumRegistry) {
|
|
36
41
|
extendedType = 'SumRegistryService';
|
|
37
|
-
if (
|
|
38
|
-
extendedType =
|
|
42
|
+
if (isHybridExternalSearch && searchPrefix) {
|
|
43
|
+
extendedType = `${searchPrefix}SumRegistryService`;
|
|
39
44
|
}
|
|
40
45
|
}
|
|
41
46
|
if (isInfoRegistry) {
|
|
42
47
|
extendedType = 'InfoRegistryService';
|
|
43
|
-
if (
|
|
44
|
-
extendedType =
|
|
48
|
+
if (isHybridExternalSearch && searchPrefix) {
|
|
49
|
+
extendedType = `${searchPrefix}InfoRegistryService`;
|
|
45
50
|
}
|
|
46
51
|
}
|
|
47
52
|
if (isSharded) {
|
|
48
53
|
extendedType = 'ShardsService';
|
|
49
|
-
if (
|
|
50
|
-
extendedType =
|
|
54
|
+
if (isHybridExternalSearch && searchPrefix) {
|
|
55
|
+
extendedType = `${searchPrefix}ShardsService`;
|
|
51
56
|
if (isClearFromDB) {
|
|
52
|
-
extendedType =
|
|
57
|
+
extendedType = `${searchPrefix}ClearDBShardsService`;
|
|
53
58
|
}
|
|
54
59
|
}
|
|
55
60
|
if (isDocument) {
|
|
@@ -59,9 +64,12 @@ const prismaServiceBaseClassTmpl = ({ entity, }) => {
|
|
|
59
64
|
}
|
|
60
65
|
}
|
|
61
66
|
}
|
|
62
|
-
if (
|
|
67
|
+
if ((0, storage_1.isStorageElasticOnly)(storage)) {
|
|
63
68
|
extendedType = 'ElasticOnlyService';
|
|
64
69
|
}
|
|
70
|
+
if ((0, storage_1.isStorageClickHouseOnly)(storage)) {
|
|
71
|
+
extendedType = 'ClickHouseOnlyService';
|
|
72
|
+
}
|
|
65
73
|
const additionalImports = [];
|
|
66
74
|
let registries = '';
|
|
67
75
|
if (isDocument) {
|
|
@@ -78,9 +86,12 @@ export interface ${(0, cases_1.pascalSingular)(document.name)}RegistryEntries {$
|
|
|
78
86
|
`;
|
|
79
87
|
}
|
|
80
88
|
if (isPrismaDelegatable) {
|
|
89
|
+
const isPrisma7 = (0, detectPrismaMajorVersion_1.detectPrismaMajorVersion)(options.detachedBackProject) >= 7;
|
|
81
90
|
const prismaMod = entity.database === 'main'
|
|
82
91
|
? '@prisma/client'
|
|
83
|
-
:
|
|
92
|
+
: isPrisma7
|
|
93
|
+
? `@prisma/${entity.database}/client`
|
|
94
|
+
: `../../../../prisma/databases/${entity.database}/client`;
|
|
84
95
|
additionalImports.push(`import {Prisma} from '${prismaMod}';`);
|
|
85
96
|
}
|
|
86
97
|
const serviceName = `${(0, cases_1.pascal)(entity.name)}Service`;
|
|
@@ -89,7 +100,7 @@ export interface ${(0, cases_1.pascalSingular)(document.name)}RegistryEntries {$
|
|
|
89
100
|
MutationUpdate${(0, cases_1.pascalSingular)(entity.name)}Args,
|
|
90
101
|
MutationRemove${(0, cases_1.pascalSingular)(entity.name)}Args,
|
|
91
102
|
QueryAll${(0, cases_1.pascalPlural)(entity.name)}Args,
|
|
92
|
-
${(0, cases_1.pascalSingular)(entity.name)},${
|
|
103
|
+
${(0, cases_1.pascalSingular)(entity.name)},${isHybridExternalSearch ? `
|
|
93
104
|
External${(0, cases_1.pascal)(entity.name)}SearchTracking,` : ''}
|
|
94
105
|
} from '../../../generated/graphql';
|
|
95
106
|
import {${contextName}} from '../types';
|
|
@@ -143,7 +154,7 @@ export class ${serviceName} extends ${extendedType}<
|
|
|
143
154
|
QueryAll${(0, cases_1.pascalPlural)(entity.name)}Args,
|
|
144
155
|
Autodefinable${(0, cases_1.pascalSingular)(entity.name)}Keys,
|
|
145
156
|
ForbidenForUser${(0, cases_1.pascalSingular)(entity.name)}Keys,
|
|
146
|
-
RequiredDbNotUser${(0, cases_1.pascalSingular)(entity.name)}Keys${
|
|
157
|
+
RequiredDbNotUser${(0, cases_1.pascalSingular)(entity.name)}Keys${isHybridExternalSearch ? `,
|
|
147
158
|
External${(0, cases_1.pascal)(entity.name)}SearchTracking` : ''}${isDocument ? `,
|
|
148
159
|
${(0, cases_1.pascalSingular)(entity.name)}RegistryEntries` : ''}${isPrismaDelegatable ? `,
|
|
149
160
|
Prisma.${(0, cases_1.pascalSingular)(entity.name)}Delegate<any>` : ''}
|
|
@@ -152,7 +163,7 @@ export class ${serviceName} extends ${extendedType}<
|
|
|
152
163
|
|
|
153
164
|
constructor(public override ctx: Context) {
|
|
154
165
|
super(ctx,${isSharded ? ` '${(0, cases_1.camelSingular)(entity.name)}'${entity.externalSearchName ? `, 'external${(0, cases_1.pascal)(entity.name)}SearchTracking'` : ''},`
|
|
155
|
-
:
|
|
166
|
+
: isExternalStoreOnly ? '' : ` ctx.${prismaCtxKey}.${(0, cases_1.camelSingular)(entity.name)},${isHybridExternalSearch ? ` ctx.${prismaCtxKey}.external${(0, cases_1.pascal)(entity.name)}SearchTracking,` : ''}`} config);
|
|
156
167
|
initBuiltInHooks(this);
|
|
157
168
|
initUserHooks(this);${getDefaultableFields().length > 0 ? `
|
|
158
169
|
|
|
@@ -182,4 +193,4 @@ ${(0, utils_1.pad)(4)(getDefaultableFields()
|
|
|
182
193
|
`;
|
|
183
194
|
};
|
|
184
195
|
exports.prismaServiceBaseClassTmpl = prismaServiceBaseClassTmpl;
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvZmlsZVRlbXBsYXRlcy9iYWNrL3NlcnZpY2VzL2VudGl0eS9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFLc0M7QUFDdEMseUNBQWtDO0FBRWxDLGdEQUFnRTtBQUd6RCxNQUFNLDBCQUEwQixHQUFHLENBQUMsRUFDekMsTUFBTSxHQUNtQixFQUFFLEVBQUU7SUFDN0IsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFBO0lBRTdCLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ2pELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQ2pELENBQUE7SUFDRCxNQUFNLGdDQUFnQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUMzRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQzNELENBQUE7SUFFRCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsRUFBRSxDQUNoQyxNQUFNLENBQUMsTUFBTTtTQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDO1NBQzlDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFN0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQztJQUMvRCxNQUFNLFlBQVksR0FDaEIsTUFBTSxDQUFDLFFB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
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvZmlsZVRlbXBsYXRlcy9iYWNrL3NlcnZpY2VzL2VudGl0eS9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFLc0M7QUFDdEMseUNBQWtDO0FBRWxDLGdEQUFnRTtBQUVoRSw0RkFBc0Y7QUFDdEYsNkRBTXdDO0FBRWpDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxFQUN6QyxNQUFNLEVBQ04sT0FBTyxHQUNrQixFQUFFLEVBQUU7SUFDN0IsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFBO0lBRTdCLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ2pELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQ2pELENBQUE7SUFDRCxNQUFNLGdDQUFnQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUMzRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQzNELENBQUE7SUFFRCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsRUFBRSxDQUNoQyxNQUFNLENBQUMsTUFBTTtTQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDO1NBQzlDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFN0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQztJQUMvRCxNQUFNLFlBQVksR0FDaEIsTUFBTSxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFBLGNBQU0sRUFBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUM3RSxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQy9CLE1BQU0sc0JBQXNCLEdBQUcsSUFBQSxpQ0FBdUIsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUNoRSxNQUFNLFlBQVksR0FBRyxJQUFBLGdDQUFzQixFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0lBQzlDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDO0lBQ3BELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDO0lBQ3RELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNyRCxNQUFNLG1CQUFtQixHQUFHLElBQUEsNEJBQWtCLEVBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdEUsTUFBTSxtQkFBbUIsR0FBRyxJQUFBLDhCQUFvQixFQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUEsaUNBQXVCLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFFOUYsSUFBSSxZQUFZLEdBQUcsYUFBYSxDQUFDO0lBQ2pDLElBQUksc0JBQXNCLElBQUksWUFBWSxFQUFFO1FBQzFDLFlBQVksR0FBRyxHQUFHLFlBQVksWUFBWSxDQUFDO0tBQzVDO0lBQ0QsSUFBSSxTQUFTLEVBQUU7UUFDYixZQUFZLEdBQUcsZUFBZSxDQUFDO0tBQ2hDO0lBRUQsSUFBSSxVQUFVLEVBQUU7UUFDZCxZQUFZLEdBQUcscUJBQXFCLENBQUM7UUFDckMsSUFBSSxzQkFBc0IsSUFBSSxZQUFZLEVBQUU7WUFDMUMsWUFBWSxHQUFHLEdBQUcsWUFBWSxxQkFBcUIsQ0FBQztTQUNyRDtLQUNGO0lBRUQsSUFBSSxhQUFhLEVBQUU7UUFDakIsWUFBWSxHQUFHLG9CQUFvQixDQUFDO1FBQ3BDLElBQUksc0JBQXNCLElBQUksWUFBWSxFQUFFO1lBQzFDLFlBQVksR0FBRyxHQUFHLFlBQVksb0JBQW9CLENBQUM7U0FDcEQ7S0FDRjtJQUVELElBQUksY0FBYyxFQUFFO1FBQ2xCLFlBQVksR0FBRyxxQkFBcUIsQ0FBQztRQUNyQyxJQUFJLHNCQUFzQixJQUFJLFlBQVksRUFBRTtZQUMxQyxZQUFZLEdBQUcsR0FBRyxZQUFZLHFCQUFxQixDQUFDO1NBQ3JEO0tBQ0Y7SUFFRCxJQUFJLFNBQVMsRUFBRTtRQUNiLFlBQVksR0FBRyxlQUFlLENBQUM7UUFDL0IsSUFBSSxzQkFBc0IsSUFBSSxZQUFZLEVBQUU7WUFDMUMsWUFBWSxHQUFHLEdBQUcsWUFBWSxlQUFlLENBQUM7WUFDOUMsSUFBSSxhQUFhLEVBQUU7Z0JBQ2pCLFlBQVksR0FBRyxHQUFHLFlBQVksc0JBQXNCLENBQUM7YUFDdEQ7U0FDRjtRQUNELElBQUksVUFBVSxFQUFFO1lBQ2QsWUFBWSxHQUFHLHVCQUF1QixDQUFDO1lBQ3ZDLElBQUksYUFBYSxFQUFFO2dCQUNqQixZQUFZLEdBQUcsOEJBQThCLENBQUM7YUFDL0M7U0FDRjtLQUNGO0lBRUQsSUFBSSxJQUFBLDhCQUFvQixFQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2pDLFlBQVksR0FBRyxvQkFBb0IsQ0FBQztLQUNyQztJQUVELElBQUksSUFBQSxpQ0FBdUIsRUFBQyxPQUFPLENBQUMsRUFBRTtRQUNwQyxZQUFZLEdBQUcsdUJBQXVCLENBQUM7S0FDeEM7SUFFRCxNQUFNLGlCQUFpQixHQUFhLEVBQUUsQ0FBQztJQUN2QyxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFFcEIsSUFBSSxVQUFVLEVBQUU7UUFDZCxNQUFNLFFBQVEsR0FBRyxNQUFrQixDQUFDO1FBRXBDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUMvQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsdUJBQXVCLElBQUEsc0JBQWMsRUFBQyxRQUFRLENBQUMsa0JBQWtCLElBQUEsb0JBQVksRUFBQyxRQUFRLENBQUMsV0FBVyxJQUFBLG9CQUFZLEVBQUMsUUFBUSxDQUFDLFdBQVcsQ0FDbEosQ0FBQyxDQUFDO1FBRUgsVUFBVSxHQUFHO21CQUNFLElBQUEsc0JBQWMsRUFBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUMxQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVTtpQkFDbEIsR0FBRyxDQUNGLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztJQUN0QixJQUFBLG9CQUFRLEVBQUMsUUFBUSxDQUFDLGlCQUFpQixJQUFBLHNCQUFjLEVBQUMsUUFBUSxDQUFDLFNBQVMsQ0FDN0Q7aUJBQ0EsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNYLENBQUMsQ0FBQyxFQUNOOztDQUVILENBQUM7S0FDQztJQUVELElBQUksbUJBQW1CLEVBQUU7UUFDdkIsTUFBTSxTQUFTLEdBQUcsSUFBQSxtREFBd0IsRUFBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDNUUsTUFBTSxTQUFTLEdBQ2IsTUFBTSxDQUFDLFFBQVEsS0FBSyxNQUFNO1lBQ3hCLENBQUMsQ0FBQyxnQkFBZ0I7WUFDbEIsQ0FBQyxDQUFDLFNBQVM7Z0JBQ1QsQ0FBQyxDQUFDLFdBQVcsTUFBTSxDQUFDLFFBQVEsU0FBUztnQkFDckMsQ0FBQyxDQUFDLGdDQUFnQyxNQUFNLENBQUMsUUFBUSxTQUFTLENBQUM7UUFDakUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLHlCQUF5QixTQUFTLElBQUksQ0FBQyxDQUFDO0tBQ2hFO0lBRUQsTUFBTSxXQUFXLEdBQUcsR0FBRyxJQUFBLGNBQU0sRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQTtJQUVuRCxPQUFPO2tCQUNTLElBQUEsc0JBQWMsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2tCQUMzQixJQUFBLHNCQUFjLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztrQkFDM0IsSUFBQSxzQkFBYyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDakMsSUFBQSxvQkFBWSxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDakMsSUFBQSxzQkFBYyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7WUFDaEQsSUFBQSxjQUFNLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRTs7VUFFM0MsV0FBVzs7O1VBR1gsWUFBWSwwQkFBMEIsWUFBWSxLQUFLLG9CQUFvQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzs0QkFDckUsQ0FBQyxDQUFDLENBQUMsRUFBRTs7O21HQUdrRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6SCxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsb0JBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtFQUVuRCxNQUFNLENBQUMsSUFBSSxLQUFLLGNBQWMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLGFBQWE7UUFDL0QsQ0FBQyxDQUFDO21CQUNXLElBQUEsb0JBQVksRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFBLG9CQUFZLEVBQ3BFLE1BQU0sQ0FBQyxJQUFJLENBQ1o7Q0FDTjtRQUNLLENBQUMsQ0FBQyxFQUNOOzJCQUN5QixJQUFBLHNCQUFjLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUNsRCxvQkFBb0IsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxHQUFHLG9CQUFvQixFQUFFO2FBQ3hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7YUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ2hCLENBQUMsQ0FBQyxPQUNOOzZCQUMyQixJQUFBLHNCQUFjLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUNwRCxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUMvQixDQUFDLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ25FLENBQUMsQ0FBQyxPQUNOOytCQUM2QixJQUFBLHNCQUFjLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUN0RCxnQ0FBZ0MsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUN6QyxDQUFDLENBQUMsR0FBRyxnQ0FBZ0M7YUFDbEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQzthQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDaEIsQ0FBQyxDQUFDLE9BQ047OzJCQUV5QixJQUFBLHNCQUFjLEVBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQ1osMkNBQTJDLElBQUEsc0JBQWMsRUFDeEQsTUFBTSxDQUFDLElBQUksQ0FDWixzQkFBc0IsSUFBQSxzQkFBYyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7O3NCQUU5QixJQUFBLHNCQUFjLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzt1QkFDMUIsSUFBQSxzQkFBYyxFQUNqQyxNQUFNLENBQUMsSUFBSSxDQUNaLHdCQUF3QixJQUFBLHNCQUFjLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzttQkFDbkMsSUFBQSxzQkFBYyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7O3FCQUV6QixJQUFBLHNCQUFjLEVBQy9CLE1BQU0sQ0FBQyxJQUFJLENBQ1osMkNBQTJDLElBQUEsc0JBQWMsRUFDeEQsTUFBTSxDQUFDLElBQUksQ0FDWix3QkFBd0IsSUFBQSxzQkFBYyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7OzBCQUU1QixJQUFBLHNCQUFjLEVBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQ1osOENBQThDLElBQUEsc0JBQWMsRUFDM0QsTUFBTSxDQUFDLElBQUksQ0FDWiwwQkFBMEIsSUFBQSxzQkFBYyxFQUN2QyxNQUFNLENBQUMsSUFBSSxDQUNaLHdCQUF3QixJQUFBLHNCQUFjLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzswQkFDNUIsSUFBQSxzQkFBYyxFQUNwQyxNQUFNLENBQUMsSUFBSSxDQUNaLDhDQUE4QyxJQUFBLHNCQUFjLEVBQzNELE1BQU0sQ0FBQyxJQUFJLENBQ1osMEJBQTBCLElBQUEsc0JBQWMsRUFDdkMsTUFBTSxDQUFDLElBQUksQ0FDWix3QkFBd0IsSUFBQSxzQkFBYyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7OzBCQUU1QixJQUFBLHNCQUFjLEVBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQ1osZ0VBQWdFLElBQUEsc0JBQWMsRUFDN0UsTUFBTSxDQUFDLElBQUksQ0FDWixzQkFBc0IsSUFBQSxzQkFBYyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7NEJBQ3hCLElBQUEsc0JBQWMsRUFDdEMsTUFBTSxDQUFDLElBQUksQ0FDWixrRUFBa0UsSUFBQSxzQkFBYyxFQUMvRSxNQUFNLENBQUMsSUFBSSxDQUNaLHNCQUFzQixJQUFBLHNCQUFjLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzs0QkFDeEIsSUFBQSxzQkFBYyxFQUN0QyxNQUFNLENBQUMsSUFBSSxDQUNaLGtFQUFrRSxJQUFBLHNCQUFjLEVBQy9FLE1BQU0sQ0FBQyxJQUFJLENBQ1osc0JBQXNCLElBQUEsc0JBQWMsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0VBQ2xELFVBQVU7ZUFDRyxXQUFXLFlBQVksWUFBWTtJQUM5QyxJQUFBLHNCQUFjLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztrQkFDYixJQUFBLHNCQUFjLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztrQkFDM0IsSUFBQSxzQkFBYyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7a0JBQzNCLElBQUEsc0JBQWMsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2pDLElBQUEsb0JBQVksRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2lCQUNwQixJQUFBLHNCQUFjLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzttQkFDekIsSUFBQSxzQkFBYyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7cUJBQ3pCLElBQUEsc0JBQWMsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLElBQUEsY0FBTSxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLElBQUEsc0JBQWMsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1dBQ25FLElBQUEsc0JBQWMsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRTs7Z0NBRTFCLFdBQVc7OztnQkFHM0IsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUEscUJBQWEsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxjQUFjLElBQUEsY0FBTSxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRztRQUNqSixDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxZQUFZLElBQUksSUFBQSxxQkFBYSxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsUUFBUSxZQUFZLFlBQVksSUFBQSxjQUFNLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFOzswQkFFakssb0JBQW9CLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7OztrQ0FJNUIsSUFBQSxzQkFBYyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7O0VBRTNELElBQUEsV0FBRyxFQUFDLENBQUMsQ0FBQyxDQUNFLG9CQUFvQixFQUFFO1NBQ25CLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDLDZCQUE2QixFQUFFLENBQUM7U0FDdkUsR0FBRyxDQUFDLGdCQUFRLENBQUM7U0FDYixJQUFJLENBQUMsSUFBSSxDQUFDLENBQ2Q7Ozs7Ozs7Ozs7d0ZBVStFLElBQUEsc0JBQWMsRUFDNUYsTUFBTSxDQUFDLElBQUksQ0FDWjtPQUNGLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQzs7NkJBRVgsTUFBTSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFOzs7Q0FHMUQsQ0FBQTtBQUNELENBQUMsQ0FBQztBQTFRVyxRQUFBLDBCQUEwQiw4QkEwUXJDIn0=
|
|
@@ -29,6 +29,7 @@ const R = __importStar(require("ramda"));
|
|
|
29
29
|
const metaUtils_1 = require("../../../../../metaUtils");
|
|
30
30
|
const cases_1 = require("../../../../../../utils/cases");
|
|
31
31
|
const utils_1 = require("../../../../../utils");
|
|
32
|
+
const storage_1 = require("../../../../../builders/storage");
|
|
32
33
|
const arrToStr = (val) => R.trim((0, utils_1.pad)(1)(JSON.stringify(val, undefined, ' ').replaceAll('"', '\'')));
|
|
33
34
|
const getStrNames = R.compose(arrToStr, R.map(R.path(['name'])));
|
|
34
35
|
const autogeneratedStringId = (entity) => (0, metaUtils_1.getKeyField)(entity).autoGenerated && (0, metaUtils_1.getKeyField)(entity).type === 'string';
|
|
@@ -78,6 +79,10 @@ const configTmpl = ({ entity, options, }, allSumRegistries, allInfoRegistries) =
|
|
|
78
79
|
}
|
|
79
80
|
const registrarDependedRegistries = docRegistries.filter((r) => r.registrarDepended);
|
|
80
81
|
const externalSearchDeps = registrarDependedRegistries.filter(r => r.externalSearchName).map((r) => [(0, pluralize_1.singular)(r.name), (0, pluralize_1.singular)(r.externalSearchName)]);
|
|
82
|
+
const storage = entity.storage;
|
|
83
|
+
const searchEngine = (0, storage_1.getSearchEngine)(storage);
|
|
84
|
+
const externalSearch = (0, storage_1.getConfigExternalSearch)(storage);
|
|
85
|
+
const searchEngineLiteral = searchEngine === null ? 'null' : `'${searchEngine}'`;
|
|
81
86
|
return `import Entity from '../../../types/Entity';
|
|
82
87
|
import {${configType}} from '../types';
|
|
83
88
|
|
|
@@ -86,7 +91,9 @@ const config: ${configType} = {
|
|
|
86
91
|
autogeneratedStringId: ${autogeneratedStringId(entity)},
|
|
87
92
|
auditable: ${entity.auditable},
|
|
88
93
|
withSearch: ${!!entity.fields.find((f) => f.name === 'search')},
|
|
89
|
-
|
|
94
|
+
storage: '${storage}',
|
|
95
|
+
searchEngine: ${searchEngineLiteral},
|
|
96
|
+
externalSearch: ${externalSearch},
|
|
90
97
|
sharded: ${isSharded},
|
|
91
98
|
dateFields: ${getStrNames(dateFields)},
|
|
92
99
|
otherFields: ${getStrNames(notDateFields)},
|
|
@@ -109,4 +116,4 @@ export default config;
|
|
|
109
116
|
`;
|
|
110
117
|
};
|
|
111
118
|
exports.configTmpl = configTmpl;
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0b3JzL2ZpbGVUZW1wbGF0ZXMvYmFjay9zZXJ2aWNlcy9lbnRpdHkvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQWtDO0FBQ2xDLHlDQUEwQjtBQUkxQix3REFBb0Q7QUFDcEQseURBQTJFO0FBQzNFLGdEQUF3QztBQUN4Qyw2REFBd0Y7QUFFeEYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBQSxXQUFHLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3pHLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRWhFLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUMvQyxJQUFBLHVCQUFXLEVBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxJQUFJLElBQUEsdUJBQVcsRUFBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFBO0FBRXJFLE1BQU0sVUFBVSxHQUFHLENBQUMsRUFDekIsTUFBTSxFQUNOLE9BQU8sR0FDa0IsRUFDekIsZ0JBQTBDLEVBQzFDLGlCQUE0QyxFQUM1QyxFQUFFO0lBQ0YsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDakQsQ0FBQyxD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
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extraDbMigrationEnvVar = exports.genShardsDeployPrismaConfig = exports.genShardsPrismaConfig = exports.genExtraDbDeployPrismaConfig = exports.genExtraDbPrismaConfig = exports.genMainDeployPrismaConfig = exports.genMainPrismaConfig = exports.genPrismaConfig = void 0;
|
|
4
|
+
const databaseMeta_1 = require("../../../utils/databaseMeta");
|
|
5
|
+
const genPrismaConfig = ({ schema, database }) => {
|
|
6
|
+
const migrationEnv = (0, databaseMeta_1.prismaDatasourceMigrationEnvVar)(database);
|
|
7
|
+
const defaultDb = (0, databaseMeta_1.postgresUrlDatabaseName)(database);
|
|
8
|
+
return `import {defineConfig} from 'prisma/config';
|
|
9
|
+
|
|
10
|
+
export default defineConfig({
|
|
11
|
+
schema: '${schema}',
|
|
12
|
+
datasource: {
|
|
13
|
+
url: process.env['${migrationEnv}'] ?? 'postgresql://postgres:password@localhost:5432/${defaultDb}',
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
`;
|
|
17
|
+
};
|
|
18
|
+
exports.genPrismaConfig = genPrismaConfig;
|
|
19
|
+
const genMainPrismaConfig = () => (0, exports.genPrismaConfig)({ schema: 'schema.prisma', database: 'main' });
|
|
20
|
+
exports.genMainPrismaConfig = genMainPrismaConfig;
|
|
21
|
+
const genMainDeployPrismaConfig = () => (0, exports.genPrismaConfig)({ schema: 'deployConnection.prisma', database: 'main' });
|
|
22
|
+
exports.genMainDeployPrismaConfig = genMainDeployPrismaConfig;
|
|
23
|
+
const genExtraDbPrismaConfig = (database) => (0, exports.genPrismaConfig)({ schema: 'schema.prisma', database });
|
|
24
|
+
exports.genExtraDbPrismaConfig = genExtraDbPrismaConfig;
|
|
25
|
+
const genExtraDbDeployPrismaConfig = (database) => (0, exports.genPrismaConfig)({ schema: 'deployConnection.prisma', database });
|
|
26
|
+
exports.genExtraDbDeployPrismaConfig = genExtraDbDeployPrismaConfig;
|
|
27
|
+
const genShardsPrismaConfig = () => (0, exports.genPrismaConfig)({ schema: 'schema.prisma', database: 'main' });
|
|
28
|
+
exports.genShardsPrismaConfig = genShardsPrismaConfig;
|
|
29
|
+
const genShardsDeployPrismaConfig = () => (0, exports.genPrismaConfig)({ schema: 'deployConnection.prisma', database: 'main' });
|
|
30
|
+
exports.genShardsDeployPrismaConfig = genShardsDeployPrismaConfig;
|
|
31
|
+
/** Used in tests to assert env var naming for extra DBs. */
|
|
32
|
+
const extraDbMigrationEnvVar = (database) => `DATABASE_${(0, databaseMeta_1.databaseNameToEnvSuffix)(database)}_MIGRATION_URI`;
|
|
33
|
+
exports.extraDbMigrationEnvVar = extraDbMigrationEnvVar;
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuUHJpc21hQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0b3JzL3ByaXNtYS9zY2hlbWUvZ2VuUHJpc21hQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhEQUlvQztBQU83QixNQUFNLGVBQWUsR0FBRyxDQUFDLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBeUIsRUFBVSxFQUFFO0lBQ3BGLE1BQU0sWUFBWSxHQUFHLElBQUEsOENBQStCLEVBQUMsUUFBUSxDQUFDLENBQUE7SUFDOUQsTUFBTSxTQUFTLEdBQUcsSUFBQSxzQ0FBdUIsRUFBQyxRQUFRLENBQUMsQ0FBQTtJQUVuRCxPQUFPOzs7YUFHSSxNQUFNOzt3QkFFSyxZQUFZLHdEQUF3RCxTQUFTOzs7Q0FHcEcsQ0FBQTtBQUNELENBQUMsQ0FBQTtBQWJZLFFBQUEsZUFBZSxtQkFhM0I7QUFFTSxNQUFNLG1CQUFtQixHQUFHLEdBQVcsRUFBRSxDQUM5QyxJQUFBLHVCQUFlLEVBQUMsRUFBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO0FBRGpELFFBQUEsbUJBQW1CLHVCQUM4QjtBQUV2RCxNQUFNLHlCQUF5QixHQUFHLEdBQVcsRUFBRSxDQUNwRCxJQUFBLHVCQUFlLEVBQUMsRUFBQyxNQUFNLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUE7QUFEM0QsUUFBQSx5QkFBeUIsNkJBQ2tDO0FBRWpFLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxRQUFnQixFQUFVLEVBQUUsQ0FDakUsSUFBQSx1QkFBZSxFQUFDLEVBQUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFBO0FBRHpDLFFBQUEsc0JBQXNCLDBCQUNtQjtBQUUvQyxNQUFNLDRCQUE0QixHQUFHLENBQUMsUUFBZ0IsRUFBVSxFQUFFLENBQ3ZFLElBQUEsdUJBQWUsRUFBQyxFQUFDLE1BQU0sRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFBO0FBRG5ELFFBQUEsNEJBQTRCLGdDQUN1QjtBQUV6RCxNQUFNLHFCQUFxQixHQUFHLEdBQVcsRUFBRSxDQUNoRCxJQUFBLHVCQUFlLEVBQUMsRUFBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO0FBRGpELFFBQUEscUJBQXFCLHlCQUM0QjtBQUV2RCxNQUFNLDJCQUEyQixHQUFHLEdBQVcsRUFBRSxDQUN0RCxJQUFBLHVCQUFlLEVBQUMsRUFBQyxNQUFNLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUE7QUFEM0QsUUFBQSwyQkFBMkIsK0JBQ2dDO0FBRXhFLDREQUE0RDtBQUNyRCxNQUFNLHNCQUFzQixHQUFHLENBQUMsUUFBZ0IsRUFBVSxFQUFFLENBQ2pFLFlBQVksSUFBQSxzQ0FBdUIsRUFBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUE7QUFEbEQsUUFBQSxzQkFBc0IsMEJBQzRCIn0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jest_without_globals_1 = require("jest-without-globals");
|
|
4
|
+
const genPrismaConfig_1 = require("./genPrismaConfig");
|
|
5
|
+
describe('genPrismaConfig', () => {
|
|
6
|
+
it('generates main prisma.config.ts', () => {
|
|
7
|
+
const result = (0, genPrismaConfig_1.genMainPrismaConfig)();
|
|
8
|
+
(0, jest_without_globals_1.expect)(result).toContain("schema: 'schema.prisma'");
|
|
9
|
+
(0, jest_without_globals_1.expect)(result).toContain("DATABASE_MAIN_MIGRATION_URI");
|
|
10
|
+
(0, jest_without_globals_1.expect)(result).toContain('postgresql://postgres:password@localhost:5432/postgres');
|
|
11
|
+
});
|
|
12
|
+
it('generates main deploy.prisma.config.ts', () => {
|
|
13
|
+
const result = (0, genPrismaConfig_1.genMainDeployPrismaConfig)();
|
|
14
|
+
(0, jest_without_globals_1.expect)(result).toContain("schema: 'deployConnection.prisma'");
|
|
15
|
+
(0, jest_without_globals_1.expect)(result).toContain("DATABASE_MAIN_MIGRATION_URI");
|
|
16
|
+
});
|
|
17
|
+
it('generates extra DB config with correct env var', () => {
|
|
18
|
+
const result = (0, genPrismaConfig_1.genExtraDbPrismaConfig)('bsDocuments');
|
|
19
|
+
(0, jest_without_globals_1.expect)(result).toContain(`process.env['${(0, genPrismaConfig_1.extraDbMigrationEnvVar)('bsDocuments')}']`);
|
|
20
|
+
(0, jest_without_globals_1.expect)(result).toContain('postgresql://postgres:password@localhost:5432/bs_documents');
|
|
21
|
+
});
|
|
22
|
+
it('generates extra DB deploy config', () => {
|
|
23
|
+
const result = (0, genPrismaConfig_1.genExtraDbDeployPrismaConfig)('bsDocuments');
|
|
24
|
+
(0, jest_without_globals_1.expect)(result).toContain("schema: 'deployConnection.prisma'");
|
|
25
|
+
(0, jest_without_globals_1.expect)(result).toContain(`DATABASE_BS_DOCUMENTS_MIGRATION_URI`);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuUHJpc21hQ29uZmlnLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvcHJpc21hL3NjaGVtZS9nZW5QcmlzbWFDb25maWcuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtEQUEyQztBQUMzQyx1REFNMEI7QUFFMUIsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtJQUMvQixFQUFFLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUEscUNBQW1CLEdBQUUsQ0FBQTtRQUNwQyxJQUFBLDZCQUFNLEVBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLENBQUE7UUFDbkQsSUFBQSw2QkFBTSxFQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO1FBQ3ZELElBQUEsNkJBQU0sRUFBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsd0RBQXdELENBQUMsQ0FBQTtJQUNwRixDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsTUFBTSxNQUFNLEdBQUcsSUFBQSwyQ0FBeUIsR0FBRSxDQUFBO1FBQzFDLElBQUEsNkJBQU0sRUFBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsbUNBQW1DLENBQUMsQ0FBQTtRQUM3RCxJQUFBLDZCQUFNLEVBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLDZCQUE2QixDQUFDLENBQUE7SUFDekQsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsZ0RBQWdELEVBQUUsR0FBRyxFQUFFO1FBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUEsd0NBQXNCLEVBQUMsYUFBYSxDQUFDLENBQUE7UUFDcEQsSUFBQSw2QkFBTSxFQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBQSx3Q0FBc0IsRUFBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkYsSUFBQSw2QkFBTSxFQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyw0REFBNEQsQ0FBQyxDQUFBO0lBQ3hGLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFBLDhDQUE0QixFQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQzFELElBQUEsNkJBQU0sRUFBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsbUNBQW1DLENBQUMsQ0FBQTtRQUM3RCxJQUFBLDZCQUFNLEVBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLHFDQUFxQyxDQUFDLENBQUE7SUFDakUsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSJ9
|
|
@@ -24,12 +24,14 @@ const collectCrossDatabaseEntityLinkViolations = (entities, allEntities) => {
|
|
|
24
24
|
}
|
|
25
25
|
return lines;
|
|
26
26
|
};
|
|
27
|
+
const isPrisma7 = (prismaMajor) => (prismaMajor !== null && prismaMajor !== void 0 ? prismaMajor : 6) >= 7;
|
|
27
28
|
const genPrismaSchemaForEntitiesWithClientAdnDb = (args, opts) => {
|
|
28
|
-
const { database, forShards } = opts;
|
|
29
|
+
const { database, forShards, prismaMajor } = opts;
|
|
29
30
|
const { entities, allLinks, allEntities } = args;
|
|
30
31
|
const effectiveForShards = database === 'main' && forShards;
|
|
32
|
+
const p7 = isPrisma7(prismaMajor);
|
|
31
33
|
const ent = entities
|
|
32
|
-
.filter((e) =>
|
|
34
|
+
.filter((e) => e.storage !== 'elastic' && e.storage !== 'clickhouse')
|
|
33
35
|
.filter((e) => {
|
|
34
36
|
if (database !== 'main') {
|
|
35
37
|
return e.database === database;
|
|
@@ -42,9 +44,14 @@ const genPrismaSchemaForEntitiesWithClientAdnDb = (args, opts) => {
|
|
|
42
44
|
`Replace addLinkField with addViewLinkField for these links in metadata:\n${crossDbViolations.join('\n')}`);
|
|
43
45
|
}
|
|
44
46
|
const joined = (0, genPrismaSchemaForEntities_1.genPrismaSchemaForEntities)(ent, allLinks, effectiveForShards, allEntities);
|
|
45
|
-
const
|
|
47
|
+
const provider = p7 ? 'prisma-client' : 'prisma-client-js';
|
|
48
|
+
const previewFeatures = p7 ? '' : '\n previewFeatures = ["metrics"]';
|
|
46
49
|
let outputLine = '';
|
|
47
|
-
if (database === 'main' && effectiveForShards) {
|
|
50
|
+
if (p7 && database === 'main' && !effectiveForShards) {
|
|
51
|
+
outputLine = `
|
|
52
|
+
output = "./generated/client"`;
|
|
53
|
+
}
|
|
54
|
+
else if (database === 'main' && effectiveForShards) {
|
|
48
55
|
outputLine = `
|
|
49
56
|
output = "./build"`;
|
|
50
57
|
}
|
|
@@ -52,21 +59,31 @@ const genPrismaSchemaForEntitiesWithClientAdnDb = (args, opts) => {
|
|
|
52
59
|
outputLine = `
|
|
53
60
|
output = "./client"`;
|
|
54
61
|
}
|
|
62
|
+
const datasourceBlock = p7
|
|
63
|
+
? `datasource db {
|
|
64
|
+
provider = "postgresql"
|
|
65
|
+
}`
|
|
66
|
+
: `datasource db {
|
|
67
|
+
provider = "postgresql"
|
|
68
|
+
url = env("${(0, databaseMeta_1.prismaDatasourceWriteEnvVar)(database)}")
|
|
69
|
+
}`;
|
|
55
70
|
return `generator client {
|
|
56
|
-
provider = "
|
|
57
|
-
previewFeatures = ["metrics"]${outputLine}
|
|
71
|
+
provider = "${provider}"${previewFeatures}${outputLine}
|
|
58
72
|
}
|
|
59
73
|
|
|
60
|
-
|
|
61
|
-
provider = "postgresql"
|
|
62
|
-
url = env("${writeEnv}")
|
|
63
|
-
}
|
|
74
|
+
${datasourceBlock}
|
|
64
75
|
|
|
65
76
|
${joined}`;
|
|
66
77
|
};
|
|
67
78
|
exports.genPrismaSchemaForEntitiesWithClientAdnDb = genPrismaSchemaForEntitiesWithClientAdnDb;
|
|
68
79
|
/** Minimal deploy schema (migrate URL only). */
|
|
69
|
-
const genDeployConnectionPrisma = (database) => {
|
|
80
|
+
const genDeployConnectionPrisma = (database, prismaMajor) => {
|
|
81
|
+
if (isPrisma7(prismaMajor)) {
|
|
82
|
+
return `datasource db {
|
|
83
|
+
provider = "postgresql"
|
|
84
|
+
}
|
|
85
|
+
`;
|
|
86
|
+
}
|
|
70
87
|
const migrationEnv = (0, databaseMeta_1.prismaDatasourceMigrationEnvVar)(database);
|
|
71
88
|
return `datasource db {
|
|
72
89
|
provider = "postgresql"
|
|
@@ -79,4 +96,4 @@ generator client {
|
|
|
79
96
|
`;
|
|
80
97
|
};
|
|
81
98
|
exports.genDeployConnectionPrisma = genDeployConnectionPrisma;
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuUHJpc21hU2NoZW1hRm9yRW50aXRpZXNXaXRoQ2xpZW50QWRuRGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvcHJpc21hL3NjaGVtZS9nZW5QcmlzbWFTY2hlbWFGb3JFbnRpdGllc1dpdGhDbGllbnRBZG5EYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2RUFBdUU7QUFDdkUsOERBR29DO0FBRXBDLE1BQU0sd0NBQXdDLEdBQUcsQ0FDL0MsUUFBa0IsRUFDbEIsV0FBZ0MsRUFDdEIsRUFBRTtJQUNaLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQTtJQUMxQixLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsRUFBRTtRQUM3QixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDakMsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLE1BQU0sRUFBRTtnQkFDN0IsU0FBUTthQUNUO1lBQ0QsSUFBSSxLQUFLLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRTtnQkFDbkMsU0FBUTthQUNUO1lBQ0QsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUE7WUFDcEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxTQUFRO2FBQ1Q7WUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDdkMsS0FBSyxDQUFDLElBQUksQ0FDUixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksTUFBTSxLQUFLLENBQUMsY0FBYyxlQUFlLE1BQU0sQ0FBQyxRQUFRLFFBQVEsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUNsSCxDQUFBO2FBQ0Y7U0FDRjtLQUNGO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFjRCxNQUFN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
|