dependencies Legend  Declarations  Module  Bootstrap  Providers  Exports cluster_InitializerModule cluster_InitializerModule_providers HttpInterceptorService HttpInterceptorService InitializerModule InitializerModule HttpInterceptorService->InitializerModule

File

src/app/com/mycompany/normalize/core/module/initializer.module.ts

Methods

Static forRoot
forRoot()
Returns : { ngModule: typeof InitializerModule; providers: {}; import: {}; }
/**
 * @author @l.piciollo
 * @email lucapiciolo@gmail.com
 * @create date 2019-12-21 12:30:36
 * @modify date 2019-12-21 12:30:36
 * @desc [modulo di inizializzazione applicativo.. viene inizializzata tutta la gestione degli errori, degli ambienti, della rete e altro
 *  in questo modulo non bisogna inserire componenti o altro, al difuori del gia presente, è un modulo di avvio applicativo 
 * 
 * ATTENZIONE, NON SI CONSIGLIA LA MODIFICA DI QUESTA CLASSE A CAUSA DI OSSERVATORI ESTERNI CHE NE FANNO USO SPECIFICO.
 * ]
 */
import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { APP_INITIALIZER, ErrorHandler, NgModule ,Injector} from '@angular/core';
import { NgxUiLoaderHttpModule, NgxUiLoaderModule, NgxUiLoaderRouterModule } from 'ngx-ui-loader';
import { BROWSER_VALID, CACHE_TAG, DISABLE_LOG, MAX_CACHE_AGE, PlAmbientModeLoaderService, PlCoreModule ,BROWSER, DEFAULT_PATH_MOCK} from 'pl-core-utils-library';
import { BASE_URL_API } from 'src/app/com/mycompany/normalize/core/service/http.service';
import { UiLoaderConfig } from 'src/app/com/mycompany/normalize/core/utils/UiLoaderConfig';
import { UiLoaderHttpConfig } from 'src/app/com/mycompany/normalize/core/utils/UiLoaderHttpConfig';
import { UiLoaderRouterConfig } from 'src/app/com/mycompany/normalize/core/utils/UiLoaderRouterConfig';
import { environment } from 'src/environments/environment';
import {DEFAULT_TIMEOUT, HttpInterceptorService } from 'src/app/com/mycompany/normalize/core/interceptor/http-interceptor.service';
import {ErrorService } from 'src/app/com/mycompany/normalize/core/service/error.service';
import {AuthService } from 'src/app/com/mycompany/normalize/core/service/auth.service';
import AmbientModeProviderFactory from 'src/app/com/mycompany/normalize/core/initializer/AmbientModeLoader';
import AutenticationLoader from "src/app/com/mycompany/normalize/core/initializer/AutenticationLoader";


/**
 * @author l.piciollo
 * modulo di inizializzazione applicativo.. viene inizializzata tutta la gestione degli errori, degli ambienti, della rete e altro
 * in questo modulo non bisogna inserire componenti o altro, al difuori del gia presente, è un modulo di avvio applicativo
 * 
 * ATTENZIONE, NON SI CONSIGLIA LA MODIFICA DI QUESTA CLASSE A CAUSA DI OSSERVATORI ESTERNI CHE NE FANNO USO SPECIFICO.
 *
 */
@NgModule({
  declarations: [],
  imports: [
    PlCoreModule,
    /**
     * @author l.piciollo
     * inizializzazione di barre progressive, sono in ascolto sia sul cambio di rotta che durante le chiamate di rete
     * le progressioni sono configurabili tramite i file di configurazione
     * è possibile fare riferimento a https://github.com/t-ho/ngx-ui-loader/wiki/Custom-configuration-for-NgxUiLoaderModule
     */
    NgxUiLoaderModule.forRoot(UiLoaderConfig),
    NgxUiLoaderHttpModule.forRoot(UiLoaderHttpConfig),
    NgxUiLoaderRouterModule.forRoot(UiLoaderRouterConfig),
    
  ],
  providers: [  
    
    /**
    * @author l.piciollo
    * inizializzazione della base url per le chiamate al BE, la configurazione prevede che venga valorizzata la chiave di accesso
    * nel file environment.
    */
    { provide: BASE_URL_API, useValue: environment.baseUrlRemoteApi },
    /**
     * @author l.piciollo
     * vengono intercettati tutti gli errori applicativi e rediretti al servizio predisposto alla loro lavorazione,
     * è possibile specializzare il servizio per ogni eventualità di errore.    
     */
    { provide: ErrorHandler, useClass: ErrorService },
    /**
    * @author l.piciollo
    * configurazione per la pl-library, si tratta di settare una configurazione iniziale di tutti i parametri
    * d'inizializzazione dell'applicativo
    */
    { provide: BROWSER_VALID, useValue: [BROWSER.ALL] },  //Abilitati l'esecuzione del portale per il browser indicato
    { provide: DISABLE_LOG, useValue: environment.production }, //vengono disabilitati i log in caso di produzione
    { provide: MAX_CACHE_AGE, useValue: 300000 }, // viene impostato il tempo di validità per la cache di rete
    { provide: CACHE_TAG, useValue: '@cachable@' }, //indica come identificare le api che è possibile mettere in cache
    /**
     * @author l.piciollo
     * specializzazione di un intercettore di rete, per la gestione di request e response centralizzate.
     */
    { provide: HTTP_INTERCEPTORS, useClass: HttpInterceptorService, multi: true },
    /**
     * @author l.piciollo
     * viene iniettato il processo di login..
     * il servizio deve ritornare un ok che indica l'avvenuta login, altrimenti il portale non si avvia 
     */
    { provide: APP_INITIALIZER, useFactory: AutenticationLoader, deps: [AuthService ], multi: true },
    /**
    * @author l.piciollo
    * viene intercettata la creazione del portale.. 
    * viene identificato il tipo di browwser e vengono adeguate le funzionalita per il tipo di browser. 
    * l'adeguamento riane trasparente all'applicazione, il core ne gestisce le funzionalità
    */
    { provide: APP_INITIALIZER, useFactory: AmbientModeProviderFactory, deps: [PlAmbientModeLoaderService], multi: true },
    /**
     * @author l.piciollo
     * impostazione tempo massimo di attesa per richieste al BE
     */
    { provide: DEFAULT_TIMEOUT, useValue: 300000 },    
    { provide: DEFAULT_PATH_MOCK, useValue: "public/mock" },
     
  ],
  exports: [
    PlCoreModule,
    NgxUiLoaderModule,
    NgxUiLoaderHttpModule,
    NgxUiLoaderRouterModule,
    
  ]
})
export class   InitializerModule {
  
  

  static forRoot() {
    return {
      ngModule:   InitializerModule,
      providers: [],
      import: []
    }
  }
}

result-matching ""

    No results matching ""