Browse Source

Merge pull request #3610 from abpframework/feat/skip-get-app-config

Add skipGetAppConfiguration property to forRoot options of CoreModule
pull/3691/head
Levent Arman Özak 7 years ago
committed by GitHub
parent
commit
23443c8eb9
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 13
      npm/ng-packs/packages/core/src/lib/core.module.ts
  2. 1
      npm/ng-packs/packages/core/src/lib/models/common.ts
  3. 3
      npm/ng-packs/packages/core/src/lib/tests/initial-utils.spec.ts
  4. 18
      npm/ng-packs/packages/core/src/lib/tokens/common.token.ts
  5. 2
      npm/ng-packs/packages/core/src/lib/tokens/index.ts
  6. 4
      npm/ng-packs/packages/core/src/lib/tokens/options.token.ts
  7. 10
      npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts

13
npm/ng-packs/packages/core/src/lib/core.module.ts

@ -9,13 +9,16 @@ import { NgxsModule, NGXS_PLUGINS } from '@ngxs/store';
import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc';
import { AbstractNgModelComponent } from './abstracts/ng-model.component';
import { DynamicLayoutComponent } from './components/dynamic-layout.component';
import { ReplaceableRouteContainerComponent } from './components/replaceable-route-container.component';
import { RouterOutletComponent } from './components/router-outlet.component';
import { AutofocusDirective } from './directives/autofocus.directive';
import { InputEventDebounceDirective } from './directives/debounce.directive';
import { EllipsisDirective } from './directives/ellipsis.directive';
import { ForDirective } from './directives/for.directive';
import { FormSubmitDirective } from './directives/form-submit.directive';
import { InitDirective } from './directives/init.directive';
import { PermissionDirective } from './directives/permission.directive';
import { ReplaceableTemplateDirective } from './directives/replaceable-template.directive';
import { StopPropagationDirective } from './directives/stop-propagation.directive';
import { VisibilityDirective } from './directives/visibility.directive';
import { ApiInterceptor } from './interceptors/api.interceptor';
@ -26,13 +29,11 @@ import { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config.plugi
import { LocaleProvider } from './providers/locale.provider';
import { ConfigState } from './states/config.state';
import { ProfileState } from './states/profile.state';
import { ReplaceableComponentsState } from './states/replaceable-components.state';
import { SessionState } from './states/session.state';
import { CORE_OPTIONS } from './tokens/options.token';
import { getInitialData, localeInitializer } from './utils/initial-utils';
import './utils/date-extensions';
import { ReplaceableRouteContainerComponent } from './components/replaceable-route-container.component';
import { ReplaceableComponentsState } from './states/replaceable-components.state';
import { InitDirective } from './directives/init.directive';
import { ReplaceableTemplateDirective } from './directives/replaceable-template.directive';
export function storageFactory(): OAuthStorage {
return localStorage;
@ -111,6 +112,10 @@ export class CoreModule {
},
{
provide: NGXS_CONFIG_PLUGIN_OPTIONS,
useValue: { environment: options.environment },
},
{
provide: CORE_OPTIONS,
useValue: options,
},
{

1
npm/ng-packs/packages/core/src/lib/models/common.ts

@ -11,6 +11,7 @@ export namespace ABP {
* @deprecated To be deleted in v3.0
*/
requirements?: Config.Requirements;
skipGetAppConfiguration?: boolean;
}
export type PagedResponse<T> = {

3
npm/ng-packs/packages/core/src/lib/tests/initial-utils.spec.ts

@ -1,7 +1,6 @@
import { Component, Injector } from '@angular/core';
import { createComponentFactory, Spectator } from '@ngneat/spectator/jest';
import { Store } from '@ngxs/store';
import { OAuthService } from 'angular-oauth2-oidc';
import { of } from 'rxjs';
import { GetAppConfiguration } from '../actions';
import { getInitialData, localeInitializer } from '../utils';
@ -29,6 +28,7 @@ describe('InitialUtils', () => {
const dispatchSpy = jest.spyOn(store, 'dispatch');
injectorSpy.mockReturnValueOnce(store);
injectorSpy.mockReturnValueOnce({ skipGetAppConfiguration: false });
injectorSpy.mockReturnValueOnce({ hasValidAccessToken: () => false });
dispatchSpy.mockReturnValue(of('test'));
@ -47,6 +47,7 @@ describe('InitialUtils', () => {
const logOutFn = jest.fn();
injectorSpy.mockReturnValueOnce(store);
injectorSpy.mockReturnValueOnce({ skipGetAppConfiguration: false });
injectorSpy.mockReturnValueOnce({ hasValidAccessToken: () => true, logOut: logOutFn });
dispatchSpy.mockReturnValue(of({ currentUser: { id: null } }));

18
npm/ng-packs/packages/core/src/lib/tokens/common.token.ts

@ -1,18 +0,0 @@
import { InjectionToken } from '@angular/core';
import { Config } from '../models';
export function environmentFactory(environment: Config.Environment) {
return {
...environment,
};
}
export function configFactory(config: Config.Requirements) {
return {
...config,
};
}
export const ENVIRONMENT = new InjectionToken('ENVIRONMENT');
export const CONFIG = new InjectionToken('CONFIG');

2
npm/ng-packs/packages/core/src/lib/tokens/index.ts

@ -1 +1 @@
export * from './common.token';
export * from './options.token';

4
npm/ng-packs/packages/core/src/lib/tokens/options.token.ts

@ -0,0 +1,4 @@
import { InjectionToken } from '@angular/core';
import { ABP } from '../models/common';
export const CORE_OPTIONS = new InjectionToken<ABP.Root>('CORE_OPTIONS');

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

@ -1,16 +1,20 @@
import { registerLocaleData } from '@angular/common';
import { Injector } from '@angular/core';
import { Store } from '@ngxs/store';
import { OAuthService } from 'angular-oauth2-oidc';
import { tap } from 'rxjs/operators';
import { GetAppConfiguration } from '../actions/config.actions';
import differentLocales from '../constants/different-locales';
import { ApplicationConfiguration } from '../models/application-configuration';
import { tap } from 'rxjs/operators';
import { ABP } from '../models/common';
import { ConfigState } from '../states/config.state';
import { OAuthService } from 'angular-oauth2-oidc';
import { CORE_OPTIONS } from '../tokens/options.token';
export function getInitialData(injector: Injector) {
const fn = () => {
const store: Store = injector.get(Store);
const { skipGetAppConfiguration } = injector.get(CORE_OPTIONS) as ABP.Root;
if (skipGetAppConfiguration) return;
return store
.dispatch(new GetAppConfiguration())

Loading…
Cancel
Save