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

    6.0.43 • Public • Published

    packaged @tsdi/boot

    This repo is for distribution on npm. The source for this module is in the main repo.

    @tsdi/boot: DI Module manager, application bootstrap. base on AOP, Ioc container, via @tsdi/core.

    version 5+ of @ts-ioc/core tsioc

    Install

    npm install @tsdi/boot
    
    // in browser
    npm install @tsdi/platform-browser
    
    // in server
    npm install @tsdi/platform-server

    add extends modules

    boot

    DI Module manager, application bootstrap. base on AOP.

    • @DIModule DIModule decorator, use to define class as DI Module.
    • @Bootstrap Bootstrap decorator, use to define class as bootstrp module.
    • @Boot Boot decorator, use to define class as startup service for application.
    • @Message Message decorator, for class. use to define the class as message handle register in global message queue.

    mvc boot simple

    use bootstrap

    import { DIModule, BootApplication } from '@tsdi/boot';
    
    
    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);
        }
    }
    
    @Injectable
    export class Person {
        constructor(name: string){
    
        }
    }
    
    // binding component. 
    @Component({
        selector: 'you component',
        template: {
            filed: 'binding: myfield'
        }
    })
    export class MyComponent implements AfterInit {
        
        @Input()
        myfield: string;
        
        @Input()
        use: Person;
    
        onAfterInit(): void | Promise<void> {
           // todo inited field..
    
        }
    
    }
    
    @Aspect
    export class Logger {
    
        @Around('execution(*.start)')
        log() {
            console.log('start........');
        }
    }
    
    
    @DIModule({
        imports: [
            AopModule,
            ModuleA
        ],
        providers: [
            Logger,
            ClassSevice
        ],
        bootstrap: ClassSevice
    })
    export class ModuleB {
        constructor(test: TestService, @Inject(INJECTOR) private injector: ICoreInjector) {
            // the injector is the module injected in.
            console.log(test);
            test.test();
            // console.log(injector);
            // console.log(pools);
        }
    }
    
    
    BootApplication.run(ModuleB)
    
    • 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
            BootApplication.run(MvcApi);
        }
    }
    

    Documentation

    Documentation is available on the

    packages

    @tsdi/cli @tsdi/ioc @tsdi/aop @tsdi/core @tsdi/boot @tsdi/components @tsdi/compiler @tsdi/activities @tsdi/pack @tsdi/typeorm-adapter @tsdi/unit @tsdi/unit-console

    License

    MIT © Houjun

    Install

    npm i @tsdi/boot

    DownloadsWeekly Downloads

    177

    Version

    6.0.43

    License

    MIT

    Unpacked Size

    2.08 MB

    Total Files

    255

    Last publish

    Collaborators

    • avatar