UNPKG

ontimize-web-ngx

Version:
76 lines 11.2 kB
import { TranslateHttpLoader } from '@ngx-translate/http-loader'; import { combineLatest, Observable, of } from 'rxjs'; import { catchError, map, share } from 'rxjs/operators'; import { AppConfig } from '../../config/app-config'; import { Codes } from '../../util/codes'; import { OTranslateService } from './o-translate.service'; export class OTranslateHttpLoader extends TranslateHttpLoader { constructor(httpClient, prefix = OTranslateService.ASSETS_PATH, suffix = OTranslateService.ASSETS_EXTENSION, injector) { super(httpClient, prefix, suffix); this.injector = injector; this.appConfig = this.injector.get(AppConfig); this.httpClient = httpClient; } getAssetsPath() { return this.prefix; } getAssetsExtension() { return this.suffix; } getLocalTranslation(lang) { let innerObserver; const dataObservable = new Observable(observer => innerObserver = observer).pipe(share()); super.getTranslation(lang) .subscribe((res) => { innerObserver.next(res); innerObserver.complete(); }, error => { innerObserver.next(undefined); }, () => innerObserver.complete()); return dataObservable; } getTranslation(lang) { const translationOrigins = []; translationOrigins.push(this.getLocalTranslation(lang)); if (this.appConfig.useRemoteBundle()) { translationOrigins.push(this.getRemoteBundle(lang)); } let innerObserver; const dataObservable = new Observable(observer => innerObserver = observer).pipe(share()); combineLatest(translationOrigins).subscribe((res) => { const staticBundle = res[0] || {}; const remoteBundle = res[1] || {}; const allBundles = Object.assign(staticBundle, remoteBundle); innerObserver.next(allBundles); }); return dataObservable; } getRemoteBundle(lang) { const bundleEndpoint = this.appConfig.getBundleEndpoint(); if (!bundleEndpoint) { return of([]); } const url = bundleEndpoint + '?lang=' + lang; return this.httpClient.get(url).pipe(map((resp) => { if (resp.code === Codes.ONTIMIZE_SUCCESSFUL_CODE) { return this.parseBundleResponse(resp.data); } return resp; }), catchError(err => { console.log('Remote Bundle service is not available', err); return of([]); })); } parseBundleResponse(data) { const result = {}; if (data) { data.forEach((item) => { result[item[OTranslateHttpLoader.BUNDLE_KEY]] = item[OTranslateHttpLoader.BUNDLE_VALUE]; }); } return result; } } OTranslateHttpLoader.BUNDLE_KEY = 'key'; OTranslateHttpLoader.BUNDLE_VALUE = 'value'; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10cmFuc2xhdGUtaHR0cC1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvc2VydmljZXMvdHJhbnNsYXRlL28tdHJhbnNsYXRlLWh0dHAtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFRM0QsWUFDRSxVQUFzQixFQUN0QixTQUFpQixpQkFBaUIsQ0FBQyxXQUFXLEVBQzlDLFNBQWlCLGlCQUFpQixDQUFDLGdCQUFnQixFQUN6QyxRQUFrQjtRQUU1QixLQUFLLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUZ4QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxN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bUIsQ0FBQyxJQUFXO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMxRixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7QUF6Rk0sK0JBQVUsR0FBRyxLQUFLLENBQUM7QUFDbkIsaUNBQVksR0FBRyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZUh0dHBMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9odHRwLWxvYWRlcic7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzaGFyZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnL2FwcC1jb25maWcnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IE9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi9vLXRyYW5zbGF0ZS5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIE9UcmFuc2xhdGVIdHRwTG9hZGVyIGV4dGVuZHMgVHJhbnNsYXRlSHR0cExvYWRlciB7XG5cbiAgc3RhdGljIEJVTkRMRV9LRVkgPSAna2V5JztcbiAgc3RhdGljIEJVTkRMRV9WQUxVRSA9ICd2YWx1ZSc7XG5cbiAgcHJvdGVjdGVkIGFwcENvbmZpZzogQXBwQ29uZmlnO1xuICBwcm90ZWN0ZWQgaHR0cENsaWVudDogSHR0cENsaWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgIHByZWZpeDogc3RyaW5nID0gT1RyYW5zbGF0ZVNlcnZpY2UuQVNTRVRTX1BBVEgsXG4gICAgc3VmZml4OiBzdHJpbmcgPSBPVHJhbnNsYXRlU2VydmljZS5BU1NFVFNfRVhURU5TSU9OLFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgc3VwZXIoaHR0cENsaWVudCwgcHJlZml4LCBzdWZmaXgpO1xuICAgIHRoaXMuYXBwQ29uZmlnID0gdGhpcy5pbmplY3Rvci5nZXQoQXBwQ29uZmlnKTtcbiAgICB0aGlzLmh0dHBDbGllbnQgPSBodHRwQ2xpZW50O1xuICB9XG5cbiAgZ2V0QXNzZXRzUGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByZWZpeDtcbiAgfVxuXG4gIGdldEFzc2V0c0V4dGVuc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN1ZmZpeDtcbiAgfVxuXG4gIGdldExvY2FsVHJhbnNsYXRpb24obGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgaW5uZXJPYnNlcnZlcjogYW55O1xuICAgIGNvbnN0IGRhdGFPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4gaW5uZXJPYnNlcnZlciA9IG9ic2VydmVyKS5waXBlKHNoYXJlKCkpO1xuICAgIHN1cGVyLmdldFRyYW5zbGF0aW9uKGxhbmcpXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgaW5uZXJPYnNlcnZlci5uZXh0KHJlcyk7XG4gICAgICAgIGlubmVyT2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgaW5uZXJPYnNlcnZlci5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICB9LFxuICAgICAgICAoKSA9PiBpbm5lck9ic2VydmVyLmNvbXBsZXRlKCkpO1xuICAgIHJldHVybiBkYXRhT2JzZXJ2YWJsZTtcbiAgfVxuXG4gIGdldFRyYW5zbGF0aW9uKGxhbmc6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgdHJhbnNsYXRpb25PcmlnaW5zOiBhbnlbXSA9IFtdO1xuXG4gICAgdHJhbnNsYXRpb25PcmlnaW5zLnB1c2godGhpcy5nZXRMb2NhbFRyYW5zbGF0aW9uKGxhbmcpKTtcblxuICAgIGlmICh0aGlzLmFwcENvbmZpZy51c2VSZW1vdGVCdW5kbGUoKSkge1xuICAgICAgdHJhbnNsYXRpb25PcmlnaW5zLnB1c2godGhpcy5nZXRSZW1vdGVCdW5kbGUobGFuZykpO1xuICAgIH1cblxuICAgIGxldCBpbm5lck9ic2VydmVyOiBhbnk7XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiBpbm5lck9ic2VydmVyID0gb2JzZXJ2ZXIpLnBpcGUoc2hhcmUoKSk7XG5cbiAgICBjb21iaW5lTGF0ZXN0KHRyYW5zbGF0aW9uT3JpZ2lucykuc3Vic2NyaWJlKChyZXM6IGFueVtdKSA9PiB7XG4gICAgICBjb25zdCBzdGF0aWNCdW5kbGUgPSByZXNbMF0gfHwge307XG4gICAgICBjb25zdCByZW1vdGVCdW5kbGUgPSByZXNbMV0gfHwge307XG4gICAgICBjb25zdCBhbGxCdW5kbGVzID0gT2JqZWN0LmFzc2lnbihzdGF0aWNCdW5kbGUsIHJlbW90ZUJ1bmRsZSk7XG4gICAgICBpbm5lck9ic2VydmVyLm5leHQoYWxsQnVuZGxlcyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlO1xuICB9XG5cbiAgZ2V0UmVtb3RlQnVuZGxlKGxhbmc6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgYnVuZGxlRW5kcG9pbnQgPSB0aGlzLmFwcENvbmZpZy5nZXRCdW5kbGVFbmRwb2ludCgpO1xuICAgIGlmICghYnVuZGxlRW5kcG9pbnQpIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICAgIGNvbnN0IHVybCA9IGJ1bmRsZUVuZHBvaW50ICsgJz9sYW5nPScgKyBsYW5nO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodXJsKS5waXBlKFxuICAgICAgbWFwKChyZXNwOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJlc3AuY29kZSA9PT0gQ29kZXMuT05USU1JWkVfU1VDQ0VTU0ZVTF9DT0RFKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VCdW5kbGVSZXNwb25zZShyZXNwLmRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdSZW1vdGUgQnVuZGxlIHNlcnZpY2UgaXMgbm90IGF2YWlsYWJsZScsIGVycik7XG4gICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VCdW5kbGVSZXNwb25zZShkYXRhOiBhbnlbXSk6IGFueSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGRhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICByZXN1bHRbaXRlbVtPVHJhbnNsYXRlSHR0cExvYWRlci5CVU5ETEVfS0VZXV0gPSBpdGVtW09UcmFuc2xhdGVIdHRwTG9hZGVyLkJVTkRMRV9WQUxVRV07XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG59XG4iXX0=