react-obsidian
Version:
Dependency injection framework for React and React Native applications
21 lines • 980 B
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const GraphRegistry_1 = __importDefault(require("../../graph/registry/GraphRegistry"));
const ReferenceCounter_1 = __importDefault(require("../../ReferenceCounter"));
exports.default = (Graph, target, props, injectionToken) => {
const [graph] = (0, react_1.useState)(() => {
const resolvedGraph = GraphRegistry_1.default.resolve(Graph, 'lifecycleOwner', props, injectionToken);
resolvedGraph.onBind(target);
return resolvedGraph;
});
(0, react_1.useEffect)(() => {
ReferenceCounter_1.default.retain(graph);
return () => ReferenceCounter_1.default.release(graph, (g) => GraphRegistry_1.default.clear(g));
}, [graph]);
return graph;
};
//# sourceMappingURL=useGraph.js.map
;