This package has been deprecated

    Author message:

    this package has been deprecated

    @greg-md/ng-boot
    TypeScript icon, indicating that this package has built-in type declarations

    1.1.4 • Public • Published

    Ng Boot

    npm version Build Status

    Boot(Initialize) services before loading the application with Angular.

    Table of Contents:

    Installation

    npm install @greg-md/ng-boot --save

    Integration

    1. Create a boot strategy;

    Let say we want to boot the application after 5 seconds.

    For that we create a timeout boot in ./timeout.boot.ts.

    import {Injectable} from '@angular/core';
    import {Observable} from 'rxjs/Observable';
    import {BootStrategy} from '@greg-md/ng-boot';
     
    @Injectable()
    export class TimeoutBoot implements BootStrategy {
      readonly key = 'timeout';
     
      boot() {
        return Observable.empty().delay(5000);
      }
    }

    2. Import boot module and initialise the strategy;

    import {BrowserModule} from '@angular/platform-browser';
    import {NgModule, APP_INITIALIZER} from '@angular/core';
     
    // 1. Import BootModule, BootService and TimeoutBoot;
    import {BootModule, BootService} from '@greg-md/ng-boot';
    import {TimeoutBoot} from './timeout.boot.ts';
     
    import {AppComponent} from './app.component';
     
    // 2. Create and export provider factory that will boot the TimeoutBoot;
    export function timeoutFactory(service: BootService, strategy: TimeoutBoot) {
      return service.initialize(strategy);
    }
     
    @NgModule({
      imports: [
        BrowserModule,
        // 3. Register BootModule with it's providers;
        BootModule.forRoot(),
      ],
      providers: [
        // 4. Register TimeoutBoot and initialize its factory.
        TimeoutBoot,
        {
          provide: APP_INITIALIZER,
          useFactory: timeoutFactory,
          deps: [ BootService, TimeoutBoot ],
          multi: true,
        },
      ],
      declarations: [AppComponent],
      bootstrap: [AppComponent]
    })
    export class AppModule { }

    3. Using in routes.

    Use BootResolve in a root route to prevent routes to be loaded before all strategies are booted.

    import {Routes} from '@angular/router';
     
    // 1. Import BootResolve;
    import { BootResolve } from '@greg-md/ng-boot';
     
    export const routes: Routes = [
      {
        path: '',
        resolve: {
          // 2. Register BootResolve in the root route.
          boot: BootResolve,
        },
        // 3. Register app routes in the root route children. 
        children: [
          { path: '', loadChildren: './+home/home.module#HomeModule' },
     
          { path: 'about', loadChildren: './+about/about.module#AboutModule' },
        ]
      },
    ];

    Boot Service

    BootService provides you some useful methods for you.

    initialize

    Initialize a BootStrategy for APP_INITIALIZER factory.

    initialize(strategy: BootStrategy, stopOnFail: boolean = false): Promise<any>

    reboot

    If some of your boot strategies failed, you can retry rebooting them.

    reboot(): Observable<any>

    resolve

    Resolve all boot strategies.

    resolve(): Observable<Object>

    License

    MIT © Grigorii Duca

    Huuuge Quote

    I fear not the man who has practiced 10,000 programming languages once, but I fear the man who has practiced one programming language 10,000 times. #horrorsquad

    Install

    npm i @greg-md/ng-boot

    DownloadsWeekly Downloads

    0

    Version

    1.1.4

    License

    MIT

    Last publish

    Collaborators

    • greg-md