@jsverse/transloco
Version:
The internationalization (i18n) library for Angular
80 lines • 10 kB
JavaScript
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=