Skip to content

Commit 9d3cba5

Browse files
committed
refactor(service): avoid directly using loaders
1 parent 0934adf commit 9d3cba5

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

projects/ngx-translate/src/lib/translate.service.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ export class TranslateService implements ITranslateService, OnDestroy {
227227
}
228228

229229
constructor() {
230-
this._loaderIndex = this.store.addLoader();
230+
this._loaderIndex = this.store.addLoader(inject(TranslateLoader));
231231

232232
const config: TranslateServiceConfig = {
233233
extend: false,
@@ -349,8 +349,13 @@ export class TranslateService implements ITranslateService, OnDestroy {
349349
): Observable<InterpolatableTranslationObject> {
350350
this.pending = true;
351351

352-
const loaders = Array.from(this.store.loaders.values());
353-
const requests = loaders.map((loader) => loader.getTranslation(lang).pipe(take(1)));
352+
const loaders = this.store.getLoaders();
353+
if (loaders.size === 0) return of({} as InterpolatableTranslationObject);
354+
355+
const requests: Observable<TranslationObject>[] = [];
356+
loaders.forEach((loader) => {
357+
requests.push(loader.getTranslation(lang).pipe(take(1)));
358+
});
354359

355360
// Merge all translation objects
356361
const loadingTranslations = (

projects/ngx-translate/src/lib/translate.store.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { inject, Injectable } from "@angular/core";
1+
import { Injectable } from "@angular/core";
22
import { Observable, Subject } from "rxjs";
33
import { TranslateLoader } from "./translate.loader";
44
import {
@@ -35,12 +35,12 @@ export class TranslateStore {
3535
* Adds a new loader to the store
3636
* @returns the index of the newly added loader
3737
*/
38-
addLoader() {
38+
addLoader(loader: TranslateLoader) {
3939
let loaderIndex = 0;
4040
while (this.loaders.has(loaderIndex)) {
4141
loaderIndex++;
4242
}
43-
this.loaders.set(loaderIndex, inject(TranslateLoader));
43+
this.loaders.set(loaderIndex, loader);
4444
return loaderIndex;
4545
}
4646

@@ -52,10 +52,6 @@ export class TranslateStore {
5252
return this.loaders;
5353
}
5454

55-
getLoader(loaderIndex: number) {
56-
return this.loaders.get(loaderIndex);
57-
}
58-
5955
public getTranslations(language: Language): DeepReadonly<InterpolatableTranslationObject> {
6056
return this.translations[language];
6157
}

0 commit comments

Comments
 (0)