redux-providers
Version:
Minimalist dependency injection system for redux. Create providers to be injected and used in redux reducers.
18 lines • 974 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const metadata_keys_1 = require("../constants/metadata.keys");
var ProviderResolver;
(function (ProviderResolver) {
function resolve(target, parentModuleName) {
if (!Reflect.hasOwnMetadata(metadata_keys_1.METADATA_KEY.PROVIDER_PARAM_TYPES, target)) {
throw new Error("Attempting to resolve target with name: " + target.name + ". " + target.name + " is not a provider 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);
}
ProviderResolver.resolve = resolve;
})(ProviderResolver = exports.ProviderResolver || (exports.ProviderResolver = {}));
//# sourceMappingURL=provider-resolver.js.map