react-obsidian
Version:
Dependency injection framework for React and React Native applications
39 lines • 1.6 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ObjectGraph = void 0;
exports.isGraph = isGraph;
const uniqueId_1 = require("../utils/uniqueId");
const ProviderBinder_1 = require("./ProviderBinder");
const PropertyRetriever_1 = __importDefault(require("./PropertyRetriever"));
const reflect_1 = require("../utils/reflect");
const object_1 = require("../utils/object");
class ObjectGraph {
get name() {
const target = (0, object_1.getConstructorOrParentConstructor)(this.constructor, ObjectGraph.name);
if (reflect_1.Reflect.hasMetadata('memoizedName', target)) {
return reflect_1.Reflect.getMetadata('memoizedName', target);
}
const name = (0, uniqueId_1.uniqueId)(target.name);
reflect_1.Reflect.defineMetadata('memoizedName', name, target);
return name;
}
constructor(_props) {
this._props = _props;
this.propertyRetriever = new PropertyRetriever_1.default(this);
(0, ProviderBinder_1.bindProviders)(this);
}
retrieve(property, receiver, detector) {
return this.propertyRetriever.retrieve(property, receiver, detector);
}
onBind(_target) {
}
}
exports.ObjectGraph = ObjectGraph;
reflect_1.Reflect.set(ObjectGraph, 'typeDiscriminator', 'ObjectGraph');
function isGraph(object) {
return reflect_1.Reflect.get(object, 'typeDiscriminator') === 'ObjectGraph';
}
//# sourceMappingURL=ObjectGraph.js.map