Browse Source

refactor: imprve the code quality

pull/6052/head
mehmet-erim 6 years ago
parent
commit
c8d1517703
  1. 28
      npm/ng-packs/packages/core/locale/src/utils/register-locale.ts
  2. 5
      npm/ng-packs/packages/core/src/lib/services/localization.service.ts
  3. 7
      npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts

28
npm/ng-packs/packages/core/locale/src/utils/register-locale.ts

@ -9,6 +9,8 @@ export interface LocaleErrorHandlerData {
locale: string; locale: string;
} }
let localeMap = {};
export interface RegisterLocaleData { export interface RegisterLocaleData {
cultureNameLocaleFileMap: Record<string, string>; cultureNameLocaleFileMap: Record<string, string>;
errorHandlerFn: (data: LocaleErrorHandlerData) => any; errorHandlerFn: (data: LocaleErrorHandlerData) => any;
@ -21,27 +23,22 @@ export function registerLocale(
} = {} as RegisterLocaleData, } = {} as RegisterLocaleData,
) { ) {
return (locale: string): Promise<any> => { return (locale: string): Promise<any> => {
cultureNameLocaleFileMap = { ...differentLocales, ...cultureNameLocaleFileMap }; localeMap = { ...differentLocales, ...cultureNameLocaleFileMap };
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
return import( return import(
/* webpackChunkName: "_locale-[request]"*/ /* webpackChunkName: "_locale-[request]"*/
/* webpackInclude: /[/\\](ar|cs|en|fr|pt|tr|ru|hu|sl|zh-Hans|zh-Hant).js/ */ /* webpackInclude: /[/\\](ar|cs|en|fr|pt|tr|ru|hu|sl|zh-Hans|zh-Hant).js/ */
/* webpackExclude: /[/\\]global|extra/ */ /* webpackExclude: /[/\\]global|extra/ */
`@angular/common/locales/${cultureNameLocaleFileMap[locale] || locale}.js` `@angular/common/locales/${localeMap[locale] || locale}.js`
) ).catch(error => {
.then(module => { errorHandlerFn({
registerLocaleData(module.default, locale); resolve,
resolve(module.default); reject,
}) error,
.catch(error => { locale,
errorHandlerFn({
resolve,
reject,
error,
locale,
});
}); });
});
}); });
}; };
} }
@ -53,8 +50,7 @@ export function storeLocaleData(data: any, localeId: string) {
export async function defaultLocalErrorHandlerFn({ locale, resolve }: LocaleErrorHandlerData) { export async function defaultLocalErrorHandlerFn({ locale, resolve }: LocaleErrorHandlerData) {
if (extraLocales[locale]) { if (extraLocales[locale]) {
registerLocaleData(extraLocales[locale], locale); resolve({ default: extraLocales[localeMap[locale] || locale] });
resolve();
return; return;
} }

5
npm/ng-packs/packages/core/src/lib/services/localization.service.ts

@ -1,3 +1,4 @@
import { registerLocaleData } from '@angular/common';
import { Injectable, Injector, NgZone, Optional, SkipSelf } from '@angular/core'; import { Injectable, Injector, NgZone, Optional, SkipSelf } from '@angular/core';
import { ActivatedRouteSnapshot, Router } from '@angular/router'; import { ActivatedRouteSnapshot, Router } from '@angular/router';
import { Actions, ofActionSuccessful, Store } from '@ngxs/store'; import { Actions, ofActionSuccessful, Store } from '@ngxs/store';
@ -54,7 +55,9 @@ export class LocalizationService {
const { registerLocaleFn }: ABP.Root = this.injector.get(CORE_OPTIONS); const { registerLocaleFn }: ABP.Root = this.injector.get(CORE_OPTIONS);
return registerLocaleFn(locale).then(() => { return registerLocaleFn(locale).then(module => {
if (module?.default) registerLocaleData(module.default);
this.ngZone.run(async () => { this.ngZone.run(async () => {
await router.navigateByUrl(router.url).catch(noop); await router.navigateByUrl(router.url).catch(noop);
router.routeReuseStrategy.shouldReuseRoute = shouldReuseRoute; router.routeReuseStrategy.shouldReuseRoute = shouldReuseRoute;

7
npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts

@ -1,3 +1,4 @@
import { registerLocaleData } from '@angular/common';
import { Injector } from '@angular/core'; import { Injector } from '@angular/core';
import { Store } from '@ngxs/store'; import { Store } from '@ngxs/store';
import { OAuthService } from 'angular-oauth2-oidc'; import { OAuthService } from 'angular-oauth2-oidc';
@ -46,7 +47,11 @@ export function localeInitializer(injector: Injector) {
const lang = store.selectSnapshot(state => state.SessionState.language) || 'en'; const lang = store.selectSnapshot(state => state.SessionState.language) || 'en';
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
registerLocaleFn(lang).then(() => resolve('resolved'), reject); registerLocaleFn(lang).then(module => {
if (module?.default) registerLocaleData(module.default);
return resolve('resolved');
}, reject);
}); });
}; };

Loading…
Cancel
Save