UNPKG

@jsverse/transloco

Version:

The internationalization (i18n) library for Angular

80 lines 10 kB
import { APP_INITIALIZER, Inject, Injectable, InjectionToken, NgModule, } from '@angular/core'; import { of } from 'rxjs'; import { TranslocoModule } from './transloco.module'; import { provideTransloco } from './transloco.providers'; import { TranslocoService } from './transloco.service'; import * as i0 from "@angular/core"; const TRANSLOCO_TEST_LANGS = /* @__PURE__ */ new InjectionToken('TRANSLOCO_TEST_LANGS - Available testing languages'); const TRANSLOCO_TEST_OPTIONS = /* @__PURE__ */ new InjectionToken('TRANSLOCO_TEST_OPTIONS - Testing options'); export class TestingLoader { langs; constructor(langs) { this.langs = langs; } getTranslation(lang) { return of(this.langs[lang]); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TestingLoader, deps: [{ token: TRANSLOCO_TEST_LANGS }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TestingLoader }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TestingLoader, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Inject, args: [TRANSLOCO_TEST_LANGS] }] }] }); export function initTranslocoService(service, langs = {}, options) { const preloadAllLangs = () => options.preloadLangs ? Promise.all(Object.keys(langs).map((lang) => service.load(lang).toPromise())) : Promise.resolve(); return preloadAllLangs; } export class TranslocoTestingModule { static forRoot(options) { return { ngModule: TranslocoTestingModule, providers: [ provideTransloco({ loader: TestingLoader, config: { prodMode: true, ...options.translocoConfig, missingHandler: { logMissingKey: false, ...options.translocoConfig?.missingHandler, }, }, }), { provide: TRANSLOCO_TEST_LANGS, useValue: options.langs, }, { provide: TRANSLOCO_TEST_OPTIONS, useValue: options, }, { provide: APP_INITIALIZER, useFactory: initTranslocoService, deps: [ TranslocoService, TRANSLOCO_TEST_LANGS, TRANSLOCO_TEST_OPTIONS, ], multi: true, }, ], }; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: TranslocoTestingModule, exports: [TranslocoModule] }); static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoTestingModule, imports: [TranslocoModule] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoTestingModule, decorators: [{ type: NgModule, args: [{ exports: [TranslocoModule], }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsb2NvLXRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy90cmFuc2xvY28vc3JjL2xpYi90cmFuc2xvY28tdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sVUFBVSxFQUNWLGNBQWMsRUFFZCxRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBU3ZELE1BQU0sb0JBQW9CLEdBQUcsZUFBZSxDQUFDLElBQUksY0FBYyxDQUU3RCxvREFBb0QsQ0FBQyxDQUFDO0FBQ3hELE1BQU0sc0JBQXNCO0FBQzFCLGVBQWUsQ0FBQyxJQUFJLGNBQWMsQ0FDaEMsMENBQTBDLENBQzNDLENBQUM7QUFHSixNQUFNLE9BQU8sYUFBYTtJQUVnQjtJQUR4QyxZQUN3QyxLQUEyQjtRQUEzQixVQUFLLEdBQUwsS0FBSyxDQUFzQjtJQUNoRSxDQUFDO0lBRUosY0FBYyxDQUFDLElBQVk7UUFDekIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7dUdBUFUsYUFBYSxrQkFFZCxvQkFBb0I7MkdBRm5CLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsb0JBQW9COztBQVFoQyxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLE9BQXlCLEVBQ3pCLFFBQThCLEVBQUUsRUFDaEMsT0FBZ0M7SUFFaEMsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFLENBQzNCLE9BQU8sQ0FBQyxZQUFZO1FBQ2xCLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUNULE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQ2pFO1FBQ0gsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUV4QixPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBS0QsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxNQUFNLENBQUMsT0FBTyxDQUNaLE9BQWdDO1FBRWhDLE9BQU87WUFDTCxRQUFRLEVBQUUsc0JBQXNCO1lBQ2hDLFNBQVMsRUFBRTtnQkFDVCxnQkFBZ0IsQ0FBQztvQkFDZixNQUFNLEVBQUUsYUFBYTtvQkFDckIsTUFBTSxFQUFFO3dCQUNOLFFBQVEsRUFBRSxJQUFJO3dCQUNkLEdBQUcsT0FBTyxDQUFDLGVBQWU7d0JBQzFCLGNBQWMsRUFBRTs0QkFDZCxhQUFhLEVBQUUsS0FBSzs0QkFDcEIsR0FBRyxPQUFPLENBQUMsZUFBZSxFQUFFLGNBQWM7eUJBQzNDO3FCQUNGO2lCQUNGLENBQUM7Z0JBQ0Y7b0JBQ0UsT0FBTyxFQUFFLG9CQUFvQjtvQkFDN0IsUUFBUSxFQUFFLE9BQU8sQ0FBQyxLQUFLO2lCQUN4QjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsc0JBQXNCO29CQUMvQixRQUFRLEVBQUUsT0FBTztpQkFDbEI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLFVBQVUsRUFBRSxvQkFBb0I7b0JBQ2hDLElBQUksRUFBRTt3QkFDSixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3FCQUN2QjtvQkFDRCxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7dUdBdENVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLFlBRnZCLGVBQWU7d0dBRWQsc0JBQXNCLFlBRnZCLGVBQWU7OzJGQUVkLHNCQUFzQjtrQkFIbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVBQX0lOSVRJQUxJWkVSLFxuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIEluamVjdGlvblRva2VuLFxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxuICBOZ01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBUcmFuc2xvY29Mb2FkZXIgfSBmcm9tICcuL3RyYW5zbG9jby5sb2FkZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRpb24gfSBmcm9tICcuL3RyYW5zbG9jby50eXBlcyc7XG5pbXBvcnQgeyBUcmFuc2xvY29Nb2R1bGUgfSBmcm9tICcuL3RyYW5zbG9jby5tb2R1bGUnO1xuaW1wb3J0IHsgcHJvdmlkZVRyYW5zbG9jbyB9IGZyb20gJy4vdHJhbnNsb2NvLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBQYXJ0aWFsVHJhbnNsb2NvQ29uZmlnIH0gZnJvbSAnLi90cmFuc2xvY28uY29uZmlnJztcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICcuL3RyYW5zbG9jby5zZXJ2aWNlJztcbmltcG9ydCB7IEhhc2hNYXAgfSBmcm9tICcuL3V0aWxzL3R5cGUudXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zbG9jb1Rlc3RpbmdPcHRpb25zIHtcbiAgdHJhbnNsb2NvQ29uZmlnPzogUGFydGlhbFRyYW5zbG9jb0NvbmZpZztcbiAgcHJlbG9hZExhbmdzPzogYm9vbGVhbjtcbiAgbGFuZ3M/OiBIYXNoTWFwPFRyYW5zbGF0aW9uPjtcbn1cblxuY29uc3QgVFJBTlNMT0NPX1RFU1RfTEFOR1MgPSAvKiBAX19QVVJFX18gKi8gbmV3IEluamVjdGlvblRva2VuPFxuICBIYXNoTWFwPFRyYW5zbGF0aW9uPlxuPignVFJBTlNMT0NPX1RFU1RfTEFOR1MgLSBBdmFpbGFibGUgdGVzdGluZyBsYW5ndWFnZXMnKTtcbmNvbnN0IFRSQU5TTE9DT19URVNUX09QVElPTlMgPVxuICAvKiBAX19QVVJFX18gKi8gbmV3IEluamVjdGlvblRva2VuPFRyYW5zbG9jb1Rlc3RpbmdPcHRpb25zPihcbiAgICAnVFJBTlNMT0NPX1RFU1RfT1BUSU9OUyAtIFRlc3Rpbmcgb3B0aW9ucycsXG4gICk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUZXN0aW5nTG9hZGVyIGltcGxlbWVudHMgVHJhbnNsb2NvTG9hZGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChUUkFOU0xPQ09fVEVTVF9MQU5HUykgcHJpdmF0ZSBsYW5nczogSGFzaE1hcDxUcmFuc2xhdGlvbj4sXG4gICkge31cblxuICBnZXRUcmFuc2xhdGlvbihsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRyYW5zbGF0aW9uPiB8IFByb21pc2U8VHJhbnNsYXRpb24+IHtcbiAgICByZXR1cm4gb2YodGhpcy5sYW5nc1tsYW5nXSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRUcmFuc2xvY29TZXJ2aWNlKFxuICBzZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxuICBsYW5nczogSGFzaE1hcDxUcmFuc2xhdGlvbj4gPSB7fSxcbiAgb3B0aW9uczogVHJhbnNsb2NvVGVzdGluZ09wdGlvbnMsXG4pIHtcbiAgY29uc3QgcHJlbG9hZEFsbExhbmdzID0gKCkgPT5cbiAgICBvcHRpb25zLnByZWxvYWRMYW5nc1xuICAgICAgPyBQcm9taXNlLmFsbChcbiAgICAgICAgICBPYmplY3Qua2V5cyhsYW5ncykubWFwKChsYW5nKSA9PiBzZXJ2aWNlLmxvYWQobGFuZykudG9Qcm9taXNlKCkpLFxuICAgICAgICApXG4gICAgICA6IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIHJldHVybiBwcmVsb2FkQWxsTGFuZ3M7XG59XG5cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtUcmFuc2xvY29Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xvY29UZXN0aW5nTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoXG4gICAgb3B0aW9uczogVHJhbnNsb2NvVGVzdGluZ09wdGlvbnMsXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VHJhbnNsb2NvVGVzdGluZ01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVHJhbnNsb2NvVGVzdGluZ01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlVHJhbnNsb2NvKHtcbiAgICAgICAgICBsb2FkZXI6IFRlc3RpbmdMb2FkZXIsXG4gICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICBwcm9kTW9kZTogdHJ1ZSxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMudHJhbnNsb2NvQ29uZmlnLFxuICAgICAgICAgICAgbWlzc2luZ0hhbmRsZXI6IHtcbiAgICAgICAgICAgICAgbG9nTWlzc2luZ0tleTogZmFsc2UsXG4gICAgICAgICAgICAgIC4uLm9wdGlvbnMudHJhbnNsb2NvQ29uZmlnPy5taXNzaW5nSGFuZGxlcixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBUUkFOU0xPQ09fVEVTVF9MQU5HUyxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5sYW5ncyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFRSQU5TTE9DT19URVNUX09QVElPTlMsXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgdXNlRmFjdG9yeTogaW5pdFRyYW5zbG9jb1NlcnZpY2UsXG4gICAgICAgICAgZGVwczogW1xuICAgICAgICAgICAgVHJhbnNsb2NvU2VydmljZSxcbiAgICAgICAgICAgIFRSQU5TTE9DT19URVNUX0xBTkdTLFxuICAgICAgICAgICAgVFJBTlNMT0NPX1RFU1RfT1BUSU9OUyxcbiAgICAgICAgICBdLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=