@ts-ioc/bootstrap
v4.0.5
Published
DI Module manager, application bootstrap. base on AOP, Ioc container, via @ts-ioc/core .
Downloads
367
Maintainers
Readme
packaged @ts-ioc/bootstrap
This repo is for distribution on npm
. The source for this module is in the
main repo.
@ts-ioc/bootstrap
: DI Module manager, application bootstrap. base on AOP, Ioc container, via @ts-ioc/core
.
version 2+ of tsioc
Install
npm install @ts-ioc/bootstrap
// in browser
npm install @ts-ioc/platform-browser
// in server
npm install @ts-ioc/platform-server
add extends modules
use bootstrap
import { DIModule, ApplicationBuilder } from '@ts-ioc/bootstrap';
export class TestService {
testFiled = 'test';
test() {
console.log('test');
}
}
@DIModule({
providers: [
{ provide: 'mark', useFactory: () => 'marked' },
TestService
],
exports: [
]
})
export class ModuleA {
}
@Injectable
export class ClassSevice {
@Inject('mark')
mark: string;
state: string;
start() {
console.log(this.mark);
}
}
@Aspect
export class Logger {
@Around('execution(*.start)')
log() {
console.log('start........');
}
}
@DIModule({
imports: [
AopModule,
Logger,
ModuleA
],
exports: [
ClassSevice
],
bootstrap: ClassSevice
})
export class ModuleB implements OnModuleStart<ClassSevice> {
constructor(test: TestService, @Inject(ContainerToken) private container: IContainer) {
console.log(test);
test.test();
// console.log(container);
// console.log('container pools..................\n');
let pools = container.get(ContainerPoolToken);
// console.log(pools);
console.log('container pools defaults..................\n');
console.log(pools.defaults);
}
mdOnStart(instance: ClassSevice): void | Promise<any> {
console.log('mdOnStart...');
console.log(this.container);
instance.start();
instance.state = 'started';
}
}
ApplicationBuilder.create(__dirname)
.bootstrap(Application)
ApplicationBuilder.create(baseURL)
.bootstrap(Application)
- use @Bootstrap config to boot application
@Bootstrap({
baseURL: __dirname,
imports: [
KoaModule
],
//use your builder
builder: MvcHostBuilder,
bootstrap: MvcServerToken,
//bootDeps:[s
//module
//],
//bootConfiguration: config
//debug: true
})
class MvcApi {
constructor() {
console.log('boot application');
}
}
- use @Bootstrap main to boot application
@Bootstrap({
imports: [
KoaModule
],
bootstrap: MvcServerToken
})
class MvcApi {
constructor() {
console.log('boot application');
}
static main() {
console.log('run mvc api...');
// use your builder
MvcHostBuilder.create(__dirname)
.useConfiguration({ debug: true })
.bootstrap(MvcApi);
}
}
Container Interface
see more interface. all document is typescript .d.ts.
Documentation is available on the @ts-ioc/core docs site.
License
MIT © Houjun