runlify 0.0.780 → 0.0.783
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/args.js +39 -3
- package/build/projectsGeneration/builders/BaseSavableEntityBuilder.js +25 -13
- package/build/projectsGeneration/builders/SystemMetaBuilder.js +75 -11
- package/build/projectsGeneration/builders/buildedTypes.js +1 -1
- package/build/projectsGeneration/builders/storage.js +60 -0
- package/build/projectsGeneration/defaultCatalogs/{addElasticSearch.js → addExternalSearch.js} +6 -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 +36 -8
- 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/getPrisma.js +75 -8
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/class.js +31 -20
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/config.js +10 -3
- package/build/projectsGeneration/generators/prisma/scheme/genPrismaEntity.js +17 -6
- package/build/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntities.js +3 -3
- package/build/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.js +67 -9
- package/build/projectsGeneration/utils/databaseMeta.js +75 -0
- package/build/types/index.d.ts +1 -0
- package/build/types/projectsGeneration/builders/BaseSavableEntityBuilder.d.ts +6 -4
- package/build/types/projectsGeneration/builders/SystemMetaBuilder.d.ts +5 -1
- package/build/types/projectsGeneration/builders/buildedTypes.d.ts +7 -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/getPrisma.d.ts +2 -2
- package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaEntity.d.ts +1 -1
- package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntities.d.ts +1 -1
- package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.d.ts +12 -1
- package/build/types/projectsGeneration/utils/databaseMeta.d.ts +8 -0
- package/package.json +1 -1
- package/build/types/projectsGeneration/defaultCatalogs/addElasticSearch.d.ts +0 -2
|
@@ -32,7 +32,9 @@ const CatalogBuilder_1 = __importDefault(require("./CatalogBuilder"));
|
|
|
32
32
|
const DocumentBuilder_1 = __importDefault(require("./DocumentBuilder"));
|
|
33
33
|
const InfoRegistryBuilder_1 = require("./InfoRegistryBuilder");
|
|
34
34
|
const SumRegistryBuilder_1 = __importDefault(require("./SumRegistryBuilder"));
|
|
35
|
+
const databaseMeta_1 = require("../utils/databaseMeta");
|
|
35
36
|
const defaultCatalogs_1 = require("../defaultCatalogs");
|
|
37
|
+
const storage_1 = require("./storage");
|
|
36
38
|
const R = __importStar(require("ramda"));
|
|
37
39
|
const ReportBuilder_1 = __importDefault(require("./ReportBuilder"));
|
|
38
40
|
const RestApiBuilder_1 = __importDefault(require("./RestApiBuilder"));
|
|
@@ -83,6 +85,7 @@ class SystemMetaBuilder {
|
|
|
83
85
|
this.outputModels = []; // models that may be used only as output
|
|
84
86
|
this.labels = [];
|
|
85
87
|
this.additionalServices = [];
|
|
88
|
+
this.registeredDatabaseNames = new Set(['main']);
|
|
86
89
|
this.defOpts = defOpts;
|
|
87
90
|
this.prefix = prefix;
|
|
88
91
|
this.setPrefix(prefix);
|
|
@@ -97,10 +100,10 @@ class SystemMetaBuilder {
|
|
|
97
100
|
this.addConfigVar('app.environment', 'string', true, 'dev', 'Название окружения');
|
|
98
101
|
this.addConfigVar('app.ui.url', 'string', false, 'http://localhost:4000', 'Урл интерфейса конечного пользователя (без конечного слеша)');
|
|
99
102
|
// Main database
|
|
100
|
-
this.addConfigVar('database.main.write.uri', 'string', true,
|
|
101
|
-
this.addConfigVar('database.main.readOnly.uri', 'string', false,
|
|
103
|
+
this.addConfigVar('database.main.write.uri', 'string', true, `postgresql://postgres:password@localhost:5432/${(0, databaseMeta_1.postgresUrlDatabaseName)('main')}`, 'Строка подключения к основной базе данных для записи').setSecure();
|
|
104
|
+
this.addConfigVar('database.main.readOnly.uri', 'string', false, `postgresql://postgres:password@localhost:5432/${(0, databaseMeta_1.postgresUrlDatabaseName)('main')}`, 'Строка подключения к основной базе только для чтения').setSecure();
|
|
102
105
|
this.addConfigVar('database.main.readOnly.enabled', 'bool', true, false, 'Включена ли работа с запросами на чтение через отдельное подключение');
|
|
103
|
-
this.addConfigVar('database.main.migration.uri', 'string', true,
|
|
106
|
+
this.addConfigVar('database.main.migration.uri', 'string', true, `postgresql://postgres:password@localhost:5432/${(0, databaseMeta_1.postgresUrlDatabaseName)('main')}`, 'Строка подключения к основной базе для миграций (должна быть прямой строкой подключения к бд минуя pgbouncer, если он используется)').setSecure();
|
|
104
107
|
this.addConfigVar('adm.jwt.secret', 'string', false, 'admSecret', 'Секрет для подписи JWT-токенов приложения админки').setSecure();
|
|
105
108
|
this.addConfigVar('app.jwt.secret', 'string', false, 'appSecret', 'Секрет для подписи JWT-токенов приложения пользователей').setSecure();
|
|
106
109
|
this.addConfigVar('s3.endpoint', 'string', true, 's3.eu-central-1.wasabisys.com', 'Эндпоинт S3, который использует бекенд').setSecure();
|
|
@@ -147,6 +150,13 @@ class SystemMetaBuilder {
|
|
|
147
150
|
this.addConfigVar('es.password', 'string', false, '', 'Пароль для авторизации в облачном сервисе ElasticSearch').setSecure();
|
|
148
151
|
this.addConfigVar('es.node', 'string', false, 'http://localhost:9200', 'Нода эластика');
|
|
149
152
|
this.addConfigVar('es.tls.rejectUnauthorized', 'bool', false, false, 'Запрещать невалидный ssl сертификат');
|
|
153
|
+
// clickhouse
|
|
154
|
+
this.addConfigVar('ch.enabled', 'bool', false, false, 'ClickHouse включен');
|
|
155
|
+
this.addConfigVar('ch.host', 'string', false, 'localhost', 'Хост ClickHouse');
|
|
156
|
+
this.addConfigVar('ch.port', 'int', false, 8123, 'Порт ClickHouse');
|
|
157
|
+
this.addConfigVar('ch.database', 'string', false, 'rlw', 'База данных ClickHouse');
|
|
158
|
+
this.addConfigVar('ch.username', 'string', false, 'default', 'Пользователь ClickHouse');
|
|
159
|
+
this.addConfigVar('ch.password', 'string', false, '', 'Пароль ClickHouse').setSecure();
|
|
150
160
|
this.addConfigVar('sentry.dsn', 'string', false, '', 'Sentry dsn');
|
|
151
161
|
// oidc
|
|
152
162
|
this.addConfigVar('oidc.adm.jwksRejectUnauthorized', 'bool', false, false, 'Запрещать невалидный ssl сертификат');
|
|
@@ -421,6 +431,15 @@ class SystemMetaBuilder {
|
|
|
421
431
|
getBack() {
|
|
422
432
|
return this.back;
|
|
423
433
|
}
|
|
434
|
+
addDatabase(name) {
|
|
435
|
+
const normalized = name === 'main' ? 'main' : name;
|
|
436
|
+
(0, databaseMeta_1.validateEntityDatabaseName)(normalized);
|
|
437
|
+
if (normalized === 'main') {
|
|
438
|
+
return this;
|
|
439
|
+
}
|
|
440
|
+
this.registeredDatabaseNames.add(normalized);
|
|
441
|
+
return this;
|
|
442
|
+
}
|
|
424
443
|
// documents
|
|
425
444
|
getDocuments() {
|
|
426
445
|
return this.documents;
|
|
@@ -483,10 +502,20 @@ class SystemMetaBuilder {
|
|
|
483
502
|
this.sumRegistries,
|
|
484
503
|
].flat();
|
|
485
504
|
}
|
|
486
|
-
|
|
505
|
+
getEntitiesWithExternalSearch() {
|
|
506
|
+
return this.getSavableEntities()
|
|
507
|
+
.map(e => e.entity)
|
|
508
|
+
.filter((e) => (0, storage_1.isStorageExternalSearch)(e.getStorage()));
|
|
509
|
+
}
|
|
510
|
+
getEntitiesWithElasticSearch() {
|
|
487
511
|
return this.getSavableEntities()
|
|
488
512
|
.map(e => e.entity)
|
|
489
|
-
.filter((e) => e.
|
|
513
|
+
.filter((e) => (0, storage_1.entityUsesElasticBootstrap)(e.getStorage()));
|
|
514
|
+
}
|
|
515
|
+
getEntitiesWithClickHouseSearch() {
|
|
516
|
+
return this.getSavableEntities()
|
|
517
|
+
.map(e => e.entity)
|
|
518
|
+
.filter((e) => (0, storage_1.entityUsesClickHouseBootstrap)(e.getStorage()));
|
|
490
519
|
}
|
|
491
520
|
addMethod(name, methodType, title) {
|
|
492
521
|
if (this.methods.some((f) => f.name === name)) {
|
|
@@ -565,6 +594,40 @@ class SystemMetaBuilder {
|
|
|
565
594
|
}
|
|
566
595
|
_build() {
|
|
567
596
|
const sortByName = (entries) => R.sortBy(R.compose(R.prop('name'), R.prop('entity')), entries);
|
|
597
|
+
const catalogsBuilt = sortByName(this.catalogs).map((el) => el.entity.build());
|
|
598
|
+
const documentsBuilt = sortByName(this.documents).map((el) => el.entity.build());
|
|
599
|
+
const infoRegistriesBuilt = sortByName(this.infoRegistries).map((el) => el.entity.build());
|
|
600
|
+
const sumRegistriesBuilt = sortByName(this.sumRegistries).map((el) => el.entity.build());
|
|
601
|
+
const savableEntities = [
|
|
602
|
+
...catalogsBuilt,
|
|
603
|
+
...documentsBuilt,
|
|
604
|
+
...infoRegistriesBuilt,
|
|
605
|
+
...sumRegistriesBuilt,
|
|
606
|
+
];
|
|
607
|
+
for (const ent of savableEntities) {
|
|
608
|
+
(0, databaseMeta_1.validateEntityDatabaseName)(ent.database);
|
|
609
|
+
}
|
|
610
|
+
const otherDbNames = [...this.registeredDatabaseNames]
|
|
611
|
+
.filter((d) => d !== 'main')
|
|
612
|
+
.sort((a, b) => a.localeCompare(b));
|
|
613
|
+
const dataBases = [
|
|
614
|
+
{ name: 'main' },
|
|
615
|
+
...otherDbNames.map((name) => ({ name })),
|
|
616
|
+
];
|
|
617
|
+
const allowedDbNames = new Set(dataBases.map((d) => d.name));
|
|
618
|
+
for (const ent of savableEntities) {
|
|
619
|
+
if (!allowedDbNames.has(ent.database)) {
|
|
620
|
+
const known = [...allowedDbNames].sort((a, b) => a.localeCompare(b)).join(', ');
|
|
621
|
+
throw new Error(`Entity "${ent.name}" uses database "${ent.database}", which is not registered. ` +
|
|
622
|
+
`Call system.addDatabase("${ent.database}") (or fix the name) before defining entities. ` +
|
|
623
|
+
`Registered databases: ${known}`);
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
const extraConfigVars = otherDbNames.flatMap((dbName) => (0, databaseMeta_1.buildConfigVarsForAdditionalDatabase)(dbName));
|
|
627
|
+
const configVars = R.sortBy(R.prop('name'), [
|
|
628
|
+
...this.configVars.map((cv) => cv.build()),
|
|
629
|
+
...extraConfigVars,
|
|
630
|
+
]);
|
|
568
631
|
return {
|
|
569
632
|
name: this.name,
|
|
570
633
|
prefix: this.prefix,
|
|
@@ -573,11 +636,12 @@ class SystemMetaBuilder {
|
|
|
573
636
|
glossary: R.sortBy(R.prop('term'), this.glossary),
|
|
574
637
|
commands: R.sortBy(R.prop('command'), this.commands),
|
|
575
638
|
telegramBots: R.sortBy(R.prop('name'), this.telegramBots).map((el) => el.build()),
|
|
576
|
-
configVars
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
639
|
+
configVars,
|
|
640
|
+
dataBases,
|
|
641
|
+
catalogs: catalogsBuilt,
|
|
642
|
+
documents: documentsBuilt,
|
|
643
|
+
infoRegistries: infoRegistriesBuilt,
|
|
644
|
+
sumRegistries: sumRegistriesBuilt,
|
|
581
645
|
languages: this.languages.sort(),
|
|
582
646
|
defaultLanguage: this.defaultLanguage,
|
|
583
647
|
reports: sortByName(this.reports).map(({ entity }) => entity.build()),
|
|
@@ -609,4 +673,4 @@ class SystemMetaBuilder {
|
|
|
609
673
|
}
|
|
610
674
|
}
|
|
611
675
|
exports.default = SystemMetaBuilder;
|
|
612
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3lzdGVtTWV0YUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2J1aWxkZXJzL1N5c3RlbU1ldGFCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0NBSWlCO0FBQ2pCLHNFQUE2QztBQUM3Qyx3RUFBK0M7QUFDL0MsK0RBQXlEO0FBQ3pELDhFQUF5RTtBQWN6RSx3REFBa0Q7QUFDbEQseUNBQTBCO0FBQzFCLG9FQUEyQztBQUMzQyxzRUFBNkM7QUFDN0MsNEVBQW1EO0FBQ25ELGdFQUF1QztBQUN2Qyw4RUFBcUQ7QUFDckQseURBQW9EO0FBQ3BELG9EQUE0QjtBQUM1Qiw2R0FBb0Y7QUFDcEYsNkZBQW9FO0FBQ3BFLG1HQUEwRTtBQUMxRSw2RkFBb0U7QUFDcEUsdUZBQThEO0FBQzlELGdFQUF1QztBQUN2QywwRkFBaUU7QUFDakUsaUZBQXdEO0FBQ3hELDJFQUEwRTtBQUU3RCxRQUFBLGdCQUFnQixHQUFxQztJQUNoRSxPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxFQUFFO0lBQ1gsUUFBUSxFQUFFLElBQUk7SUFDZCxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQztJQUN6QyxNQUFNLEVBQUUsS0FBSztJQUNiLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQTtBQUVELE1BQU0saUJBQWlCO0lBaUNyQixZQUNFLE1BQWMsRUFDZCxVQUFrQyxxQ0FBNkIsRUFDL0QsZUFBZSxHQUFHLElBQUk7UUFuQ3hCLGFBQVEsR0FBK0MsRUFBRSxDQUFBO1FBQ3pELFlBQU8sR0FBOEMsRUFBRSxDQUFBO1FBQ3ZELGNBQVMsR0FBZ0QsRUFBRSxDQUFBO1FBQzNELG1CQUFjLEdBQW9ELEVBQUUsQ0FBQTtRQUNwRSxrQkFBYSxHQUFtRCxFQUFFLENBQUE7UUFDbEUsZUFBVSxHQUE0QixF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UUFDbkYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFOUIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsZ0JBQWdCLENBQ2QsSUFBWSxFQUNaLEtBQWM7UUFFZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFBO1NBQzVFO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSwwQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssYUFBTCxLQUFLLGNBQUwsS0FBSyxHQUFJLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDbkYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFNUIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsaUJBQWlCLENBQ2YsSUFBWSxFQUNaLEtBQWM7UUFFZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFBO1NBQzVFO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSwwQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssYUFBTCxLQUFLLGNBQUwsS0FBSyxHQUFJLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDbkYsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFN0IsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsZUFBZSxDQUFD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QUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDN0UsUUFBUSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xFLFNBQVMsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwRSxjQUFjLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUN6RCxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUNsQjtZQUNELGFBQWEsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQ3ZELEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQ2xCO1lBQ0QsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO1lBQ2hDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxPQUFPLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckUsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQzFELEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FDWjtZQUNELGtCQUFrQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDNUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUNWO1lBQ0QsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDN0QsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUNmO1lBQ0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN2QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckQsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pELFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEUsQ0FBQTtJQUNILENBQUM7SUFFRCxRQUFRO1FBRU4sT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFBLGlDQUFlLEVBQUMsSUFBSSxDQUFDLENBQUE7UUFFckIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RCLENBQUM7Q0FDRjtBQUVELGtCQUFlLGlCQUFpQixDQUFBIn0=
|
|
676
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3lzdGVtTWV0YUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2J1aWxkZXJzL1N5c3RlbU1ldGFCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0NBSWlCO0FBQ2pCLHNFQUE2QztBQUM3Qyx3RUFBK0M7QUFDL0MsK0RBQXlEO0FBQ3pELDhFQUF5RTtBQWdCekUsd0RBSThCO0FBQzlCLHdEQUFrRDtBQUNsRCx1Q0FJa0I7QUFDbEIseUNBQTBCO0FBQzFCLG9FQUEyQztBQUMzQyxzRUFBNkM7QUFDN0MsNEVBQW1EO0FBQ25ELGdFQUF1QztBQUN2Qyw4RUFBcUQ7QUFDckQseURBQW9EO0FBQ3BELG9EQUE0QjtBQUM1Qiw2R0FBb0Y7QUFDcEYsNkZBQW9FO0FBQ3BFLG1HQUEwRTtBQUMxRSw2RkFBb0U7QUFDcEUsdUZBQThEO0FBQzlELGdFQUF1QztBQUN2QywwRkFBaUU7QUFDakUsaUZBQXdEO0FBQ3hELDJFQUEwRTtBQUU3RCxRQUFBLGdCQUFnQixHQUFxQztJQUNoRSxPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxFQUFFO0lBQ1gsUUFBUSxFQUFFLElBQUk7SUFDZCxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQztJQUN6QyxNQUFNLEVBQUUsS0FBSztJQUNiLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQTtBQUVELE1BQU0saUJBQWlCO0lBbUNyQixZQUNFLE1BQWMsRUFDZCxVQUFrQyxxQ0FBNkIsRUFDL0QsZUFBZSxHQUFHLElBQUk7UUFyQ3hCLGFBQVEsR0FBK0MsRUFBRSxDQUFBO1FBQ3pELFlBQU8sR0FBOEMsRUFBRSxDQUFBO1FBQ3ZELGNBQVMsR0FBZ0QsRUFBRSxDQUFBO1FBQzNELG1CQUFjLEdBQW9ELEVBQUUsQ0FBQTtRQUNwRSxrQkFBYSxHQUFtRCxF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
|
|
@@ -58,4 +58,4 @@ var PermissionType;
|
|
|
58
58
|
PermissionType["Update"] = "update";
|
|
59
59
|
PermissionType["Delete"] = "delete";
|
|
60
60
|
})(PermissionType || (exports.PermissionType = PermissionType = {}));
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlZFR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9idWlsZGVycy9idWlsZGVkVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeUVBLElBQVksT0FNWDtBQU5ELFdBQVksT0FBTztJQUNqQiw0QkFBaUIsQ0FBQTtJQUNqQiw0QkFBaUIsQ0FBQTtJQUNqQiw0QkFBaUIsQ0FBQTtJQUNqQiw4QkFBbUIsQ0FBQTtJQUNuQix3QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQU5XLE9BQU8sdUJBQVAsT0FBTyxRQU1sQjtBQTZFRCwwREFBMEQ7QUFDMUQsMERBQTBEO0FBRTFELDRFQUE0RTtBQUM1RSw0RUFBNEU7QUFFNUUsSUFBWSxVQUdYO0FBSEQsV0FBWSxVQUFVO0lBQ3BCLDJCQUFhLENBQUE7SUFDYiw2QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxVQUFVLDBCQUFWLFVBQVUsUUFHckI7QUF5QkQsSUFBWSxVQU9YO0FBUEQsV0FBWSxVQUFVO0lBQ3BCLDZCQUFlLENBQUE7SUFDZiwrQkFBaUIsQ0FBQTtJQUNqQixxQ0FBdUIsQ0FBQTtJQUN2QixtQ0FBcUIsQ0FBQTtJQUNyQixtQ0FBcUIsQ0FBQTtJQUNyQiwyQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQVBXLFVBQVUsMEJBQVYsVUFBVSxRQU9yQjtBQUVELElBQVksU0FJWDtBQUpELFdBQVksU0FBUztJQUNuQiw0QkFBZSxDQUFBO0lBQ2YsMEJBQWEsQ0FBQTtJQUNiLHdCQUFXLENBQUE7QUFDYixDQUFDLEVBSlcsU0FBUyx5QkFBVCxTQUFTLFFBSXBCO0FBMExELElBQVksWUFLWDtBQUxELFdBQVksWUFBWTtJQUN0QiwrQkFBZSxDQUFBO0lBQ2YscUNBQXFCLENBQUE7SUFDckIsMkNBQTJCLENBQUE7SUFDM0IscUNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUxXLFlBQVksNEJBQVosWUFBWSxRQUt2QjtBQVVELElBQVksaUJBSVg7QUFKRCxXQUFZLGlCQUFpQjtJQUMzQixzQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBaUIsQ0FBQTtJQUNqQixrQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpXLGlCQUFpQixpQ0FBakIsaUJBQWlCLFFBSTVCO0FBb0JELElBQVksVUFHWDtBQUhELFdBQVksVUFBVTtJQUNwQiw2QkFBZSxDQUFBO0lBQ2YsbUNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUhXLFVBQVUsMEJBQVYsVUFBVSxRQUdyQjtBQXFERCxJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDeEIsK0JBQWEsQ0FBQTtJQUNiLG1DQUFpQixDQUFBO0lBQ2pCLG1DQUFpQixDQUFBO0lBQ2pCLG1DQUFpQixDQUFBO0FBQ25CLENBQUMsRUFMVyxjQUFjLDhCQUFkLGNBQWMsUUFLekIifQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.entityUsesClickHouseBootstrap = exports.entityUsesElasticBootstrap = exports.getConfigExternalSearch = exports.usesPrismaDelegate = exports.getSearchServicePrefix = exports.getSearchEngine = exports.isStorageClickHouseSearch = exports.isStorageElasticSearch = exports.isStorageExternalSearch = exports.isStorageClickHouseOnly = exports.isStorageElasticOnly = exports.isStoragePostgres = exports.Storage = void 0;
|
|
4
|
+
exports.Storage = {
|
|
5
|
+
POSTGRES: 'postgres',
|
|
6
|
+
ELASTIC: 'elastic',
|
|
7
|
+
CLICKHOUSE: 'clickhouse',
|
|
8
|
+
POSTGRES_WITH_ELASTIC_SEARCH: 'postgres_with_elastic_search',
|
|
9
|
+
POSTGRES_WITH_CLICKHOUSE_SEARCH: 'postgres_with_clickhouse_search',
|
|
10
|
+
};
|
|
11
|
+
const isStoragePostgres = (storage) => storage === exports.Storage.POSTGRES
|
|
12
|
+
|| storage === exports.Storage.POSTGRES_WITH_ELASTIC_SEARCH
|
|
13
|
+
|| storage === exports.Storage.POSTGRES_WITH_CLICKHOUSE_SEARCH;
|
|
14
|
+
exports.isStoragePostgres = isStoragePostgres;
|
|
15
|
+
const isStorageElasticOnly = (storage) => storage === exports.Storage.ELASTIC;
|
|
16
|
+
exports.isStorageElasticOnly = isStorageElasticOnly;
|
|
17
|
+
const isStorageClickHouseOnly = (storage) => storage === exports.Storage.CLICKHOUSE;
|
|
18
|
+
exports.isStorageClickHouseOnly = isStorageClickHouseOnly;
|
|
19
|
+
const isStorageExternalSearch = (storage) => storage === exports.Storage.POSTGRES_WITH_ELASTIC_SEARCH
|
|
20
|
+
|| storage === exports.Storage.POSTGRES_WITH_CLICKHOUSE_SEARCH;
|
|
21
|
+
exports.isStorageExternalSearch = isStorageExternalSearch;
|
|
22
|
+
const isStorageElasticSearch = (storage) => storage === exports.Storage.ELASTIC
|
|
23
|
+
|| storage === exports.Storage.POSTGRES_WITH_ELASTIC_SEARCH;
|
|
24
|
+
exports.isStorageElasticSearch = isStorageElasticSearch;
|
|
25
|
+
const isStorageClickHouseSearch = (storage) => storage === exports.Storage.CLICKHOUSE
|
|
26
|
+
|| storage === exports.Storage.POSTGRES_WITH_CLICKHOUSE_SEARCH;
|
|
27
|
+
exports.isStorageClickHouseSearch = isStorageClickHouseSearch;
|
|
28
|
+
const getSearchEngine = (storage) => {
|
|
29
|
+
switch (storage) {
|
|
30
|
+
case exports.Storage.POSTGRES_WITH_ELASTIC_SEARCH:
|
|
31
|
+
case exports.Storage.ELASTIC:
|
|
32
|
+
return 'elastic';
|
|
33
|
+
case exports.Storage.POSTGRES_WITH_CLICKHOUSE_SEARCH:
|
|
34
|
+
case exports.Storage.CLICKHOUSE:
|
|
35
|
+
return 'clickhouse';
|
|
36
|
+
default:
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
exports.getSearchEngine = getSearchEngine;
|
|
41
|
+
const getSearchServicePrefix = (storage) => {
|
|
42
|
+
const engine = (0, exports.getSearchEngine)(storage);
|
|
43
|
+
if (engine === 'elastic') {
|
|
44
|
+
return 'Elastic';
|
|
45
|
+
}
|
|
46
|
+
if (engine === 'clickhouse') {
|
|
47
|
+
return 'ClickHouse';
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
};
|
|
51
|
+
exports.getSearchServicePrefix = getSearchServicePrefix;
|
|
52
|
+
const usesPrismaDelegate = (storage) => !(0, exports.isStorageElasticOnly)(storage) && !(0, exports.isStorageClickHouseOnly)(storage);
|
|
53
|
+
exports.usesPrismaDelegate = usesPrismaDelegate;
|
|
54
|
+
const getConfigExternalSearch = (storage) => (0, exports.isStorageExternalSearch)(storage);
|
|
55
|
+
exports.getConfigExternalSearch = getConfigExternalSearch;
|
|
56
|
+
const entityUsesElasticBootstrap = (storage) => (0, exports.isStorageElasticSearch)(storage);
|
|
57
|
+
exports.entityUsesElasticBootstrap = entityUsesElasticBootstrap;
|
|
58
|
+
const entityUsesClickHouseBootstrap = (storage) => (0, exports.isStorageClickHouseSearch)(storage);
|
|
59
|
+
exports.entityUsesClickHouseBootstrap = entityUsesClickHouseBootstrap;
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vYnVpbGRlcnMvc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFTYSxRQUFBLE9BQU8sR0FBRztJQUNyQixRQUFRLEVBQUUsVUFBVTtJQUNwQixPQUFPLEVBQUUsU0FBUztJQUNsQixVQUFVLEVBQUUsWUFBWTtJQUN4Qiw0QkFBNEIsRUFBRSw4QkFBOEI7SUFDNUQsK0JBQStCLEVBQUUsaUNBQWlDO0NBQ3BCLENBQUM7QUFFMUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE9BQW9CLEVBQVcsRUFBRSxDQUNqRSxPQUFPLEtBQUssZUFBTyxDQUFDLFFBQVE7T0FDekIsT0FBTyxLQUFLLGVBQU8sQ0FBQyw0QkFBNEI7T0FDaEQsT0FBTyxLQUFLLGVBQU8sQ0FBQywrQkFBK0IsQ0FBQztBQUg1QyxRQUFBLGlCQUFpQixxQkFHMkI7QUFFbEQsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQW9CLEVBQVcsRUFBRSxDQUNwRSxPQUFPLEtBQUssZUFBTyxDQUFDLE9BQU8sQ0FBQztBQURqQixRQUFBLG9CQUFvQix3QkFDSDtBQUV2QixNQUFNLHVCQUF1QixHQUFHLENBQUMsT0FBb0IsRUFBVyxFQUFFLENBQ3ZFLE9BQU8sS0FBSyxlQUFPLENBQUMsVUFBVSxDQUFDO0FBRHBCLFFBQUEsdUJBQXVCLDJCQUNIO0FBRTFCLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxPQUFvQixFQUFXLEVBQUUsQ0FDdkUsT0FBTyxLQUFLLGVBQU8sQ0FBQyw0QkFBNEI7T0FDN0MsT0FBTyxLQUFLLGVBQU8sQ0FBQywrQkFBK0IsQ0FBQztBQUY1QyxRQUFBLHVCQUF1QiwyQkFFcUI7QUFFbEQsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLE9BQW9CLEVBQVcsRUFBRSxDQUN0RSxPQUFPLEtBQUssZUFBTyxDQUFDLE9BQU87T0FDeEIsT0FBTyxLQUFLLGVBQU8sQ0FBQyw0QkFBNEIsQ0FBQztBQUZ6QyxRQUFBLHNCQUFzQiwwQkFFbUI7QUFFL0MsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLE9BQW9CLEVBQVcsRUFBRSxDQUN6RSxPQUFPLEtBQUssZUFBTyxDQUFDLFVBQVU7T0FDM0IsT0FBTyxLQUFLLGVBQU8sQ0FBQywrQkFBK0IsQ0FBQztBQUY1QyxRQUFBLHlCQUF5Qiw2QkFFbUI7QUFFbEQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxPQUFvQixFQUF1QixFQUFFO0lBQzNFLFFBQVEsT0FBTyxFQUFFO1FBQ2YsS0FBSyxlQUFPLENBQUMsNEJBQTRCLENBQUM7UUFDMUMsS0FBSyxlQUFPLENBQUMsT0FBTztZQUNsQixPQUFPLFNBQVMsQ0FBQztRQUNuQixLQUFLLGVBQU8sQ0FBQywrQkFBK0IsQ0FBQztRQUM3QyxLQUFLLGVBQU8sQ0FBQyxVQUFVO1lBQ3JCLE9BQU8sWUFBWSxDQUFDO1FBQ3RCO1lBQ0UsT0FBTyxJQUFJLENBQUM7S0FDZjtBQUNILENBQUMsQ0FBQztBQVhXLFFBQUEsZUFBZSxtQkFXMUI7QUFFSyxNQUFNLHNCQUFzQixHQUFHLENBQUMsT0FBb0IsRUFBbUMsRUFBRTtJQUM5RixNQUFNLE1BQU0sR0FBRyxJQUFBLHVCQUFlLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFFeEMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1FBQ3hCLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBRUQsSUFBSSxNQUFNLEtBQUssWUFBWSxFQUFFO1FBQzNCLE9BQU8sWUFBWSxDQUFDO0tBQ3JCO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFaVyxRQUFBLHNCQUFzQiwwQkFZakM7QUFFSyxNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBb0IsRUFBVyxFQUFFLENBQ2xFLENBQUMsSUFBQSw0QkFBb0IsRUFBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUEsK0JBQXVCLEVBQUMsT0FBTyxDQUFDLENBQUM7QUFEekQsUUFBQSxrQkFBa0Isc0JBQ3VDO0FBRS9ELE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxPQUFvQixFQUFXLEVBQUUsQ0FDdkUsSUFBQSwrQkFBdUIsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUR0QixRQUFBLHVCQUF1QiwyQkFDRDtBQUU1QixNQUFNLDBCQUEwQixHQUFHLENBQUMsT0FBb0IsRUFBVyxFQUFFLENBQzFFLElBQUEsOEJBQXNCLEVBQUMsT0FBTyxDQUFDLENBQUM7QUFEckIsUUFBQSwwQkFBMEIsOEJBQ0w7QUFFM0IsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLE9BQW9CLEVBQVcsRUFBRSxDQUM3RSxJQUFBLGlDQUF5QixFQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRHhCLFFBQUEsNkJBQTZCLGlDQUNMIn0=
|
package/build/projectsGeneration/defaultCatalogs/{addElasticSearch.js → addExternalSearch.js}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const
|
|
3
|
+
exports.addExternalSearch = void 0;
|
|
4
|
+
const addExternalSearch = (system) => {
|
|
5
5
|
var _a, _b, _c, _d;
|
|
6
|
-
const externalSearchEntities = system.
|
|
6
|
+
const externalSearchEntities = system.getEntitiesWithExternalSearch();
|
|
7
7
|
for (const externalSearchEntity of externalSearchEntities) {
|
|
8
8
|
if (!externalSearchEntity.externalSearchName) {
|
|
9
9
|
continue;
|
|
@@ -25,6 +25,7 @@ const addElasticSearch = (system) => {
|
|
|
25
25
|
});
|
|
26
26
|
externalSearchTrackings
|
|
27
27
|
.setNeedFor(`Данные на основе которых можно понять, какие ${externalSearchEntity.title.plural} нужно обновить во внешней базе для поиска`);
|
|
28
|
+
externalSearchTrackings.setDatabase(externalSearchEntity.database);
|
|
28
29
|
if (externalSearchEntity.sharded) {
|
|
29
30
|
externalSearchTrackings.setSharded();
|
|
30
31
|
externalSearchTrackings.getKey().setType(externalSearchEntity.getKey().type);
|
|
@@ -79,5 +80,5 @@ const addElasticSearch = (system) => {
|
|
|
79
80
|
.setType('datetime');
|
|
80
81
|
}
|
|
81
82
|
};
|
|
82
|
-
exports.
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
exports.addExternalSearch = addExternalSearch;
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkRXh0ZXJuYWxTZWFyY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2RlZmF1bHRDYXRhbG9ncy9hZGRFeHRlcm5hbFNlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFTyxNQUFNLGlCQUFpQixHQUFHLENBQUMsTUFBeUIsRUFBRSxFQUFFOztJQUM3RCxNQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO0lBRXRFLEtBQUssTUFBTSxvQkFBb0IsSUFBSSxzQkFBc0IsRUFBRTtRQUN6RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLEVBQUU7WUFDNUMsU0FBUztTQUNWO1FBRUQsSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxvQkFBb0IsQ0FBQyxJQUFJLCtEQUErRCxDQUFDLENBQUM7U0FDckg7UUFFRCxNQUFNLGlCQUFpQixHQUFHLG1CQUFtQixJQUFJLG9CQUFvQixJQUFJLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDO1FBRWhILE1BQU0sdUJBQXVCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsRUFBQyxNQUFNLEVBQUUsWUFBWSxvQkFBb0IsQ0FBQyxJQUFJLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxZQUFZLG9CQUFvQixDQUFDLElBQUksa0JBQWtCLEVBQUMsQ0FBQyxDQUFBO1FBQzVPLHVCQUF1QixDQUFDLFNBQVMsQ0FBQztZQUNoQyxFQUFFLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFLGFBQWEsTUFBQSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFFBQVEsbUNBQUksb0JBQW9CLENBQUMsSUFBSSxtQkFBbUI7Z0JBQzdHLE1BQU0sRUFBRSxhQUFhLE1BQUEs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
|
|
@@ -15,5 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./files"), exports);
|
|
18
|
-
__exportStar(require("./
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
__exportStar(require("./addExternalSearch"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2RlZmF1bHRDYXRhbG9ncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXVCO0FBQ3ZCLHNEQUFtQyJ9
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const generateBackElasticBootstrap_1 = require("../generateBackElasticBootstrap");
|
|
7
|
+
const generateBackClickHouseBootstrap_1 = require("../generateBackClickHouseBootstrap");
|
|
7
8
|
const generateBackDocs_1 = __importDefault(require("./docs/generateBackDocs"));
|
|
8
9
|
const generateBackSrc_1 = __importDefault(require("./src/generateBackSrc"));
|
|
9
10
|
const generateBackEnvs_1 = __importDefault(require("./generateBackEnvs"));
|
|
@@ -12,8 +13,9 @@ const generateBack = (fileCreator, args) => {
|
|
|
12
13
|
(0, generateBackEnvs_1.default)(fileCreator, args);
|
|
13
14
|
(0, generateBackDocs_1.default)(fileCreator, args);
|
|
14
15
|
(0, generateBackElasticBootstrap_1.generateBackElasticBootstrap)(fileCreator, args);
|
|
16
|
+
(0, generateBackClickHouseBootstrap_1.generateBackClickHouseBootstrap)(fileCreator, args);
|
|
15
17
|
}
|
|
16
18
|
(0, generateBackSrc_1.default)(fileCreator, args);
|
|
17
19
|
};
|
|
18
20
|
exports.default = generateBack;
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVCYWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0ZVByb2plY3QvYmFjay9nZW5lcmF0ZUJhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxrRkFBNkU7QUFDN0Usd0ZBQW1GO0FBQ25GLCtFQUFzRDtBQUN0RCw0RUFBbUQ7QUFDbkQsMEVBQWtEO0FBRWxELE1BQU0sWUFBWSxHQUFHLENBQUMsV0FBd0IsRUFBRSxJQUErQixFQUFFLEVBQUU7SUFDakYsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1FBQzNCLElBQUEsMEJBQWdCLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUEsMEJBQWdCLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUEsMkRBQTRCLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUEsaUVBQStCLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ3BEO0lBRUQsSUFBQSx5QkFBZSxFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNyQyxDQUFDLENBQUE7QUFFRCxrQkFBZSxZQUFZLENBQUMifQ==
|
package/build/projectsGeneration/generateProject/back/src/services/generateBackEntityService.js
CHANGED
|
@@ -43,7 +43,7 @@ const generateBackEntityService = (fileCreator, args) => {
|
|
|
43
43
|
fileCreator.create((0, path_1.join)(hooksDir, 'tenantIdRequiredHooks.ts'), (0, tenantIdRequiredHooks_1.tenantIdRequiredHooksTmpl)(args), (0, fileHandlers_1.addWarnings)({ options: args.options }));
|
|
44
44
|
}
|
|
45
45
|
fileCreator.create((0, path_1.join)(serviceDir, 'initBuiltInHooks.ts'), (0, initBuiltInHooks_1.initBuiltInHooksTmpl)(args), (0, fileHandlers_1.addWarnings)({ options: args.options }));
|
|
46
|
-
if (
|
|
46
|
+
if (entity.storage !== 'elastic' && entity.storage !== 'clickhouse') {
|
|
47
47
|
fileCreator.createIfNotExists((0, path_1.join)(hooksDir, 'additionalOperationsOnCreate.ts'), (0, additionalOperationsOnCreate_1.additionalOperationsOnCreateTmpl)(args));
|
|
48
48
|
fileCreator.createIfNotExists((0, path_1.join)(hooksDir, 'additionalOperationsOnUpdate.ts'), (0, additionalOperationsOnUpdate_1.additionalOperationsOnUpdateTmpl)(args));
|
|
49
49
|
fileCreator.createIfNotExists((0, path_1.join)(hooksDir, 'additionalOperationsOnDelete.ts'), (0, additionalOperationsOnDelete_1.additionalOperationsOnDeleteTmpl)(args));
|
|
@@ -59,4 +59,4 @@ const generateBackEntityService = (fileCreator, args) => {
|
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
61
|
exports.default = generateBackEntityService;
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVCYWNrRW50aXR5U2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdGVQcm9qZWN0L2JhY2svc3JjL3NlcnZpY2VzL2dlbmVyYXRlQmFja0VudGl0eVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQkFBeUI7QUFFekIsc0RBQXVEO0FBRXZELCtJQUE2STtBQUM3SSwrSUFBNkk7QUFDN0ksK0lBQTZJO0FBQzdJLDZHQUEyRztBQUMzRywrR0FBNkc7QUFDN0csK0dBQTZHO0FBQzdHLDZHQUEyRztBQUMzRyw2R0FBMkc7QUFDM0csK0dBQTZHO0FBQzdHLCtHQUE2RztBQUM3Ryx1SEFBcUg7QUFDckgsMkdBQXlHO0FBQ3pHLGlIQUErRztBQUMvRyxpSUFBK0g7QUFDL0gsNkZBQTJGO0FBQzNGLDJGQUEwRztBQUMxRywrR0FBMEg7QUFDMUgsd0RBQWlEO0FBRWpELE1BQU0seUJBQXlCLEdBQUcsQ0FDaEMsV0FBd0IsRUFDeEIsSUFBOEIsRUFDOUIsRUFBRTtJQUNGLE1BQU0sRUFDSixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixPQUFPLEdBQ1IsR0FBRyxJQUFJLENBQUM7SUFFVCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7UUFDbkQsTUFBTSxXQUFXLEdBQUcsR0FBRyxJQUFBLG9CQUFZLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDMUQsTUFBTSxVQUFVLEdBQUcsSUFBQSxXQUFJLEVBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sV0FBVyxHQUFHLElBQUEsV0FBSSxFQUFDLFVBQVUsRUFBRSxHQUFHLFdBQVcsS0FBSyxDQUFD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
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateBackClickHouseBootstrap = void 0;
|
|
4
|
+
const jobs_1 = require("../generators/fileTemplates/back/clickhouse/jobs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const fileHandlers_1 = require("./fileHandlers");
|
|
7
|
+
const storage_1 = require("../builders/storage");
|
|
8
|
+
const generateBackClickHouseBootstrap = (fileCreator, args) => {
|
|
9
|
+
const entities = args.entities.filter((e) => (0, storage_1.entityUsesClickHouseBootstrap)(e.storage));
|
|
10
|
+
if (entities.length === 0) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
fileCreator.create((0, path_1.join)(args.options.detachedBackProject, `src/init/clickhouse/genJobs.ts`), (0, jobs_1.genClickHouseJobsTmpl)(entities, args.options), (0, fileHandlers_1.addWarnings)({ options: args.options }));
|
|
14
|
+
};
|
|
15
|
+
exports.generateBackClickHouseBootstrap = generateBackClickHouseBootstrap;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVCYWNrQ2xpY2tIb3VzZUJvb3RzdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdGVQcm9qZWN0L2dlbmVyYXRlQmFja0NsaWNrSG91c2VCb290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsMkVBQXVGO0FBQ3ZGLCtCQUEwQjtBQUMxQixpREFBMkM7QUFDM0MsaURBQWtFO0FBRTNELE1BQU0sK0JBQStCLEdBQUcsQ0FBQyxXQUF3QixFQUFFLElBQStCLEVBQUUsRUFBRTtJQUMzRyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSx1Q0FBNkIsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUV0RixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3pCLE9BQU07S0FDUDtJQUVELFdBQVcsQ0FBQyxNQUFNLENBQ2hCLElBQUEsV0FBSSxFQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQ2hDLGdDQUFnQyxDQUNqQyxFQUNELElBQUEsNEJBQXFCLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFDN0MsSUFBQSwwQkFBVyxFQUFDLEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUNyQyxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBZlksUUFBQSwrQkFBK0IsbUNBZTNDIn0=
|
|
@@ -4,9 +4,10 @@ exports.generateBackElasticBootstrap = void 0;
|
|
|
4
4
|
const jobs_1 = require("../generators/fileTemplates/back/elastic/jobs");
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const fileHandlers_1 = require("./fileHandlers");
|
|
7
|
+
const storage_1 = require("../builders/storage");
|
|
7
8
|
const generateBackElasticBootstrap = (fileCreator, args) => {
|
|
8
|
-
const entities = args.entities.filter((e) =>
|
|
9
|
+
const entities = args.entities.filter((e) => (0, storage_1.entityUsesElasticBootstrap)(e.storage));
|
|
9
10
|
fileCreator.create((0, path_1.join)(args.options.detachedBackProject, `src/init/elastic/genJobs.ts`), (0, jobs_1.genJobsTmpl)(entities, args.options), (0, fileHandlers_1.addWarnings)({ options: args.options }));
|
|
10
11
|
};
|
|
11
12
|
exports.generateBackElasticBootstrap = generateBackElasticBootstrap;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVCYWNrRWxhc3RpY0Jvb3RzdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdGVQcm9qZWN0L2dlbmVyYXRlQmFja0VsYXN0aWNCb290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsd0VBQTBFO0FBQzFFLCtCQUEwQjtBQUMxQixpREFBMkM7QUFDM0MsaURBQStEO0FBRXhELE1BQU0sNEJBQTRCLEdBQUcsQ0FBQyxXQUF3QixFQUFFLElBQStCLEVBQUUsRUFBRTtJQUN4RyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSxvQ0FBMEIsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUVuRixXQUFXLENBQUMsTUFBTSxDQUNoQixJQUFBLFdBQUksRUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUNoQyw2QkFBNkIsQ0FDOUIsRUFDRCxJQUFBLGtCQUFXLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFDbkMsSUFBQSwwQkFBVyxFQUFDLEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUNyQyxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBWFksUUFBQSw0QkFBNEIsZ0NBV3hDIn0=
|