0.0.1 • Published 4 years ago

@steveylin/configure v0.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

Table of contents

Usage

Install package

npm i @steveylin/configure --save

Add into module to preload configure file

For example

File: app.module.ts

...
import { ConfigureModule, ConfigureLoader } from '@steveylin/configure';

/**
 * Confiure Load Factory
 *
 * @param confiureLoader Confiure files loader service
 * @return Loading done promise
 */
export function ConfigFactory(configureLoader: ConfigureLoader) {
  return () => {
    return configureLoader.load({
      key: 'datasources',
      path: './../assets/configs/datasources.json'
    });
  }
}

/**
 * Main App Module
 */
@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    // Use 'forRoot' to preload configure file you want
    ConfigureModule.forRoot(
      {
        key: 'datasources',
        path: './../assets/configs/datasources.json'
      }
    ),
    HttpClientModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {}

File: app.component.ts

...
import { ConfigureLoader } from '@steveylin-libs/configure';

/**
 * Main App Component
 */
@Component({
  selector: 'steveylin-libs-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.less']
})
export class AppComponent implements OnInit {

  /**
   * @param configureLoader Configure load files service
   */
  constructor(private configureLoader: ConfigureLoader) {}

  /**
   * Initilailize component
   *
   * @method public
   */
  public ngOnInit(): void {
    const config = this.configureLoader.get<AppConfig>('datasources');
    console.log(config.mqtt);
  }

}

Preview

Status

npm version type

Copyright and license

Code and documentation copyright 2020 Steve Y Lin.