react-obsidian
Version:
Dependency injection framework for React and React Native applications
36 lines • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ConstructorArgs_1 = require("./ConstructorArgs");
const reflect_1 = require("../../utils/reflect");
class InjectionMetadata {
constructor() {
this.injectionMetadataKey = 'injectionMetadata';
this.injectedConstructorArgsKey = 'injectedConstructorArgsKey';
this.lateInjectionMetadataKey = 'lateInjectionMetadataKey';
}
getConstructorArgsToInject(target) {
var _a;
return (_a = reflect_1.Reflect.getMetadata(this.injectedConstructorArgsKey, target)) !== null && _a !== void 0 ? _a : new ConstructorArgs_1.ConstructorArgs();
}
getPropertiesToInject(target) {
return this.getProperties(this.injectionMetadataKey, target);
}
getLatePropertiesToInject(target) {
return this.getProperties(this.lateInjectionMetadataKey, target);
}
savePropertyMetadata(target, property) {
this.saveProperties(this.injectionMetadataKey, this.getPropertiesToInject(target).add(property), target);
}
saveLatePropertyMetadata(target, property) {
this.saveProperties(this.lateInjectionMetadataKey, this.getLatePropertiesToInject(target).add(property), target);
}
saveProperties(key, properties, target) {
reflect_1.Reflect.defineMetadata(key, properties, target);
}
getProperties(key, target) {
var _a;
return (_a = reflect_1.Reflect.getMetadata(key, target)) !== null && _a !== void 0 ? _a : new Set();
}
}
exports.default = InjectionMetadata;
//# sourceMappingURL=InjectionMetadata.js.map