UNPKG

redux-providers

Version:

Minimalist dependency injection system for redux. Create providers to be injected and used in redux reducers.

31 lines 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const provider_resolver_1 = require("../resolver/provider-resolver"); const instance_container_1 = require("../container/instance-container"); const metadata_keys_1 = require("../constants/metadata.keys"); const reducer_resolver_1 = require("../resolver/reducer-resolver"); function createReduxProperties(moduleTarget) { if (!Reflect.hasMetadata(metadata_keys_1.METADATA_KEY.REDUX_PROVIDER_MODULE_OPTIONS, moduleTarget)) { throw new Error("Are you sure " + moduleTarget.name + " is a module?"); } const moduleOptions = Reflect.getMetadata(metadata_keys_1.METADATA_KEY.REDUX_PROVIDER_MODULE_OPTIONS, moduleTarget); if (!moduleOptions) { throw new Error("Module options of " + moduleTarget.name + "must be defined!"); } let container = new instance_container_1.InstanceContainer(); const providerList = moduleOptions.providers || []; for (let provider of providerList) { container.add(provider.name, provider_resolver_1.ProviderResolver.resolve(provider, moduleTarget.name)); } const reducerList = moduleOptions.reducers || []; for (let reducer of reducerList) { } const rootReducer = moduleOptions.rootReducer; const rootReducerInstance = reducer_resolver_1.ReducerResolver.resolve(rootReducer, moduleTarget.name); return { instanceContainer: container, rootReducer: rootReducerInstance.getReducer() }; } exports.createReduxProperties = createReduxProperties; //# sourceMappingURL=create-container.js.map