4.0.5 • Published 5 years ago

@ts-ioc/bootstrap v4.0.5

Weekly downloads
60
License
MIT
Repository
github
Last release
5 years ago

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

4.0.5

5 years ago

4.0.4

5 years ago

4.0.3

5 years ago

4.0.2

5 years ago

4.0.1

5 years ago

4.0.0

5 years ago

4.0.0-rs2

5 years ago

4.0.0-rs1

5 years ago

4.0.0-rs

5 years ago

4.0.0-beta30

5 years ago

4.0.0-beta28

5 years ago

4.0.0-beta27

5 years ago

4.0.0-beta26

5 years ago

4.0.0-beta25

5 years ago

4.0.0-beta24

5 years ago

4.0.0-beta23

5 years ago

4.0.0-beta22

5 years ago

4.0.0-beta21

5 years ago

4.0.0-beta20

5 years ago

4.0.0-beta19

5 years ago

4.0.0-beta18

5 years ago

4.0.0-beta17

5 years ago

4.0.0-beta16

5 years ago

4.0.0-beta15

5 years ago

4.0.0-beta13

5 years ago

4.0.0-beta12

5 years ago

4.0.0-beta10

5 years ago

4.0.0-beta9

5 years ago

4.0.0-beta8

5 years ago

4.0.0-beta7

5 years ago

4.0.0-beta6

5 years ago

4.0.0-beta5

5 years ago

4.0.0-beta4

5 years ago

4.0.0-beta3

5 years ago

4.0.0-beta2

5 years ago

4.0.0-beta1

5 years ago

3.2.14

5 years ago

3.2.12

6 years ago

3.2.11

6 years ago

3.2.10

6 years ago

3.2.9

6 years ago

3.2.8

6 years ago

3.2.7

6 years ago

3.2.6

6 years ago

3.2.5

6 years ago

3.2.4

6 years ago

3.2.3

6 years ago

3.2.2

6 years ago

3.2.1

6 years ago

3.2.0

6 years ago

3.1.12

6 years ago

3.1.11

6 years ago

3.1.10

6 years ago

3.1.9

6 years ago

3.1.8

6 years ago

3.1.7

6 years ago

3.1.6

6 years ago

3.1.5

6 years ago

3.1.3

6 years ago

3.1.2

6 years ago

3.1.1

6 years ago

3.1.0

6 years ago

3.0.6

6 years ago

3.0.5

6 years ago

3.0.4

6 years ago

3.0.3

6 years ago

3.0.1

6 years ago

3.0.0

6 years ago

3.0.0-beta8

6 years ago

3.0.0-beta7

6 years ago

3.0.0-beta6

6 years ago

3.0.0-beta5

6 years ago

3.0.0-beta3

6 years ago

3.0.0-beta2

6 years ago

3.0.0-beta1

6 years ago

3.0.0-beta

6 years ago