ngx-translate-multi-http-loader 9.0.0 → 9.0.1

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/README.md CHANGED
@@ -70,11 +70,28 @@ export function HttpLoaderFactory(_httpBackend: HttpBackend) {
70
70
  export class AppModule { }
71
71
  ```
72
72
 
73
- The `MultiTranslateHttpLoader` takes a list of strings.
73
+ The `MultiTranslateHttpLoader` takes a list of `string[]` or `ITranslationResource[]`.
74
74
 
75
- Those strings, for example `['/assets/i18n/core/', '/assets/i18n/vendors/']`,
75
+ ### String[]
76
+ For example `['/assets/i18n/core/', '/assets/i18n/vendors/']`,
76
77
  will load your translations files for the lang "en" from : `/assets/i18n/core/en.json` and `/assets/i18n/vendors/en.json`
77
78
 
79
+ ### Custom suffix
80
+ **For now this loader only support the `json` format.**
81
+
82
+ Instead of an array of `string[]`,
83
+ you may pass a list of parameters:
84
+ - `prefix: string = '/assets/i18n/'`
85
+ - `suffix: string = '.json'`
86
+
87
+ ```typescript
88
+ export function HttpLoaderFactory(_httpBackend: HttpBackend) {
89
+ return new MultiTranslateHttpLoader(_httpBackend, [
90
+ {prefix: './assets/i18n/core/', suffix: '.json'},
91
+ {prefix: './assets/i18n/vendors/'}, // , "suffix: '.json'" being the default value
92
+ ]);
93
+ }
94
+ ```
78
95
 
79
96
  The loader will merge all translation files from the server using [deepmerge](https://github.com/KyleAMathews/deepmerge).
80
97
 
@@ -8,8 +8,13 @@ export class MultiTranslateHttpLoader {
8
8
  this._resourcesPrefix = _resourcesPrefix;
9
9
  }
10
10
  getTranslation(lang) {
11
- const requests = this._resourcesPrefix.map((prefix) => {
12
- const path = `${prefix}${lang}.json`;
11
+ const requests = this._resourcesPrefix.map((resource) => {
12
+ let path;
13
+ if (resource.prefix)
14
+ path = `${resource.prefix}${lang}${resource.suffix || '.json'}`;
15
+ else {
16
+ path = `${resource}${lang}.json`;
17
+ }
13
18
  return new HttpClient(this._handler).get(path).pipe(catchError((res) => {
14
19
  console.error('Something went wrong for the following translation file:', path);
15
20
  console.error(res.message);
@@ -19,4 +24,4 @@ export class MultiTranslateHttpLoader {
19
24
  return forkJoin(requests).pipe(map((response) => merge.all(response)));
20
25
  }
21
26
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaHR0cC1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tdWx0aS1odHRwLWxvYWRlci9zcmMvbGliL211bHRpLWh0dHAtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUU5RCxPQUFPLEtBQUssS0FBSyxNQUFNLFdBQVcsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRWhELE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFBb0IsUUFBcUIsRUFBVSxnQkFBMEI7UUFBekQsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBVTtJQUFHLENBQUM7SUFFMUUsY0FBYyxDQUFDLElBQVk7UUFDaEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BELE1BQU0sSUFBSSxHQUFHLEdBQUcsTUFBTSxHQUFHLElBQUksT0FBTyxDQUFBO1lBRXBDLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ2pELFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLDBEQUEwRCxFQUFFLElBQUksQ0FBQyxDQUFBO2dCQUMvRSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtnQkFDMUIsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDZixDQUFDLENBQUMsQ0FDSCxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN4RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQmFja2VuZCwgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xyXG5pbXBvcnQgKiBhcyBtZXJnZSBmcm9tICdkZWVwbWVyZ2UnXHJcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5cclxuZXhwb3J0IGNsYXNzIE11bHRpVHJhbnNsYXRlSHR0cExvYWRlciBpbXBsZW1lbnRzIFRyYW5zbGF0ZUxvYWRlciB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaGFuZGxlcjogSHR0cEJhY2tlbmQsIHByaXZhdGUgX3Jlc291cmNlc1ByZWZpeDogc3RyaW5nW10pIHt9XHJcblxyXG4gIHB1YmxpYyBnZXRUcmFuc2xhdGlvbihsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdHMgPSB0aGlzLl9yZXNvdXJjZXNQcmVmaXgubWFwKChwcmVmaXgpID0+IHtcclxuICAgICAgY29uc3QgcGF0aCA9IGAke3ByZWZpeH0ke2xhbmd9Lmpzb25gXHJcblxyXG4gICAgICByZXR1cm4gbmV3IEh0dHBDbGllbnQodGhpcy5faGFuZGxlcikuZ2V0KHBhdGgpLnBpcGUoXHJcbiAgICAgICAgY2F0Y2hFcnJvcigocmVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdTb21ldGhpbmcgd2VudCB3cm9uZyBmb3IgdGhlIGZvbGxvd2luZyB0cmFuc2xhdGlvbiBmaWxlOicsIHBhdGgpXHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKHJlcy5tZXNzYWdlKVxyXG4gICAgICAgICAgcmV0dXJuIG9mKHt9KVxyXG4gICAgICAgIH0pLFxyXG4gICAgICApXHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBmb3JrSm9pbihyZXF1ZXN0cykucGlwZShtYXAoKHJlc3BvbnNlKSA9PiBtZXJnZS5hbGwocmVzcG9uc2UpKSlcclxuICB9XHJcbn1cclxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaHR0cC1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tdWx0aS1odHRwLWxvYWRlci9zcmMvbGliL211bHRpLWh0dHAtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUU5RCxPQUFPLEtBQUssS0FBSyxNQUFNLFdBQVcsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBT2hELE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFDVSxRQUFxQixFQUNyQixnQkFBbUQ7UUFEbkQsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1DO0lBQzFELENBQUM7SUFFRyxjQUFjLENBQUMsSUFBWTtRQUNoQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEQsSUFBSSxJQUFZLENBQUE7WUFDaEIsSUFBSSxRQUFRLENBQUMsTUFBTTtnQkFBRSxJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxRQUFRLENBQUMsTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFBO2lCQUMvRTtnQkFDSCxJQUFJLEdBQUcsR0FBRyxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUE7YUFDakM7WUFFRCxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNqRCxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQywwREFBMEQsRUFBRSxJQUFJLENBQUMsQ0FBQTtnQkFDL0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQzFCLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ2YsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO1FBRUYsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEJhY2tlbmQsIEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHsgVHJhbnNsYXRlTG9hZGVyIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcclxuaW1wb3J0ICogYXMgbWVyZ2UgZnJvbSAnZGVlcG1lcmdlJ1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zbGF0aW9uUmVzb3VyY2Uge1xyXG4gIHByZWZpeDogc3RyaW5nXHJcbiAgc3VmZml4Pzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVRyYW5zbGF0ZUh0dHBMb2FkZXIgaW1wbGVtZW50cyBUcmFuc2xhdGVMb2FkZXIge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfaGFuZGxlcjogSHR0cEJhY2tlbmQsXHJcbiAgICBwcml2YXRlIF9yZXNvdXJjZXNQcmVmaXg6IHN0cmluZ1tdIHwgSVRyYW5zbGF0aW9uUmVzb3VyY2VbXSxcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBnZXRUcmFuc2xhdGlvbihsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdHMgPSB0aGlzLl9yZXNvdXJjZXNQcmVmaXgubWFwKChyZXNvdXJjZSkgPT4ge1xyXG4gICAgICBsZXQgcGF0aDogc3RyaW5nXHJcbiAgICAgIGlmIChyZXNvdXJjZS5wcmVmaXgpIHBhdGggPSBgJHtyZXNvdXJjZS5wcmVmaXh9JHtsYW5nfSR7cmVzb3VyY2Uuc3VmZml4IHx8ICcuanNvbid9YFxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBwYXRoID0gYCR7cmVzb3VyY2V9JHtsYW5nfS5qc29uYFxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gbmV3IEh0dHBDbGllbnQodGhpcy5faGFuZGxlcikuZ2V0KHBhdGgpLnBpcGUoXHJcbiAgICAgICAgY2F0Y2hFcnJvcigocmVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdTb21ldGhpbmcgd2VudCB3cm9uZyBmb3IgdGhlIGZvbGxvd2luZyB0cmFuc2xhdGlvbiBmaWxlOicsIHBhdGgpXHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKHJlcy5tZXNzYWdlKVxyXG4gICAgICAgICAgcmV0dXJuIG9mKHt9KVxyXG4gICAgICAgIH0pLFxyXG4gICAgICApXHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBmb3JrSm9pbihyZXF1ZXN0cykucGlwZShtYXAoKHJlc3BvbnNlKSA9PiBtZXJnZS5hbGwocmVzcG9uc2UpKSlcclxuICB9XHJcbn1cclxuIl19
@@ -9,8 +9,13 @@ class MultiTranslateHttpLoader {
9
9
  this._resourcesPrefix = _resourcesPrefix;
10
10
  }
11
11
  getTranslation(lang) {
12
- const requests = this._resourcesPrefix.map((prefix) => {
13
- const path = `${prefix}${lang}.json`;
12
+ const requests = this._resourcesPrefix.map((resource) => {
13
+ let path;
14
+ if (resource.prefix)
15
+ path = `${resource.prefix}${lang}${resource.suffix || '.json'}`;
16
+ else {
17
+ path = `${resource}${lang}.json`;
18
+ }
14
19
  return new HttpClient(this._handler).get(path).pipe(catchError((res) => {
15
20
  console.error('Something went wrong for the following translation file:', path);
16
21
  console.error(res.message);
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-translate-multi-http-loader.mjs","sources":["../../../projects/multi-http-loader/src/lib/multi-http-loader.ts","../../../projects/multi-http-loader/src/ngx-translate-multi-http-loader.ts"],"sourcesContent":["import { HttpBackend, HttpClient } from '@angular/common/http'\r\nimport { TranslateLoader } from '@ngx-translate/core'\r\nimport * as merge from 'deepmerge'\r\nimport { forkJoin, Observable, of } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\n\r\nexport class MultiTranslateHttpLoader implements TranslateLoader {\r\n constructor(private _handler: HttpBackend, private _resourcesPrefix: string[]) {}\r\n\r\n public getTranslation(lang: string): Observable<any> {\r\n const requests = this._resourcesPrefix.map((prefix) => {\r\n const path = `${prefix}${lang}.json`\r\n\r\n return new HttpClient(this._handler).get(path).pipe(\r\n catchError((res) => {\r\n console.error('Something went wrong for the following translation file:', path)\r\n console.error(res.message)\r\n return of({})\r\n }),\r\n )\r\n })\r\n\r\n return forkJoin(requests).pipe(map((response) => merge.all(response)))\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAMa,wBAAwB,CAAA;IACnC,WAAoB,CAAA,QAAqB,EAAU,gBAA0B,EAAA;AAAzD,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;AAAU,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAU;KAAI;AAE1E,IAAA,cAAc,CAAC,IAAY,EAAA;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;AACpD,YAAA,MAAM,IAAI,GAAG,CAAA,EAAG,MAAM,CAAG,EAAA,IAAI,OAAO,CAAA;YAEpC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CACjD,UAAU,CAAC,CAAC,GAAG,KAAI;AACjB,gBAAA,OAAO,CAAC,KAAK,CAAC,0DAA0D,EAAE,IAAI,CAAC,CAAA;AAC/E,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAC1B,gBAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;aACd,CAAC,CACH,CAAA;AACH,SAAC,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;KACvE;AACF;;ACxBD;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-translate-multi-http-loader.mjs","sources":["../../../projects/multi-http-loader/src/lib/multi-http-loader.ts","../../../projects/multi-http-loader/src/ngx-translate-multi-http-loader.ts"],"sourcesContent":["import { HttpBackend, HttpClient } from '@angular/common/http'\r\nimport { TranslateLoader } from '@ngx-translate/core'\r\nimport * as merge from 'deepmerge'\r\nimport { forkJoin, Observable, of } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\n\r\nexport interface ITranslationResource {\r\n prefix: string\r\n suffix?: string\r\n}\r\n\r\nexport class MultiTranslateHttpLoader implements TranslateLoader {\r\n constructor(\r\n private _handler: HttpBackend,\r\n private _resourcesPrefix: string[] | ITranslationResource[],\r\n ) {}\r\n\r\n public getTranslation(lang: string): Observable<any> {\r\n const requests = this._resourcesPrefix.map((resource) => {\r\n let path: string\r\n if (resource.prefix) path = `${resource.prefix}${lang}${resource.suffix || '.json'}`\r\n else {\r\n path = `${resource}${lang}.json`\r\n }\r\n\r\n return new HttpClient(this._handler).get(path).pipe(\r\n catchError((res) => {\r\n console.error('Something went wrong for the following translation file:', path)\r\n console.error(res.message)\r\n return of({})\r\n }),\r\n )\r\n })\r\n\r\n return forkJoin(requests).pipe(map((response) => merge.all(response)))\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAWa,wBAAwB,CAAA;IACnC,WACU,CAAA,QAAqB,EACrB,gBAAmD,EAAA;AADnD,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;AACrB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAmC;KACzD;AAEG,IAAA,cAAc,CAAC,IAAY,EAAA;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAI;AACtD,YAAA,IAAI,IAAY,CAAA;YAChB,IAAI,QAAQ,CAAC,MAAM;AAAE,gBAAA,IAAI,GAAG,CAAA,EAAG,QAAQ,CAAC,MAAM,CAAG,EAAA,IAAI,CAAG,EAAA,QAAQ,CAAC,MAAM,IAAI,OAAO,EAAE,CAAA;AAC/E,iBAAA;AACH,gBAAA,IAAI,GAAG,CAAG,EAAA,QAAQ,CAAG,EAAA,IAAI,OAAO,CAAA;AACjC,aAAA;YAED,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CACjD,UAAU,CAAC,CAAC,GAAG,KAAI;AACjB,gBAAA,OAAO,CAAC,KAAK,CAAC,0DAA0D,EAAE,IAAI,CAAC,CAAA;AAC/E,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAC1B,gBAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;aACd,CAAC,CACH,CAAA;AACH,SAAC,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;KACvE;AACF;;ACpCD;;AAEG;;;;"}
@@ -9,8 +9,13 @@ class MultiTranslateHttpLoader {
9
9
  this._resourcesPrefix = _resourcesPrefix;
10
10
  }
11
11
  getTranslation(lang) {
12
- const requests = this._resourcesPrefix.map((prefix) => {
13
- const path = `${prefix}${lang}.json`;
12
+ const requests = this._resourcesPrefix.map((resource) => {
13
+ let path;
14
+ if (resource.prefix)
15
+ path = `${resource.prefix}${lang}${resource.suffix || '.json'}`;
16
+ else {
17
+ path = `${resource}${lang}.json`;
18
+ }
14
19
  return new HttpClient(this._handler).get(path).pipe(catchError((res) => {
15
20
  console.error('Something went wrong for the following translation file:', path);
16
21
  console.error(res.message);
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-translate-multi-http-loader.mjs","sources":["../../../projects/multi-http-loader/src/lib/multi-http-loader.ts","../../../projects/multi-http-loader/src/ngx-translate-multi-http-loader.ts"],"sourcesContent":["import { HttpBackend, HttpClient } from '@angular/common/http'\r\nimport { TranslateLoader } from '@ngx-translate/core'\r\nimport * as merge from 'deepmerge'\r\nimport { forkJoin, Observable, of } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\n\r\nexport class MultiTranslateHttpLoader implements TranslateLoader {\r\n constructor(private _handler: HttpBackend, private _resourcesPrefix: string[]) {}\r\n\r\n public getTranslation(lang: string): Observable<any> {\r\n const requests = this._resourcesPrefix.map((prefix) => {\r\n const path = `${prefix}${lang}.json`\r\n\r\n return new HttpClient(this._handler).get(path).pipe(\r\n catchError((res) => {\r\n console.error('Something went wrong for the following translation file:', path)\r\n console.error(res.message)\r\n return of({})\r\n }),\r\n )\r\n })\r\n\r\n return forkJoin(requests).pipe(map((response) => merge.all(response)))\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAMa,wBAAwB,CAAA;IACnC,WAAoB,CAAA,QAAqB,EAAU,gBAA0B,EAAA;QAAzD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;QAAU,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAU;KAAI;AAE1E,IAAA,cAAc,CAAC,IAAY,EAAA;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;AACpD,YAAA,MAAM,IAAI,GAAG,CAAA,EAAG,MAAM,CAAG,EAAA,IAAI,OAAO,CAAA;YAEpC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CACjD,UAAU,CAAC,CAAC,GAAG,KAAI;AACjB,gBAAA,OAAO,CAAC,KAAK,CAAC,0DAA0D,EAAE,IAAI,CAAC,CAAA;AAC/E,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAC1B,gBAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;aACd,CAAC,CACH,CAAA;AACH,SAAC,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;KACvE;AACF;;ACxBD;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-translate-multi-http-loader.mjs","sources":["../../../projects/multi-http-loader/src/lib/multi-http-loader.ts","../../../projects/multi-http-loader/src/ngx-translate-multi-http-loader.ts"],"sourcesContent":["import { HttpBackend, HttpClient } from '@angular/common/http'\r\nimport { TranslateLoader } from '@ngx-translate/core'\r\nimport * as merge from 'deepmerge'\r\nimport { forkJoin, Observable, of } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\n\r\nexport interface ITranslationResource {\r\n prefix: string\r\n suffix?: string\r\n}\r\n\r\nexport class MultiTranslateHttpLoader implements TranslateLoader {\r\n constructor(\r\n private _handler: HttpBackend,\r\n private _resourcesPrefix: string[] | ITranslationResource[],\r\n ) {}\r\n\r\n public getTranslation(lang: string): Observable<any> {\r\n const requests = this._resourcesPrefix.map((resource) => {\r\n let path: string\r\n if (resource.prefix) path = `${resource.prefix}${lang}${resource.suffix || '.json'}`\r\n else {\r\n path = `${resource}${lang}.json`\r\n }\r\n\r\n return new HttpClient(this._handler).get(path).pipe(\r\n catchError((res) => {\r\n console.error('Something went wrong for the following translation file:', path)\r\n console.error(res.message)\r\n return of({})\r\n }),\r\n )\r\n })\r\n\r\n return forkJoin(requests).pipe(map((response) => merge.all(response)))\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAWa,wBAAwB,CAAA;IACnC,WACU,CAAA,QAAqB,EACrB,gBAAmD,EAAA;QADnD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;QACrB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAmC;KACzD;AAEG,IAAA,cAAc,CAAC,IAAY,EAAA;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAI;AACtD,YAAA,IAAI,IAAY,CAAA;YAChB,IAAI,QAAQ,CAAC,MAAM;AAAE,gBAAA,IAAI,GAAG,CAAA,EAAG,QAAQ,CAAC,MAAM,CAAG,EAAA,IAAI,CAAG,EAAA,QAAQ,CAAC,MAAM,IAAI,OAAO,EAAE,CAAA;AAC/E,iBAAA;AACH,gBAAA,IAAI,GAAG,CAAG,EAAA,QAAQ,CAAG,EAAA,IAAI,OAAO,CAAA;AACjC,aAAA;YAED,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CACjD,UAAU,CAAC,CAAC,GAAG,KAAI;AACjB,gBAAA,OAAO,CAAC,KAAK,CAAC,0DAA0D,EAAE,IAAI,CAAC,CAAA;AAC/E,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAC1B,gBAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;aACd,CAAC,CACH,CAAA;AACH,SAAC,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;KACvE;AACF;;ACpCD;;AAEG;;;;"}
@@ -1,9 +1,13 @@
1
1
  import { HttpBackend } from '@angular/common/http';
2
2
  import { TranslateLoader } from '@ngx-translate/core';
3
3
  import { Observable } from 'rxjs';
4
+ export interface ITranslationResource {
5
+ prefix: string;
6
+ suffix?: string;
7
+ }
4
8
  export declare class MultiTranslateHttpLoader implements TranslateLoader {
5
9
  private _handler;
6
10
  private _resourcesPrefix;
7
- constructor(_handler: HttpBackend, _resourcesPrefix: string[]);
11
+ constructor(_handler: HttpBackend, _resourcesPrefix: string[] | ITranslationResource[]);
8
12
  getTranslation(lang: string): Observable<any>;
9
13
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-translate-multi-http-loader",
3
- "version": "9.0.0",
3
+ "version": "9.0.1",
4
4
  "license": "MIT",
5
5
  "author": "Raphael Balet",
6
6
  "maintainers": [