@hapiness/core
Version:
Project to have a HapiJS (https://hapijs.com/) based framework to create easier NodeJS back-end with some awesome features
72 lines (71 loc) • 1.55 kB
TypeScript
import { Type } from '../decorators';
import { ReflectiveInjector } from 'injection-js';
import { Observable } from 'rxjs';
import { ModuleLevel } from '../enums';
/**
* CoreProvide Type
* Used by CoreModule Type
*/
export interface CoreProvide {
provide: any;
useClass?: any;
useValue?: any;
useExisting?: any;
useFactory?: any;
deps?: any[];
}
/**
* CoreModule Type
* Represents a Module
*/
export declare class CoreModule {
token: Type<any> | any;
name: string;
version: string;
instance?: any;
level: ModuleLevel;
di?: ReflectiveInjector;
providers?: CoreProvide[];
modules?: CoreModule[];
parent?: CoreModule;
exports?: Type<any>[] | any[];
declarations?: Type<any>[] | any[];
}
/**
* CoreModuleWithProviders Type
* Used to pass data while module importation
*/
export interface CoreModuleWithProviders {
module: Type<any>;
providers: CoreProvide[];
}
/**
* Module Lifecycle Hook
* called once the module has been
* registered into the server
*
* @returns void | Observable
*/
export interface OnRegister {
onRegister(): void | Observable<any>;
}
/**
* Module Lifecycle Hook
* called once the server has started
* only for the MainModule
*
* @returns void | Observable
*/
export interface OnStart {
onStart(): void | Observable<any>;
}
/**
* Module Lifecycle Hook
* called when an error
* occured in components
*
* @returns void | Observable
*/
export interface OnError {
onError(error: Error, data?: any): void | Observable<any>;
}