@things-factory/i18n-base 9.0.0-beta.8 → 9.0.2
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/dist-client/page/terminology-page.js +36 -34
- package/dist-client/page/terminology-page.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/routes.js +3 -2
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/terminology/terminology-mutation.js +25 -7
- package/dist-server/service/terminology/terminology-mutation.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
package/dist-server/routes.js
CHANGED
|
@@ -3,8 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const i18next_1 = tslib_1.__importDefault(require("i18next"));
|
|
5
5
|
const env_1 = require("@things-factory/env");
|
|
6
|
+
const shell_1 = require("@things-factory/shell");
|
|
6
7
|
const disableCustomTerminologyFeature = env_1.config.get('i18n/disableCustomTerminologyFeature');
|
|
7
|
-
const isPathBaseDomain = !env_1.config.get('subdomain')
|
|
8
|
+
const isPathBaseDomain = !env_1.config.get('subdomain');
|
|
8
9
|
const translations_router_1 = require("./routers/translations-router");
|
|
9
10
|
process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) => {
|
|
10
11
|
globalPublicRouter.get('/translations/translate/:lng/:key', async (context, next) => {
|
|
@@ -20,7 +21,7 @@ process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) =>
|
|
|
20
21
|
});
|
|
21
22
|
process.on('bootstrap-module-domain-public-route', (app, domainPublicRouter) => {
|
|
22
23
|
if (isPathBaseDomain) {
|
|
23
|
-
domainPublicRouter.use(
|
|
24
|
+
domainPublicRouter.use(`/${(0, shell_1.getRoutePrefixForDomainType)()}/:subdomain`, translations_router_1.translationsRouter.routes(), translations_router_1.translationsRouter.allowedMethods());
|
|
24
25
|
}
|
|
25
26
|
else if (!disableCustomTerminologyFeature) {
|
|
26
27
|
domainPublicRouter.use('', translations_router_1.translationsRouter.routes(), translations_router_1.translationsRouter.allowedMethods());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":";;;AAAA,8DAA6B;AAC7B,6CAA4C;
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":";;;AAAA,8DAA6B;AAC7B,6CAA4C;AAC5C,iDAAmE;AAEnE,MAAM,+BAA+B,GAAG,YAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAA;AAC1F,MAAM,gBAAgB,GAAG,CAAC,YAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AAEjD,uEAAkE;AAElE,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF,kBAAkB,CAAC,GAAG,CAAC,mCAAmC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAClF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;QACnC,MAAM,UAAU,GAAG,iBAAO,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAA;QAEvE,OAAO,CAAC,IAAI,GAAG,UAAU,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,kBAAkB,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC7E,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;QAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAEjC,OAAO,CAAC,IAAI,GAAG,UAAU,CAAA;IAC3B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF,IAAI,gBAAgB,EAAE,CAAC;QACrB,kBAAkB,CAAC,GAAG,CACpB,IAAI,IAAA,mCAA2B,GAAE,aAAa,EAC9C,wCAAkB,CAAC,MAAM,EAAE,EAC3B,wCAAkB,CAAC,cAAc,EAAE,CACpC,CAAA;IACH,CAAC;SAAM,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAC5C,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,wCAAkB,CAAC,MAAM,EAAE,EAAE,wCAAkB,CAAC,cAAc,EAAE,CAAC,CAAA;IAC9F,CAAC;AACH,CAAC,CAAC,CAAA","sourcesContent":["import i18next from 'i18next'\nimport { config } from '@things-factory/env'\nimport { getRoutePrefixForDomainType } from '@things-factory/shell'\n\nconst disableCustomTerminologyFeature = config.get('i18n/disableCustomTerminologyFeature')\nconst isPathBaseDomain = !config.get('subdomain')\n\nimport { translationsRouter } from './routers/translations-router'\n\nprocess.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {\n globalPublicRouter.get('/translations/translate/:lng/:key', async (context, next) => {\n const { lng, key } = context.params\n const translated = i18next.getFixedT(lng, 'translations' /* ns */)(key)\n\n context.body = translated\n })\n\n globalPublicRouter.get('/translations/translate/:key', async (context, next) => {\n const { key } = context.params\n const translated = context.t(key)\n\n context.body = translated\n })\n})\n\nprocess.on('bootstrap-module-domain-public-route' as any, (app, domainPublicRouter) => {\n if (isPathBaseDomain) {\n domainPublicRouter.use(\n `/${getRoutePrefixForDomainType()}/:subdomain`,\n translationsRouter.routes(),\n translationsRouter.allowedMethods()\n )\n } else if (!disableCustomTerminologyFeature) {\n domainPublicRouter.use('', translationsRouter.routes(), translationsRouter.allowedMethods())\n }\n})\n"]}
|
|
@@ -19,7 +19,12 @@ function clearCache(subdomain) {
|
|
|
19
19
|
let TerminologyMutation = class TerminologyMutation {
|
|
20
20
|
async createTerminology(terminology, context) {
|
|
21
21
|
const { domain, user, tx } = context.state;
|
|
22
|
-
const result = await tx.getRepository(terminology_1.Terminology).save(
|
|
22
|
+
const result = await tx.getRepository(terminology_1.Terminology).save({
|
|
23
|
+
...terminology,
|
|
24
|
+
domain,
|
|
25
|
+
creator: user,
|
|
26
|
+
updater: user
|
|
27
|
+
});
|
|
23
28
|
clearCache(domain.subdomain);
|
|
24
29
|
return result;
|
|
25
30
|
}
|
|
@@ -29,7 +34,11 @@ let TerminologyMutation = class TerminologyMutation {
|
|
|
29
34
|
const terminology = await repository.findOne({
|
|
30
35
|
where: { domain: { id: domain.id }, id }
|
|
31
36
|
});
|
|
32
|
-
const result = await repository.save(
|
|
37
|
+
const result = await repository.save({
|
|
38
|
+
...terminology,
|
|
39
|
+
...patch,
|
|
40
|
+
updater: user
|
|
41
|
+
});
|
|
33
42
|
clearCache(domain.subdomain);
|
|
34
43
|
return result;
|
|
35
44
|
}
|
|
@@ -42,16 +51,25 @@ let TerminologyMutation = class TerminologyMutation {
|
|
|
42
51
|
if (_createRecords.length > 0) {
|
|
43
52
|
for (let i = 0; i < _createRecords.length; i++) {
|
|
44
53
|
const newRecord = _createRecords[i];
|
|
45
|
-
const result = await terminologyRepo.save(
|
|
46
|
-
|
|
54
|
+
const result = await terminologyRepo.save({
|
|
55
|
+
...newRecord,
|
|
56
|
+
domain,
|
|
57
|
+
creator: user,
|
|
58
|
+
updater: user
|
|
59
|
+
});
|
|
60
|
+
results.push({ ...result, cuFlag: '+' });
|
|
47
61
|
}
|
|
48
62
|
}
|
|
49
63
|
if (_updateRecords.length > 0) {
|
|
50
64
|
for (let i = 0; i < _updateRecords.length; i++) {
|
|
51
65
|
const newRecord = _updateRecords[i];
|
|
52
66
|
const terminology = await terminologyRepo.findOneBy({ id: newRecord.id });
|
|
53
|
-
const result = await terminologyRepo.save(
|
|
54
|
-
|
|
67
|
+
const result = await terminologyRepo.save({
|
|
68
|
+
...terminology,
|
|
69
|
+
...newRecord,
|
|
70
|
+
updater: user
|
|
71
|
+
});
|
|
72
|
+
results.push({ ...result, cuFlag: 'M' });
|
|
55
73
|
}
|
|
56
74
|
}
|
|
57
75
|
clearCache(domain.subdomain);
|
|
@@ -80,7 +98,7 @@ let TerminologyMutation = class TerminologyMutation {
|
|
|
80
98
|
async importTerminologies(terminologies, context) {
|
|
81
99
|
const { domain, tx } = context.state;
|
|
82
100
|
await Promise.all(terminologies.map(async (terminology) => {
|
|
83
|
-
const createdTerminology = await tx.getRepository(terminology_1.Terminology).save(
|
|
101
|
+
const createdTerminology = await tx.getRepository(terminology_1.Terminology).save({ domain, ...terminology });
|
|
84
102
|
}));
|
|
85
103
|
clearCache(domain.subdomain);
|
|
86
104
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminology-mutation.js","sourceRoot":"","sources":["../../../server/service/terminology/terminology-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { Terminology } from './terminology'\nimport { NewTerminology, TerminologyPatch } from './terminology-type'\n\nimport { clearTranslationCacheForCertainDomain } from '../../controllers/clear-cache-for-translation'\n\nfunction clearCache(subdomain: string) {\n /** multiple update/delete시 모든 엔티티에 대해서 subscription 이 걸리므로, EventSubscriber를 사용하지 않음. */\n try {\n clearTranslationCacheForCertainDomain(subdomain)\n } catch (err) {\n console.error('Failed to delete the translations cache directory:', err)\n }\n}\n\n@Resolver(Terminology)\nexport class TerminologyMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"terminology\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Terminology, { description: 'To create new Terminology' })\n async createTerminology(@Arg('terminology') terminology: NewTerminology, @Ctx() context: any): Promise<Terminology> {\n const { domain, user, tx } = context.state\n\n const result = await tx.getRepository(Terminology).save({\n ...terminology,\n domain,\n creator: user,\n updater: user\n })\n\n clearCache(domain.subdomain)\n\n return result\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"terminology\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Terminology, { description: 'To modify Terminology information' })\n async updateTerminology(\n @Arg('id') id: string,\n @Arg('patch') patch: TerminologyPatch,\n @Ctx() context: any\n ): Promise<Terminology> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(Terminology)\n const terminology = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const result = await repository.save({\n ...terminology,\n ...patch,\n updater: user\n })\n\n clearCache(domain.subdomain)\n\n return result\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"terminology\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => [Terminology], { description: \"To modify multiple Terminologies' information\" })\n async updateMultipleTerminologies(\n @Arg('patches', type => [TerminologyPatch]) patches: TerminologyPatch[],\n @Ctx() context: any\n ): Promise<Terminology[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const terminologyRepo = tx.getRepository(Terminology)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await terminologyRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const terminology = await terminologyRepo.findOneBy({ id: newRecord.id })\n\n const result = await terminologyRepo.save({\n ...terminology,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n clearCache(domain.subdomain)\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To clear translations cache' })\n async clearTranslationsCache(@Ctx() context: any): Promise<boolean> {\n const { domain, tx } = context.state\n\n clearCache(domain.subdomain)\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"terminology\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete Terminology' })\n async deleteTerminology(@Arg('id') id: string, @Ctx() context: any): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Terminology).delete({ domain: { id: domain.id }, id })\n\n clearCache(domain.subdomain)\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"terminology\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple Terminologies' })\n async deleteTerminologies(@Arg('ids', type => [String]) ids: string[], @Ctx() context: any): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Terminology).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n clearCache(domain.subdomain)\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"terminology\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To import multiple Terminologies' })\n async importTerminologies(\n @Arg('terminologies', type => [TerminologyPatch]) terminologies: TerminologyPatch[],\n @Ctx() context: any\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n terminologies.map(async (terminology: TerminologyPatch) => {\n const createdTerminology: Terminology = await tx.getRepository(Terminology).save({ domain, ...terminology })\n })\n )\n\n clearCache(domain.subdomain)\n\n return true\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"terminology-mutation.js","sourceRoot":"","sources":["../../../server/service/terminology/terminology-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { Terminology } from './terminology'\nimport { NewTerminology, TerminologyPatch } from './terminology-type'\n\nimport { clearTranslationCacheForCertainDomain } from '../../controllers/clear-cache-for-translation'\n\nfunction clearCache(subdomain: string) {\n /** multiple update/delete시 모든 엔티티에 대해서 subscription 이 걸리므로, EventSubscriber를 사용하지 않음. */\n try {\n clearTranslationCacheForCertainDomain(subdomain)\n } catch (err) {\n console.error('Failed to delete the translations cache directory:', err)\n }\n}\n\n@Resolver(Terminology)\nexport class TerminologyMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"terminology\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Terminology, { description: 'To create new Terminology' })\n async createTerminology(@Arg('terminology') terminology: NewTerminology, @Ctx() context: any): Promise<Terminology> {\n const { domain, user, tx } = context.state\n\n const result = await tx.getRepository(Terminology).save({\n ...terminology,\n domain,\n creator: user,\n updater: user\n })\n\n clearCache(domain.subdomain)\n\n return result\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"terminology\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Terminology, { description: 'To modify Terminology information' })\n async updateTerminology(\n @Arg('id') id: string,\n @Arg('patch') patch: TerminologyPatch,\n @Ctx() context: any\n ): Promise<Terminology> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(Terminology)\n const terminology = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const result = await repository.save({\n ...terminology,\n ...patch,\n updater: user\n })\n\n clearCache(domain.subdomain)\n\n return result\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"terminology\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => [Terminology], { description: \"To modify multiple Terminologies' information\" })\n async updateMultipleTerminologies(\n @Arg('patches', type => [TerminologyPatch]) patches: TerminologyPatch[],\n @Ctx() context: any\n ): Promise<Terminology[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const terminologyRepo = tx.getRepository(Terminology)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await terminologyRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const terminology = await terminologyRepo.findOneBy({ id: newRecord.id })\n\n const result = await terminologyRepo.save({\n ...terminology,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n clearCache(domain.subdomain)\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To clear translations cache' })\n async clearTranslationsCache(@Ctx() context: any): Promise<boolean> {\n const { domain, tx } = context.state\n\n clearCache(domain.subdomain)\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"terminology\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete Terminology' })\n async deleteTerminology(@Arg('id') id: string, @Ctx() context: any): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Terminology).delete({ domain: { id: domain.id }, id })\n\n clearCache(domain.subdomain)\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"terminology\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple Terminologies' })\n async deleteTerminologies(@Arg('ids', type => [String]) ids: string[], @Ctx() context: any): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Terminology).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n clearCache(domain.subdomain)\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"terminology\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To import multiple Terminologies' })\n async importTerminologies(\n @Arg('terminologies', type => [TerminologyPatch]) terminologies: TerminologyPatch[],\n @Ctx() context: any\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n terminologies.map(async (terminology: TerminologyPatch) => {\n const createdTerminology: Terminology = await tx.getRepository(Terminology).save({ domain, ...terminology })\n })\n )\n\n clearCache(domain.subdomain)\n\n return true\n }\n}\n"]}
|