@inversifyjs/binding-decorators
Version:
InversifyJs binding decorators package
25 lines • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.provide = provide;
const reflect_metadata_utils_1 = require("@inversifyjs/reflect-metadata-utils");
const bindingMetadataMapReflectKey_1 = require("../../reflectMetadata/data/bindingMetadataMapReflectKey");
const updateMetadataMap_1 = require("../actions/updateMetadataMap");
const buildDefaultBindingMetadataMap_1 = require("../calculations/buildDefaultBindingMetadataMap");
function provide(serviceIdentifier, bind) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
return (target) => {
const bindingServiceIdentifier = serviceIdentifier ?? target;
const bindAction = (bindService) => {
const bindInWhenOnFluentSyntax = bindService(bindingServiceIdentifier).to(target);
if (bind !== undefined) {
bind(bindInWhenOnFluentSyntax);
}
};
const bindingMetadata = {
action: bindAction,
serviceIdentifier: bindingServiceIdentifier,
};
(0, reflect_metadata_utils_1.updateOwnReflectMetadata)(Object, bindingMetadataMapReflectKey_1.bindingMetadataMapReflectKey, buildDefaultBindingMetadataMap_1.buildDefaultBindingMetadataMap, (0, updateMetadataMap_1.updateMetadataMap)(target, bindingMetadata));
};
}
//# sourceMappingURL=provide.js.map