@ngx-translate/http-loader
Version:
http loader for dynamically loading translation files for @ngx-translate/core
1 lines • 3.55 kB
Source Map (JSON)
{"version":3,"file":"ngx-translate-http-loader.mjs","sources":["../../../projects/http-loader/src/lib/http-loader.ts","../../../projects/http-loader/src/ngx-translate-http-loader.ts"],"sourcesContent":["import { HttpBackend, HttpClient } from \"@angular/common/http\";\nimport { inject, Injectable, InjectionToken, Provider } from \"@angular/core\";\nimport { TranslateLoader, TranslationObject } from \"@ngx-translate/core\";\nimport { Observable } from \"rxjs\";\n\nexport interface TranslateHttpLoaderConfig {\n prefix: string;\n suffix: string;\n enforceLoading: boolean;\n useHttpBackend: boolean;\n}\n\nexport const TRANSLATE_HTTP_LOADER_CONFIG = new InjectionToken<Partial<TranslateHttpLoaderConfig>>(\n \"TRANSLATE_HTTP_LOADER_CONFIG\",\n);\n\n@Injectable()\nexport class TranslateHttpLoader implements TranslateLoader {\n private http: HttpClient;\n private config: TranslateHttpLoaderConfig;\n\n constructor() {\n this.config = {\n prefix: \"/assets/i18n/\",\n suffix: \".json\",\n enforceLoading: false,\n useHttpBackend: false,\n ...inject(TRANSLATE_HTTP_LOADER_CONFIG),\n };\n\n this.http = this.config.useHttpBackend\n ? new HttpClient(inject(HttpBackend))\n : inject(HttpClient);\n }\n\n /**\n * Gets the translations from the server\n */\n public getTranslation(lang: string): Observable<TranslationObject> {\n const cacheBuster = this.config.enforceLoading ? `?enforceLoading=${Date.now()}` : \"\";\n\n return this.http.get(\n `${this.config.prefix}${lang}${this.config.suffix}${cacheBuster}`,\n ) as Observable<TranslationObject>;\n }\n}\n\nexport function provideTranslateHttpLoader(\n config: Partial<TranslateHttpLoaderConfig> = {},\n): Provider[] {\n const useBackend = config.useHttpBackend ?? false;\n\n return [\n {\n provide: TRANSLATE_HTTP_LOADER_CONFIG,\n useValue: config,\n },\n {\n provide: TranslateLoader,\n useClass: TranslateHttpLoader,\n deps: [useBackend ? HttpBackend : HttpClient, TRANSLATE_HTTP_LOADER_CONFIG],\n },\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAYa,4BAA4B,GAAG,IAAI,cAAc,CAC1D,8BAA8B;MAIrB,mBAAmB,CAAA;AACpB,IAAA,IAAI;AACJ,IAAA,MAAM;AAEd,IAAA,WAAA,GAAA;QACI,IAAI,CAAC,MAAM,GAAG;AACV,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,cAAc,EAAE,KAAK;YACrB,GAAG,MAAM,CAAC,4BAA4B,CAAC;SAC1C;AAED,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;cAClB,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC;AACpC,cAAE,MAAM,CAAC,UAAU,CAAC;;AAG5B;;AAEG;AACI,IAAA,cAAc,CAAC,IAAY,EAAA;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,mBAAmB,IAAI,CAAC,GAAG,EAAE,CAAA,CAAE,GAAG,EAAE;QAErF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,CAAG,EAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAG,EAAA,WAAW,CAAE,CAAA,CACnC;;uGA1B7B,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAnB,mBAAmB,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;AA+Be,SAAA,0BAA0B,CACtC,MAAA,GAA6C,EAAE,EAAA;AAE/C,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK;IAEjD,OAAO;AACH,QAAA;AACI,YAAA,OAAO,EAAE,4BAA4B;AACrC,YAAA,QAAQ,EAAE,MAAM;AACnB,SAAA;AACD,QAAA;AACI,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,QAAQ,EAAE,mBAAmB;AAC7B,YAAA,IAAI,EAAE,CAAC,UAAU,GAAG,WAAW,GAAG,UAAU,EAAE,4BAA4B,CAAC;AAC9E,SAAA;KACJ;AACL;;AC/DA;;AAEG;;;;"}