@things-factory/i18n-base 7.0.1-alpha.56 → 7.0.1-alpha.60

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.
@@ -13,6 +13,10 @@ var fs = require('fs');
13
13
  process.on('client-rebuilt', (app, compilerFileSystem) => {
14
14
  /* change filesystem whenever webpacking assets done. only for development mode. */
15
15
  fs = compilerFileSystem;
16
+ const cacheFileFolder = path.join('cache', 'translations');
17
+ if (cacheFS.existsSync(cacheFileFolder)) {
18
+ cacheFS.rmdirSync(cacheFileFolder, { recursive: true });
19
+ }
16
20
  });
17
21
  process.on('bootstrap-module-global-public-route', (app, globalPublicRouter) => {
18
22
  globalPublicRouter.get('/translations/translate/:lng/:key', async (context, next) => {
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":";;;AAAA,8DAA6B;AAC7B,qCAA+B;AAE/B,iDAAqD;AACrD,6CAA4C;AAE5C,MAAM,+BAA+B,GAAG,YAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAA;AAE1F,mEAA+D;AAE/D,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAC7B,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEtB,OAAO,CAAC,EAAE,CAAC,gBAAuB,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IAC9D,mFAAmF;IACnF,EAAE,GAAG,kBAAkB,CAAA;AACzB,CAAC,CAAC,CAAA;AAEF,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,kBAAkB,CAAC,GAAG,CAAC,2CAA2C,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC1F,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,MAAM,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpD,4EAA4E;QAC5E,wFAAwF;QAExF,IAAI,+BAA+B,EAAE;YACnC,IAAI,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;YAEzF,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAA;YACjC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;YACnB,OAAM;SACP;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC,CAAA;QACrE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;QAE1D,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;YACrC,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;SAC/C;aAAM;YACL,IAAI,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;YAEzF,IAAI;gBACF,MAAM,aAAa,GAAG,MAAM,IAAA,qBAAa,EAAC,yBAAW,CAAC,CAAC,IAAI,CAAC;oBAC1D,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAA,eAAK,EAAC,MAAM,GAAG,GAAG,CAAC,EAAE;iBAClE,CAAC,CAAA;gBAEF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAE7B,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAC3B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;oBACxC,IAAI,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,GAAG,OAAO,CAAA;gBACvC,CAAC,CAAC,CAAA;gBAEF,IAAI;oBACF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;wBACxC,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;qBACxD;oBAED,OAAO,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;iBAC3D;gBAAC,OAAO,GAAG,EAAE;oBACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;iBACnB;gBAED,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAA;gBACjC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;gBAEnB,OAAM;aACP;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;SACF;QAED,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAA;QACjC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;IACrB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import i18next from 'i18next'\nimport { ILike } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\nimport { config } from '@things-factory/env'\n\nconst disableCustomTerminologyFeature = config.get('i18n/disableCustomTerminologyFeature')\n\nimport { Terminology } from './service/terminology/terminology'\n\nconst path = require('path')\nconst cacheFS = require('fs')\nvar fs = require('fs')\n\nprocess.on('client-rebuilt' as any, (app, compilerFileSystem) => {\n /* change filesystem whenever webpacking assets done. only for development mode. */\n fs = compilerFileSystem\n})\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 domainPublicRouter.get('/domain/:subdomain/translations/:filename', async (context, next) => {\n const { subdomain, filename } = context.params\n const { domain } = context.state\n\n const locale = (filename || 'en.json').split('.')[0]\n\n // context.set('Cache-Control', 'public, max-age=31536000') // 캐시 기간 설정 : 1년\n // context.set('Expires', new Date(Date.now() + 31536000000).toUTCString()) // 캐시 만료일 설정\n\n if (disableCustomTerminologyFeature) {\n var file = fs.readFileSync(path.resolve(path.join('dist-app', 'translations', filename)))\n\n context.type = 'application/json'\n context.body = file\n return\n }\n\n const cacheFileFolder = path.join('cache', 'translations', subdomain)\n const cacheFilePath = path.join(cacheFileFolder, filename)\n\n if (cacheFS.existsSync(cacheFilePath)) {\n var file = cacheFS.readFileSync(cacheFilePath)\n } else {\n var file = fs.readFileSync(path.resolve(path.join('dist-app', 'translations', filename)))\n\n try {\n const terminologies = await getRepository(Terminology).find({\n where: { domain: { id: domain.id }, locale: ILike(locale + '%') }\n })\n\n const json = JSON.parse(file)\n\n terminologies.forEach(term => {\n const { name, category, display } = term\n json[`${category}.${name}`] = display\n })\n\n try {\n if (!cacheFS.existsSync(cacheFileFolder)) {\n cacheFS.mkdirSync(cacheFileFolder, { recursive: true })\n }\n\n cacheFS.writeFileSync(cacheFilePath, JSON.stringify(json))\n } catch (err) {\n console.error(err)\n }\n\n context.type = 'application/json'\n context.body = json\n\n return\n } catch (err) {\n console.error(err)\n }\n }\n\n context.type = 'application/json'\n context.body = file\n })\n})\n"]}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":"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","sourcesContent":["import i18next from 'i18next'\nimport { ILike } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\nimport { config } from '@things-factory/env'\n\nconst disableCustomTerminologyFeature = config.get('i18n/disableCustomTerminologyFeature')\n\nimport { Terminology } from './service/terminology/terminology'\n\nconst path = require('path')\nconst cacheFS = require('fs')\nvar fs = require('fs')\n\nprocess.on('client-rebuilt' as any, (app, compilerFileSystem) => {\n /* change filesystem whenever webpacking assets done. only for development mode. */\n fs = compilerFileSystem\n\n const cacheFileFolder = path.join('cache', 'translations')\n\n if (cacheFS.existsSync(cacheFileFolder)) {\n cacheFS.rmdirSync(cacheFileFolder, { recursive: true })\n }\n})\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 domainPublicRouter.get('/domain/:subdomain/translations/:filename', async (context, next) => {\n const { subdomain, filename } = context.params\n const { domain } = context.state\n\n const locale = (filename || 'en.json').split('.')[0]\n\n // context.set('Cache-Control', 'public, max-age=31536000') // 캐시 기간 설정 : 1년\n // context.set('Expires', new Date(Date.now() + 31536000000).toUTCString()) // 캐시 만료일 설정\n\n if (disableCustomTerminologyFeature) {\n var file = fs.readFileSync(path.resolve(path.join('dist-app', 'translations', filename)))\n\n context.type = 'application/json'\n context.body = file\n return\n }\n\n const cacheFileFolder = path.join('cache', 'translations', subdomain)\n const cacheFilePath = path.join(cacheFileFolder, filename)\n\n if (cacheFS.existsSync(cacheFilePath)) {\n var file = cacheFS.readFileSync(cacheFilePath)\n } else {\n var file = fs.readFileSync(path.resolve(path.join('dist-app', 'translations', filename)))\n\n try {\n const terminologies = await getRepository(Terminology).find({\n where: { domain: { id: domain.id }, locale: ILike(locale + '%') }\n })\n\n const json = JSON.parse(file)\n\n terminologies.forEach(term => {\n const { name, category, display } = term\n json[`${category}.${name}`] = display\n })\n\n try {\n if (!cacheFS.existsSync(cacheFileFolder)) {\n cacheFS.mkdirSync(cacheFileFolder, { recursive: true })\n }\n\n cacheFS.writeFileSync(cacheFilePath, JSON.stringify(json))\n } catch (err) {\n console.error(err)\n }\n\n context.type = 'application/json'\n context.body = json\n\n return\n } catch (err) {\n console.error(err)\n }\n }\n\n context.type = 'application/json'\n context.body = file\n })\n})\n"]}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TerminologySubscriber = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const typeorm_1 = require("typeorm");
6
+ const shell_1 = require("@things-factory/shell");
6
7
  const terminology_1 = require("./terminology");
7
8
  const clear_cache_for_translation_1 = require("../../controllers/clear-cache-for-translation");
8
9
  function clearCache(subdomain) {
@@ -19,11 +20,17 @@ let TerminologySubscriber = class TerminologySubscriber {
19
20
  }
20
21
  async afterInsert(event) {
21
22
  const { entity: terminology, manager: tx } = event;
22
- clearCache(terminology.domain.subdomain);
23
+ const domain = await tx.getRepository(shell_1.Domain).findOne({
24
+ where: { id: terminology.domainId }
25
+ });
26
+ clearCache(domain.subdomain);
23
27
  }
24
28
  async afterUpdate(event) {
25
29
  const { entity: terminology, manager: tx } = event;
26
- clearCache(terminology.domain.subdomain);
30
+ const domain = await tx.getRepository(shell_1.Domain).findOne({
31
+ where: { id: terminology.domainId }
32
+ });
33
+ clearCache(domain.subdomain);
27
34
  }
28
35
  };
29
36
  TerminologySubscriber = tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"event-subscriber.js","sourceRoot":"","sources":["../../../server/service/terminology/event-subscriber.ts"],"names":[],"mappings":";;;;AAAA,qCAA8F;AAE9F,+CAA2C;AAE3C,+FAAqG;AAErG,SAAS,UAAU,CAAC,SAAiB;IACnC,IAAI;QACF,IAAA,mEAAqC,EAAC,SAAS,CAAC,CAAA;KACjD;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,GAAG,CAAC,CAAA;KACzE;AACH,CAAC;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChC,QAAQ;QACN,OAAO,yBAAW,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA+B;QAC/C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,KAAK,CAAA;QAElD,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA+B;QAC/C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,KAAK,CAAA;QAElD,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC1C,CAAC;CACF,CAAA;AAhBY,qBAAqB;IADjC,IAAA,yBAAe,GAAE;GACL,qBAAqB,CAgBjC;AAhBY,sDAAqB","sourcesContent":["import { EventSubscriber, EntitySubscriberInterface, InsertEvent, UpdateEvent } from 'typeorm'\n\nimport { Terminology } from './terminology'\n\nimport { clearTranslationCacheForCertainDomain } from '../../controllers/clear-cache-for-translation'\n\nfunction clearCache(subdomain: string) {\n try {\n clearTranslationCacheForCertainDomain(subdomain)\n } catch (err) {\n console.error('Failed to delete the translations cache directory:', err)\n }\n}\n\n@EventSubscriber()\nexport class TerminologySubscriber implements EntitySubscriberInterface<Terminology> {\n listenTo() {\n return Terminology\n }\n\n async afterInsert(event: InsertEvent<Terminology>): Promise<any | void> {\n const { entity: terminology, manager: tx } = event\n\n clearCache(terminology.domain.subdomain)\n }\n\n async afterUpdate(event: UpdateEvent<Terminology>): Promise<any | void> {\n const { entity: terminology, manager: tx } = event\n\n clearCache(terminology.domain.subdomain)\n }\n}\n"]}
1
+ {"version":3,"file":"event-subscriber.js","sourceRoot":"","sources":["../../../server/service/terminology/event-subscriber.ts"],"names":[],"mappings":";;;;AAAA,qCAA8F;AAC9F,iDAA8C;AAE9C,+CAA2C;AAE3C,+FAAqG;AAErG,SAAS,UAAU,CAAC,SAAiB;IACnC,IAAI;QACF,IAAA,mEAAqC,EAAC,SAAS,CAAC,CAAA;KACjD;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,GAAG,CAAC,CAAA;KACzE;AACH,CAAC;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChC,QAAQ;QACN,OAAO,yBAAW,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA+B;QAC/C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,KAAK,CAAA;QAElD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,OAAO,CAAC;YACpD,KAAK,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE;SACpC,CAAC,CAAA;QAEF,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA+B;QAC/C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,KAAK,CAAA;QAElD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,OAAO,CAAC;YACpD,KAAK,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE;SACpC,CAAC,CAAA;QAEF,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC;CACF,CAAA;AAxBY,qBAAqB;IADjC,IAAA,yBAAe,GAAE;GACL,qBAAqB,CAwBjC;AAxBY,sDAAqB","sourcesContent":["import { EventSubscriber, EntitySubscriberInterface, InsertEvent, UpdateEvent } from 'typeorm'\nimport { Domain } from '@things-factory/shell'\n\nimport { Terminology } from './terminology'\n\nimport { clearTranslationCacheForCertainDomain } from '../../controllers/clear-cache-for-translation'\n\nfunction clearCache(subdomain: string) {\n try {\n clearTranslationCacheForCertainDomain(subdomain)\n } catch (err) {\n console.error('Failed to delete the translations cache directory:', err)\n }\n}\n\n@EventSubscriber()\nexport class TerminologySubscriber implements EntitySubscriberInterface<Terminology> {\n listenTo() {\n return Terminology\n }\n\n async afterInsert(event: InsertEvent<Terminology>): Promise<any | void> {\n const { entity: terminology, manager: tx } = event\n\n const domain = await tx.getRepository(Domain).findOne({\n where: { id: terminology.domainId }\n })\n\n clearCache(domain.subdomain)\n }\n\n async afterUpdate(event: UpdateEvent<Terminology>): Promise<any | void> {\n const { entity: terminology, manager: tx } = event\n\n const domain = await tx.getRepository(Domain).findOne({\n where: { id: terminology.domainId }\n })\n\n clearCache(domain.subdomain)\n }\n}\n"]}