ngx-translate-formatjs-compiler
Version:
[Format.js](https://formatjs.io/) based [@ngx/translate](https://github.com/ngx-translate/core) compiler.
1 lines • 2.98 kB
Source Map (JSON)
{"version":3,"file":"ngx-translate-formatjs-compiler.mjs","sources":["../../src/lib/translate-format-js-compiler.ts","../../src/public-api.ts","../../src/ngx-translate-formatjs-compiler.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { TranslateCompiler } from '@ngx-translate/core';\nimport { IntlMessageFormat } from 'intl-messageformat';\n\n@Injectable()\nexport class TranslateFormatJsCompiler extends TranslateCompiler {\n /** Compiles single translation */\n compile(\n value: string,\n lang: string,\n ): string | ((params?: Record<string, unknown>) => any) {\n return (params?: any): any => {\n try {\n return new IntlMessageFormat(value, lang).format(params);\n } catch (e: any) {\n // eslint-disable-next-line no-console\n console.error(e);\n return `ERROR in: \"${value}\"`;\n }\n };\n }\n\n /** Compile translations object */\n compileTranslations(translations: any, lang: string): any {\n this.compileRecursively(translations, lang);\n return translations;\n }\n\n /**\n * Traverse through object and replace translations strings with compile function.\n * @param obj to be traversed\n * @param lang from @ngx-translate\n * @returns translation object with compile functions.\n */\n private compileRecursively(obj: any, lang: string): void {\n Object.keys(obj).forEach((key: string) => {\n const value = obj[key];\n\n if (typeof value === 'string') {\n // eslint-disable-next-line no-param-reassign\n obj[key] = this.compile(value, lang);\n } else {\n this.compileRecursively(value, lang);\n }\n });\n }\n}\n","/*\n * Public API Surface of lib\n */\n\nexport * from './lib/translate-format-js-compiler';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAKM,MAAO,yBAA0B,SAAQ,iBAAiB,CAAA;;IAE9D,OAAO,CACL,KAAa,EACb,IAAY,EAAA;QAEZ,OAAO,CAAC,MAAY,KAAS;YAC3B,IAAI;AACF,gBAAA,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1D,aAAA;AAAC,YAAA,OAAO,CAAM,EAAE;;AAEf,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,OAAO,CAAA,WAAA,EAAc,KAAK,CAAA,CAAA,CAAG,CAAC;AAC/B,aAAA;AACH,SAAC,CAAC;KACH;;IAGD,mBAAmB,CAAC,YAAiB,EAAE,IAAY,EAAA;AACjD,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC5C,QAAA,OAAO,YAAY,CAAC;KACrB;AAED;;;;;AAKG;IACK,kBAAkB,CAAC,GAAQ,EAAE,IAAY,EAAA;QAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;AACvC,YAAA,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvB,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;;AAE7B,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtC,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;;sHAxCU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;0HAAzB,yBAAyB,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;;;ACJX;;AAEG;;ACFH;;AAEG;;;;"}