1.0.5 • Published 6 years ago

redux-module-di v1.0.5

Weekly downloads
4
License
ISC
Repository
github
Last release
6 years ago

redux-module-di

Module decorator to connect redux with inversify.

Installation

  • npm install --save redux-module-di

Installation (typescript)

  • in tsconfig.json set
"compilerOptions": {
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "types": ["reflect-metadata"]
}

@module() decorator

    import { injectable } from "inversify";
    import { module, IReducerService, bootstrapModule } from "redux-module-di";

    @injectable()
    class Provider {}

    @injectable()
    class AppReducerService implements IReducerService {
        public name = "app";

        public constructor(private provider: Provider) {}

        // some reducer
        public reducer(state: any, action: any): any {
            return state;
        }
    }

    @module({
        name: "app",
        reducers: [
            AppReducerService
        ],
        providers: [
            Provider
        ]
    })
    class AppModule {}

    bootstrapModule(AppModule, document.getElementById('app') as HTMLElement)

@component() decorator

    import { injectable } from "inversify";
    import { module, component } from "redux-module-di";

    @injectable()
    class Provider {}

    @component()
    class AppComponent extends React.Component<any, any> {
        public constructor(props: any, context: any, private provider: Provider) {
            super(props, context);
        }

        public render() {
            return null;
        }
    }

    @module({
        name: "app",
        components: [
            AppComponent
        ],
        providers: [
            Provider
        ]
    })
    class AppModule {}