runlify 0.0.783 → 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.
Files changed (29) hide show
  1. package/build/projectsGeneration/builders/SystemMetaBuilder.js +7 -1
  2. package/build/projectsGeneration/commonEntities/addCommonCommands.js +22 -4
  3. package/build/projectsGeneration/generateProject/generateEnvironment.js +33 -16
  4. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/clients/createPgPrismaClient.js +43 -0
  5. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/clients/getPrisma.js +139 -20
  6. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/init/prisma/writeClientPackageStubs.js +39 -0
  7. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/class.js +7 -3
  8. package/build/projectsGeneration/generators/prisma/scheme/genPrismaConfig.js +34 -0
  9. package/build/projectsGeneration/generators/prisma/scheme/genPrismaConfig.spec.js +28 -0
  10. package/build/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.js +28 -11
  11. package/build/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.spec.js +99 -0
  12. package/build/projectsGeneration/utils/buildPrismaCommands.js +80 -0
  13. package/build/projectsGeneration/utils/buildPrismaCommands.spec.js +58 -0
  14. package/build/projectsGeneration/utils/detectPrismaMajorVersion.js +62 -0
  15. package/build/projectsGeneration/utils/detectPrismaMajorVersion.spec.js +51 -0
  16. package/build/types/projectsGeneration/builders/SystemMetaBuilder.d.ts +1 -0
  17. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/src/clients/createPgPrismaClient.d.ts +1 -0
  18. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/src/clients/getPrisma.d.ts +1 -1
  19. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/src/init/prisma/writeClientPackageStubs.d.ts +2 -0
  20. package/build/types/projectsGeneration/generators/fileTemplates/back/services/entity/class.d.ts +1 -1
  21. package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaConfig.d.ts +13 -0
  22. package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaConfig.spec.d.ts +1 -0
  23. package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.d.ts +3 -1
  24. package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.spec.d.ts +1 -0
  25. package/build/types/projectsGeneration/utils/buildPrismaCommands.d.ts +11 -0
  26. package/build/types/projectsGeneration/utils/buildPrismaCommands.spec.d.ts +1 -0
  27. package/build/types/projectsGeneration/utils/detectPrismaMajorVersion.d.ts +2 -0
  28. package/build/types/projectsGeneration/utils/detectPrismaMajorVersion.spec.d.ts +1 -0
  29. package/package.json +9 -1
@@ -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 prismaGetterTmpl = (args) => {
7
- const otherDbs = args.system.dataBases
8
- .map((d) => d.name)
9
- .filter((d) => d !== 'main');
10
- const extraImports = otherDbs
11
- .map((db) => `import {PrismaClient as PrismaClient${(0, cases_1.pascal)(db)}} from '../../prisma/databases/${db}/client';`)
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
- return `import {PrismaClient} from '@prisma/client';
75
- ${extraImports}
76
- import {getConfig} from '../config';
77
- import log from '../log';
78
- import {addParamsToDatabaseUri} from '../utils/addParamsToPgUri';
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
- ${extraGetters.join('')}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UHJpc21hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0b3JzL2ZpbGVUZW1wbGF0ZXMvYmFjay9lbnZpcm9ubWVudC9zcmMvY2xpZW50cy9nZXRQcmlzbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXFDO0FBQ3JDLDREQUF1RDtBQUdoRCxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBK0IsRUFBRSxFQUFFO0lBQ2xFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztTQUNuQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUE7SUFFOUIsTUFBTSxZQUFZLEdBQUcsUUFBUTtTQUMxQixHQUFHLENBQ0YsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUNMLHVDQUF1QyxJQUFBLGNBQU0sRUFDM0MsRUFBRSxDQUNILGtDQUFrQyxFQUFFLFdBQVcsQ0FDbkQ7U0FDQSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFYixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDdkMsTUFBTSxDQUFDLEdBQUcsSUFBQSxjQUFNLEVBQUMsRUFBRSxDQUFDLENBQUE7UUFDcEIsTUFBTSxRQUFRLEdBQUcsSUFBQSx1QkFBUyxFQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQTtRQUN0RCxNQUFNLFVBQVUsR0FBRyxJQUFBLHVCQUFTLEVBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBQzNELE1BQU0sY0FBYyxHQUFHLElBQUEsdUJBQVMsRUFBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTtRQUVuRSxPQUFPO1lBQ0MsQ0FBQyxpQkFBaUIsQ0FBQzs7d0JBRVAsQ0FBQzs7TUFFbkIsUUFBUTtNQUNSLFVBQVU7TUFDVixjQUFjOzs7Ozs7Ozs7b0ZBU2dFLEVBQUU7O21DQUVuRCxDQUFDOzs7Ozs7O2lDQU9ILENBQUM7Ozs7Ozs7OzswQkFTUixDQUFDOzs7a0NBR08sRUFBRTs7Ozs7ZUFLckIsQ0FBQztZQUNKLENBQUMsc0JBQXNCLENBQUM7Ozs7Ozs7OztpQkFTbkIsQ0FBQzs7Q0FFakIsQ0FBQTtJQUNDLENBQUMsQ0FBQyxDQUFBO0lBRUYsT0FBTztFQUNQLFlBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUVaLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0NBQ3RCLENBQUE7QUFDRCxDQUFDLENBQUE7QUFqSlksUUFBQSxnQkFBZ0Isb0JBaUo1QiJ9
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,8 +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 detectPrismaMajorVersion_1 = require("../../../../../utils/detectPrismaMajorVersion");
7
8
  const storage_1 = require("../../../../../builders/storage");
8
- const prismaServiceBaseClassTmpl = ({ entity, }) => {
9
+ const prismaServiceBaseClassTmpl = ({ entity, options, }) => {
9
10
  const contextName = 'Context';
10
11
  const forbiddenForUserFields = entity.fields.filter((f) => !f.updatableByUser && f.name !== 'search');
11
12
  const requiredForDbButNotForUserFields = entity.fields.filter((f) => f.required && !f.requiredOnInput && f.name !== 'id');
@@ -85,9 +86,12 @@ export interface ${(0, cases_1.pascalSingular)(document.name)}RegistryEntries {$
85
86
  `;
86
87
  }
87
88
  if (isPrismaDelegatable) {
89
+ const isPrisma7 = (0, detectPrismaMajorVersion_1.detectPrismaMajorVersion)(options.detachedBackProject) >= 7;
88
90
  const prismaMod = entity.database === 'main'
89
91
  ? '@prisma/client'
90
- : `../../../../prisma/databases/${entity.database}/client`;
92
+ : isPrisma7
93
+ ? `@prisma/${entity.database}/client`
94
+ : `../../../../prisma/databases/${entity.database}/client`;
91
95
  additionalImports.push(`import {Prisma} from '${prismaMod}';`);
92
96
  }
93
97
  const serviceName = `${(0, cases_1.pascal)(entity.name)}Service`;
@@ -189,4 +193,4 @@ ${(0, utils_1.pad)(4)(getDefaultableFields()
189
193
  `;
190
194
  };
191
195
  exports.prismaServiceBaseClassTmpl = prismaServiceBaseClassTmpl;
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvZmlsZVRlbXBsYXRlcy9iYWNrL3NlcnZpY2VzL2VudGl0eS9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFLc0M7QUFDdEMseUNBQWtDO0FBRWxDLGdEQUFnRTtBQUVoRSw2REFNd0M7QUFFakMsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLEVBQ3pDLE1BQU0sR0FDbUIsRUFBRSxFQUFFO0lBQzdCLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQTtJQUU3QixNQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUNqRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUNqRCxDQUFBO0lBQ0QsTUFBTSxnQ0FBZ0MsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDM0QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUMzRCxDQUFBO0lBRUQsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUUsQ0FDaEMsTUFBTSxDQUFDLE1BQU07U0FDVixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQztTQUM5QyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBRTdCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUM7SUFDL0QsTUFBTSxZQUFZLEdBQ2hC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
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvZmlsZVRlbXBsYXRlcy9iYWNrL3NlcnZpY2VzL2VudGl0eS9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFLc0M7QUFDdEMseUNBQWtDO0FBRWxDLGdEQUFnRTtBQUVoRSw0RkFBc0Y7QUFDdEYsNkRBTXdDO0FBRWpDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxFQUN6QyxNQUFNLEVBQ04sT0FBTyxHQUNrQixFQUFFLEVBQUU7SUFDN0IsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFBO0lBRTdCLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ2pELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQ2pELENBQUE7SUFDRCxNQUFNLGdDQUFnQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUMzRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQzNELENBQUE7SUFFRCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsRUFBRSxDQUNoQyxNQUFNLENBQUMsTUFBTTtTQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDO1NBQzlDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFN0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FB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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,10 +24,12 @@ 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
34
  .filter((e) => e.storage !== 'elastic' && e.storage !== 'clickhouse')
33
35
  .filter((e) => {
@@ -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 writeEnv = (0, databaseMeta_1.prismaDatasourceWriteEnvVar)(database);
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 = "prisma-client-js"
57
- previewFeatures = ["metrics"]${outputLine}
71
+ provider = "${provider}"${previewFeatures}${outputLine}
58
72
  }
59
73
 
60
- datasource db {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuUHJpc21hU2NoZW1hRm9yRW50aXRpZXNXaXRoQ2xpZW50QWRuRGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvcHJpc21hL3NjaGVtZS9nZW5QcmlzbWFTY2hlbWFGb3JFbnRpdGllc1dpdGhDbGllbnRBZG5EYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2RUFBdUU7QUFDdkUsOERBR29DO0FBRXBDLE1BQU0sd0NBQXdDLEdBQUcsQ0FDL0MsUUFBa0IsRUFDbEIsV0FBZ0MsRUFDdEIsRUFBRTtJQUNaLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQTtJQUMxQixLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsRUFBRTtRQUM3QixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDakMsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLE1BQU0sRUFBRTtnQkFDN0IsU0FBUTthQUNUO1lBQ0QsSUFBSSxLQUFLLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRTtnQkFDbkMsU0FBUTthQUNUO1lBQ0QsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUE7WUFDcEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxTQUFRO2FBQ1Q7WUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDdkMsS0FBSyxDQUFDLElBQUksQ0FDUixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksTUFBTSxLQUFLLENBQUMsY0FBYyxlQUFlLE1BQU0sQ0FBQyxRQUFRLFFBQVEsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUNsSCxDQUFBO2FBQ0Y7U0FDRjtLQUNGO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFZTSxNQUFNLHlDQUF5QyxHQUFHLENBQ3ZELElBQStCLEVBQy9CLElBQThCLEVBQzlCLEVBQUU7SUFDRixNQUFNLEVBQUMsUUFBUSxFQUFFLFNBQVMsRUFBQyxHQUFHLElBQUksQ0FBQTtJQUNsQyxNQUFNLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUE7SUFFOUMsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLEtBQUssTUFBTSxJQUFJLFNBQVMsQ0FBQTtJQUUzRCxNQUFNLEdBQUcsR0FBRyxRQUFRO1NBQ2pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUM7U0FDcEUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDWixJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUU7WUFDdkIsT0FBTyxDQUFDLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQTtTQUMvQjtRQUNELE9BQU8sQ0FBQyxDQUFDLFFBQVEsS0FBSyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3RFLENBQUMsQ0FBQyxDQUFBO0lBRUosTUFBTSxpQkFBaUIsR0FBRyx3Q0FBd0MsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDcEYsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQ2Isb0dBQW9HO1lBQ2xHLDRFQUE0RSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDN0csQ0FBQTtLQUNGO0lBRUQsTUFBTSxNQUFNLEdBQUcsSUFBQSx1REFBMEIsRUFDdkMsR0FBRyxFQUNILFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsV0FBVyxDQUNaLENBQUE7SUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFBLDBDQUEyQixFQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRXRELElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQTtJQUNuQixJQUFJLFFBQVEsS0FBSyxNQUFNLElBQUksa0JBQWtCLEVBQUU7UUFDN0MsVUFBVSxHQUFHO3VCQUNNLENBQUE7S0FDcEI7U0FBTSxJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUU7UUFDOUIsVUFBVSxHQUFHO3dCQUNPLENBQUE7S0FDckI7SUFFRCxPQUFPOztpQ0FFd0IsVUFBVTs7Ozs7b0JBS3ZCLFFBQVE7OztFQUcxQixNQUFNLEVBQUUsQ0FBQTtBQUNWLENBQUMsQ0FBQTtBQXZEWSxRQUFBLHlDQUF5Qyw2Q0F1RHJEO0FBRUQsZ0RBQWdEO0FBQ3pDLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxRQUFnQixFQUFVLEVBQUU7SUFDcEUsTUFBTSxZQUFZLEdBQUcsSUFBQSw4Q0FBK0IsRUFBQyxRQUFRLENBQUMsQ0FBQTtJQUM5RCxPQUFPOztvQkFFVyxZQUFZOzs7Ozs7Q0FNL0IsQ0FBQTtBQUNELENBQUMsQ0FBQTtBQVhZLFFBQUEseUJBQXlCLDZCQVdyQyJ9
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuUHJpc21hU2NoZW1hRm9yRW50aXRpZXNXaXRoQ2xpZW50QWRuRGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvcHJpc21hL3NjaGVtZS9nZW5QcmlzbWFTY2hlbWFGb3JFbnRpdGllc1dpdGhDbGllbnRBZG5EYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2RUFBdUU7QUFDdkUsOERBR29DO0FBRXBDLE1BQU0sd0NBQXdDLEdBQUcsQ0FDL0MsUUFBa0IsRUFDbEIsV0FBZ0MsRUFDdEIsRUFBRTtJQUNaLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQTtJQUMxQixLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsRUFBRTtRQUM3QixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDakMsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLE1BQU0sRUFBRTtnQkFDN0IsU0FBUTthQUNUO1lBQ0QsSUFBSSxLQUFLLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRTtnQkFDbkMsU0FBUTthQUNUO1lBQ0QsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUE7WUFDcEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxTQUFRO2FBQ1Q7WUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDdkMsS0FBSyxDQUFDLElBQUksQ0FDUixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksTUFBTSxLQUFLLENBQUMsY0FBYyxlQUFlLE1BQU0sQ0FBQyxRQUFRLFFBQVEsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUNsSCxDQUFBO2FBQ0Y7U0FDRjtLQUNGO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFjRCxNQUFN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
@@ -0,0 +1,99 @@
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
+ const jest_without_globals_1 = require("jest-without-globals");
7
+ const CatalogBuilder_1 = __importDefault(require("../../../builders/CatalogBuilder"));
8
+ const genPrismaSchemaForEntitiesWithClientAdnDb_1 = require("./genPrismaSchemaForEntitiesWithClientAdnDb");
9
+ const types_1 = require("../../../types");
10
+ const minimalArgs = (entities) => ({
11
+ system: {
12
+ name: 'test',
13
+ prefix: 'test',
14
+ dataBases: [{ name: 'main' }, { name: 'bsDocuments' }],
15
+ commands: [],
16
+ configVars: [],
17
+ catalogs: [],
18
+ documents: [],
19
+ infoRegistries: [],
20
+ sumRegistries: [],
21
+ languages: [],
22
+ defaultLanguage: 'ru',
23
+ deployEnvironments: [],
24
+ glossary: [],
25
+ telegramBots: [],
26
+ reports: [],
27
+ restApis: [],
28
+ integrationClients: [],
29
+ workers: [],
30
+ roles: [],
31
+ menuItems: [],
32
+ pages: [],
33
+ additionalServices: [],
34
+ labels: [],
35
+ generalModels: [],
36
+ inputModels: [],
37
+ outputModels: [],
38
+ methods: [],
39
+ back: {},
40
+ },
41
+ entities,
42
+ allEntities: new Map(entities.map((e) => [e.name, e])),
43
+ allSumRegistries: new Map(),
44
+ allInfoRegistries: new Map(),
45
+ allDocuments: new Map(),
46
+ allCatalogs: new Map(),
47
+ allLinks: [],
48
+ additionalServices: [],
49
+ options: types_1.defaultBootstrapEntityOptions,
50
+ });
51
+ describe('genPrismaSchemaForEntitiesWithClientAdnDb', () => {
52
+ const cards = new CatalogBuilder_1.default('cards', 'ru');
53
+ cards.addField('name').setType('string').setRequired();
54
+ const cardEntity = cards.build();
55
+ it('legacy main schema uses prisma-client-js and datasource url', () => {
56
+ const result = (0, genPrismaSchemaForEntitiesWithClientAdnDb_1.genPrismaSchemaForEntitiesWithClientAdnDb)(minimalArgs([cardEntity]), {
57
+ database: 'main',
58
+ forShards: false,
59
+ prismaMajor: 6,
60
+ });
61
+ (0, jest_without_globals_1.expect)(result).toContain('provider = "prisma-client-js"');
62
+ (0, jest_without_globals_1.expect)(result).toContain('previewFeatures = ["metrics"]');
63
+ (0, jest_without_globals_1.expect)(result).toContain('url = env("DATABASE_MAIN_WRITE_URI")');
64
+ (0, jest_without_globals_1.expect)(result).not.toContain('output = "./generated/client"');
65
+ });
66
+ it('P7 main schema uses prisma-client and generated output', () => {
67
+ const result = (0, genPrismaSchemaForEntitiesWithClientAdnDb_1.genPrismaSchemaForEntitiesWithClientAdnDb)(minimalArgs([cardEntity]), {
68
+ database: 'main',
69
+ forShards: false,
70
+ prismaMajor: 7,
71
+ });
72
+ (0, jest_without_globals_1.expect)(result).toContain('provider = "prisma-client"');
73
+ (0, jest_without_globals_1.expect)(result).not.toContain('previewFeatures');
74
+ (0, jest_without_globals_1.expect)(result).not.toContain('url = env(');
75
+ (0, jest_without_globals_1.expect)(result).toContain('output = "./generated/client"');
76
+ });
77
+ it('P7 extra DB schema uses ./client output', () => {
78
+ const docEntity = Object.assign(Object.assign({}, cardEntity), { database: 'bsDocuments' });
79
+ const result = (0, genPrismaSchemaForEntitiesWithClientAdnDb_1.genPrismaSchemaForEntitiesWithClientAdnDb)(minimalArgs([docEntity]), {
80
+ database: 'bsDocuments',
81
+ forShards: false,
82
+ prismaMajor: 7,
83
+ });
84
+ (0, jest_without_globals_1.expect)(result).toContain('output = "./client"');
85
+ });
86
+ it('legacy deploy schema includes generator', () => {
87
+ const result = (0, genPrismaSchemaForEntitiesWithClientAdnDb_1.genDeployConnectionPrisma)('main', 6);
88
+ (0, jest_without_globals_1.expect)(result).toContain('generator client');
89
+ (0, jest_without_globals_1.expect)(result).toContain('url = env("DATABASE_MAIN_MIGRATION_URI")');
90
+ });
91
+ it('P7 deploy schema is datasource-only', () => {
92
+ const result = (0, genPrismaSchemaForEntitiesWithClientAdnDb_1.genDeployConnectionPrisma)('main', 7);
93
+ (0, jest_without_globals_1.expect)(result).toBe(`datasource db {
94
+ provider = "postgresql"
95
+ }
96
+ `);
97
+ });
98
+ });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuUHJpc21hU2NoZW1hRm9yRW50aXRpZXNXaXRoQ2xpZW50QWRuRGIuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdG9ycy9wcmlzbWEvc2NoZW1lL2dlblByaXNtYVNjaGVtYUZvckVudGl0aWVzV2l0aENsaWVudEFkbkRiLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrREFBMkM7QUFDM0Msc0ZBQTZEO0FBQzdELDJHQUdvRDtBQUVwRCwwQ0FBNEQ7QUFHNUQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxRQUErQyxFQUE2QixFQUFFLENBQUMsQ0FBQztJQUNuRyxNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxNQUFNO1FBQ2QsU0FBUyxFQUFFLENBQUMsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsYUFBYSxFQUFDLENBQUM7UUFDbEQsUUFBUSxFQUFFLEVBQUU7UUFDWixVQUFVLEVBQUUsRUFBRTtRQUNkLFFBQVEsRUFBRSxFQUFFO1FBQ1osU0FBUyxFQUFFLEVBQUU7UUFDYixjQUFjLEVBQUUsRUFBRTtRQUNsQixhQUFhLEVBQUUsRUFBRTtRQUNqQixTQUFTLEVBQUUsRUFBRTtRQUNiLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLGtCQUFrQixFQUFFLEVBQUU7UUFDdEIsUUFBUSxFQUFFLEVBQUU7UUFDWixZQUFZLEVBQUUsRUFBRTtRQUNoQixPQUFPLEVBQUUsRUFBRTtRQUNYLFFBQVEsRUFBRSxFQUFFO1FBQ1osa0JBQWtCLEVBQUUsRUFBRTtRQUN0QixPQUFPLEVBQUUsRUFBRTtRQUNYLEtBQUssRUFBRSxFQUFFO1FBQ1QsU0FBUyxFQUFFLEVBQUU7UUFDYixLQUFLLEVBQUUsRUFBRTtRQUNULGtCQUFrQixFQUFFLEVBQUU7UUFDdEIsTUFBTSxFQUFFLEVBQUU7UUFD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