UNPKG

react-obsidian

Version:

Dependency injection framework for React and React Native applications

21 lines 980 B
"use strict"; 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