redux-providers
Version:
Minimalist dependency injection system for redux. Create providers to be injected and used in redux reducers.
18 lines • 965 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const metadata_keys_1 = require("../constants/metadata.keys");
var ReducerResolver;
(function (ReducerResolver) {
function resolve(target, parentModuleName) {
if (!Reflect.hasOwnMetadata(metadata_keys_1.METADATA_KEY.REDUCER_PARAM_TYPES, target)) {
throw new Error("Attempting to resolve target with name: " + target.name + ". " + target.name + " is not a reducer in module: " + parentModuleName + "!");
}
let designParamTypes = Reflect.getMetadata(metadata_keys_1.METADATA_KEY.DESIGN_PARAM_TYPES, target) || [];
let injections = designParamTypes.map((token) => {
return resolve(token, parentModuleName);
});
return new target(...injections);
}
ReducerResolver.resolve = resolve;
})(ReducerResolver = exports.ReducerResolver || (exports.ReducerResolver = {}));
//# sourceMappingURL=reducer-resolver.js.map