react-obsidian 0.0.29 → 0.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -17
- package/dist/src/decorators/LifecycleBound.d.ts +2 -0
- package/dist/src/decorators/LifecycleBound.d.ts.map +1 -0
- package/dist/src/decorators/LifecycleBound.js +11 -0
- package/dist/src/decorators/LifecycleBound.js.map +1 -0
- package/dist/src/graph/ObjectGraph.js.map +1 -1
- package/dist/src/graph/PropertyRetriever.js.map +1 -1
- package/dist/src/graph/ServiceLocatorFactory.js.map +1 -1
- package/dist/src/graph/registry/GraphRegistry.d.ts +1 -0
- package/dist/src/graph/registry/GraphRegistry.d.ts.map +1 -1
- package/dist/src/graph/registry/GraphRegistry.js +7 -2
- package/dist/src/graph/registry/GraphRegistry.js.map +1 -1
- package/dist/src/injectors/components/ComponentInjector.d.ts.map +1 -1
- package/dist/src/injectors/components/ComponentInjector.js.map +1 -1
- package/dist/src/injectors/hooks/InjectHook.js.map +1 -1
- package/dist/test/fixtures/LifecycleBoundGraph.d.ts +6 -0
- package/dist/test/fixtures/LifecycleBoundGraph.d.ts.map +1 -0
- package/dist/test/fixtures/LifecycleBoundGraph.js +48 -0
- package/dist/test/fixtures/LifecycleBoundGraph.js.map +1 -0
- package/dist/test/fixtures/MainGraph.js.map +1 -1
- package/dist/test/fixtures/SingletonGraph.js.map +1 -1
- package/dist/test/fixtures/Subgraph.js.map +1 -1
- package/dist/test/fixtures/ThrowingMainGraph.js.map +1 -1
- package/dist/test/fixtures/UniqueNumberGraph.js.map +1 -1
- package/dist/transformers/babel-plugin-obsidian/index.js.map +1 -1
- package/package.json +1 -1
- package/src/decorators/LifecycleBound.ts +6 -0
- package/src/graph/registry/GraphRegistry.ts +7 -3
- package/src/injectors/components/ComponentInjector.tsx +3 -3
- package/src/injectors/hooks/InjectHook.ts +1 -1
package/README.md
CHANGED
|
@@ -18,23 +18,24 @@ React Obsidian is guided by the principles of the Dependency Injection pattern,
|
|
|
18
18
|
> 📖 Read more about Dependency Injection and Obsidian in [Breaking complexity with Dependency Injection: Introducing Obsidian](https://guyca.medium.com/breaking-complexity-with-dependency-injection-introducing-obsidian-cd452802f076) on Medium.
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
* [Installation](https://github.com/wix-incubator/
|
|
22
|
-
* [Prerequisites](https://github.com/wix-incubator/
|
|
23
|
-
* [Usage](https://github.com/wix-incubator/
|
|
24
|
-
* [Declare an object graph](https://github.com/wix-incubator/
|
|
25
|
-
* [Component injection](https://github.com/wix-incubator/
|
|
26
|
-
* [Hooks injection](https://github.com/wix-incubator/
|
|
27
|
-
* [Class injection](https://github.com/wix-incubator/
|
|
28
|
-
* [Injecting properties](https://github.com/wix-incubator/
|
|
29
|
-
* [Injecting constructor arguments](https://github.com/wix-incubator/
|
|
30
|
-
* [Obtaining dependencies from a graph](https://github.com/wix-incubator/
|
|
31
|
-
* [Advance usage](https://github.com/wix-incubator/
|
|
32
|
-
* [Accessing props in graphs](https://github.com/wix-incubator/
|
|
33
|
-
* [Singleton graphs and providers](https://github.com/wix-incubator/
|
|
34
|
-
* [
|
|
35
|
-
* [
|
|
36
|
-
* [
|
|
37
|
-
* [
|
|
21
|
+
* [Installation](https://github.com/wix-incubator/obsidian#installation)
|
|
22
|
+
* [Prerequisites](https://github.com/wix-incubator/obsidian#prerequisites)
|
|
23
|
+
* [Usage](https://github.com/wix-incubator/obsidian#usage)
|
|
24
|
+
* [Declare an object graph](https://github.com/wix-incubator/obsidian#declare-an-object-graph)
|
|
25
|
+
* [Component injection](https://github.com/wix-incubator/obsidian#component-injection)
|
|
26
|
+
* [Hooks injection](https://github.com/wix-incubator/obsidian#hooks-injection)
|
|
27
|
+
* [Class injection](https://github.com/wix-incubator/obsidian#class-injection)
|
|
28
|
+
* [Injecting properties](https://github.com/wix-incubator/obsidian#injecting-properties)
|
|
29
|
+
* [Injecting constructor arguments](https://github.com/wix-incubator/obsidian#injecting-constructor-arguments)
|
|
30
|
+
* [Obtaining dependencies from a graph](https://github.com/wix-incubator/obsidian#obtaining-dependencies-from-a-graph)
|
|
31
|
+
* [Advance usage](https://github.com/wix-incubator/obsidian#advance-usage)
|
|
32
|
+
* [Accessing props in graphs](https://github.com/wix-incubator/obsidian#accessing-props-in-graphs)
|
|
33
|
+
* [Singleton graphs and providers](https://github.com/wix-incubator/obsidian#singleton-graphs-and-providers)
|
|
34
|
+
* [React lifecycle-bound graphs](https://github.com/wix-incubator/obsidian#react-lifecycle-bound-graphs)
|
|
35
|
+
* [Lazy property injection](https://github.com/wix-incubator/obsidian#lazy-property-injection)
|
|
36
|
+
* [Typing graphs](https://github.com/wix-incubator/obsidian#typing-graphs)
|
|
37
|
+
* [Graph middleware](https://github.com/wix-incubator/obsidian#graph-middleware)
|
|
38
|
+
* [Clearing graphs](https://github.com/wix-incubator/obsidian#clearing-graphs)
|
|
38
39
|
|
|
39
40
|
|
|
40
41
|
|
|
@@ -223,6 +224,17 @@ class ApplicationGraph {
|
|
|
223
224
|
}
|
|
224
225
|
```
|
|
225
226
|
|
|
227
|
+
### React lifecycle-bound graphs
|
|
228
|
+
Graphs can be linked to the lifecycle of React components (and hooks) that require them. `@LifecycleBound` graphs are effectively singletons within the lifespan of the React components and hooks that were injected by the graph. Once all of the React component and hooks that were injected by the `@LifecycleBound` graph are unmounted - the graph is deallocated.
|
|
229
|
+
|
|
230
|
+
This is mostly useful when a graph is shared between multiple screens that either share the same root screen or are all part of the same flow.
|
|
231
|
+
|
|
232
|
+
```typescript
|
|
233
|
+
@LifecycleBound() @Graph()
|
|
234
|
+
class HomeGraph {
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
226
238
|
### Lazy property injection
|
|
227
239
|
Class properties can be injected lazily by using the `@LazyInject()` decorator. This is useful when the injection should be done in a lifecycle method instead of in the class constructor.
|
|
228
240
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LifecycleBound.d.ts","sourceRoot":"","sources":["../../../src/decorators/LifecycleBound.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,kBACP,GAAG,SAIzB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LifecycleBound = void 0;
|
|
4
|
+
function LifecycleBound() {
|
|
5
|
+
return function (constructor) {
|
|
6
|
+
Reflect.defineMetadata('isLifecycleBound', true, constructor);
|
|
7
|
+
return constructor;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
exports.LifecycleBound = LifecycleBound;
|
|
11
|
+
//# sourceMappingURL=LifecycleBound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LifecycleBound.js","sourceRoot":"","sources":["../../../src/decorators/LifecycleBound.ts"],"names":[],"mappings":";;;AAAA,SAAgB,cAAc;IAC5B,OAAO,UAAC,WAAgB;QACtB,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC9D,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC;AALD,wCAKC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,kEAA4C;AAC5C,mDAAiD;AAEjD,0EAAoD;AAGpD;IAQE,qBAAsB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAPxB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;QAQtD,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IACtB,CAAC;
|
|
1
|
+
{"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,kEAA4C;AAC5C,mDAAiD;AAEjD,0EAAoD;AAGpD;IAQE,qBAAsB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAPxB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;QAQtD,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAPD,sBACI,6BAAI;aADR;YAEE,OAAO,IAAA,iBAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;;;OAAA;IAMD,8BAAQ,GAAR,UAAqB,QAAgB,EAAE,QAAkB;QACvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAA2B,CAAC;IACvF,CAAC;IAXD;QAAC,IAAA,iBAAO,GAAE;;;2CAGT;IASH,kBAAC;CAAA,AAfD,IAeC;AAfqB,kCAAW;AAiBjC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;AAE7D,SAAgB,OAAO,CAAC,MAAwC;IAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,aAAa,CAAC;AACpE,CAAC;AAFD,0BAEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyRetriever.js","sourceRoot":"","sources":["../../../src/graph/PropertyRetriever.ts"],"names":[],"mappings":";;;;;AAAA,2EAAqD;AAErD,uFAAiE;AAEjE;IACE,2BAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAI,CAAC;IAErC,oCAAQ,GAAR,UAAS,QAAgB,EAAE,QAAkB;QAC3C,IAAM,kBAAkB,GAAG,iCAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5F,IAAI,kBAAkB,IAAI,kBAAkB,IAAI,IAAI,CAAC,KAAK,EAAE;YAC1D,IAAM,YAAY,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;gBACzC,GAAG,
|
|
1
|
+
{"version":3,"file":"PropertyRetriever.js","sourceRoot":"","sources":["../../../src/graph/PropertyRetriever.ts"],"names":[],"mappings":";;;;;AAAA,2EAAqD;AAErD,uFAAiE;AAEjE;IACE,2BAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAI,CAAC;IAErC,oCAAQ,GAAR,UAAS,QAAgB,EAAE,QAAkB;QAC3C,IAAM,kBAAkB,GAAG,iCAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5F,IAAI,kBAAkB,IAAI,kBAAkB,IAAI,IAAI,CAAC,KAAK,EAAE;YAC1D,IAAM,YAAY,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;gBACzC,GAAG,YAAC,KAAY,EAAE,cAAsB;oBACtC,OAAO,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACxC,CAAC;aACF,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC;SAC5E;QAED,IAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CACb,kDAA2C,QAAQ,MAAG;kBACpD,sGAAsG,CACzG,CAAC;SACH;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,4CAAgB,GAAxB,UAAyB,QAAgB,EAAE,QAAiB;QAC1D,IAAM,SAAS,GAAG,uBAAa,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,SAAS;aACb,GAAG,CAAC,UAAC,QAAe,IAAK,OAAA,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAArC,CAAqC,CAAC;aAC/D,MAAM,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,KAAK,SAAS,EAApB,CAAoB,CAAC,CAAC;IAC9C,CAAC;IACH,wBAAC;AAAD,CAAC,AA/BD,IA+BC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceLocatorFactory.js","sourceRoot":"","sources":["../../../src/graph/ServiceLocatorFactory.ts"],"names":[],"mappings":";;;;;AAEA,2EAAqD;AAErD;IAAA;IAUA,CAAC;IATQ,+BAAS,GAAhB,UAAoD,KAAuB,EAAE,KAAS;QACpF,IAAM,QAAQ,GAAG,uBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrD,IAAM,OAAO,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClC,GAAG,
|
|
1
|
+
{"version":3,"file":"ServiceLocatorFactory.js","sourceRoot":"","sources":["../../../src/graph/ServiceLocatorFactory.ts"],"names":[],"mappings":";;;;;AAEA,2EAAqD;AAErD;IAAA;IAUA,CAAC;IATQ,+BAAS,GAAhB,UAAoD,KAAuB,EAAE,KAAS;QACpF,IAAM,QAAQ,GAAG,uBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrD,IAAM,OAAO,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClC,GAAG,YAAC,OAAY,EAAE,QAAgB,EAAE,QAAa;gBAC/C,OAAO,cAAM,OAAA,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAArC,CAAqC,CAAC;YACrD,CAAC;SACF,CAAC,CAAC;QACH,OAAO,OAA2C,CAAC;IACrD,CAAC;IACH,4BAAC;AAAD,CAAC,AAVD,IAUC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRegistry.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA+C;IACrF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAChF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8D;IAC/F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAE/D,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,GAAE,aAAa,CAAC,KAAK,CAAC,EAAO;IAIlF,gBAAgB,CAAC,KAAK,EAAE,KAAK;IAK7B,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE;IAMnC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAIrC,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;IASjE,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,WAAW;IAInB,KAAK,CAAC,KAAK,EAAE,KAAK;IAQlB,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;IAIhD,qBAAqB;IAIrB,QAAQ;CAKT;;AAED,wBAAmC"}
|
|
1
|
+
{"version":3,"file":"GraphRegistry.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA+C;IACrF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAChF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8D;IAC/F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAE/D,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,GAAE,aAAa,CAAC,KAAK,CAAC,EAAO;IAIlF,gBAAgB,CAAC,KAAK,EAAE,KAAK;IAK7B,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE;IAMnC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAIrC,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;IASjE,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,uBAAuB;IAI/B,KAAK,CAAC,KAAK,EAAE,KAAK;IAQlB,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;IAIhD,qBAAqB;IAIrB,QAAQ;CAKT;;AAED,wBAAmC"}
|
|
@@ -33,7 +33,7 @@ var GraphRegistry = /** @class */ (function () {
|
|
|
33
33
|
return this.nameToInstance.get(name);
|
|
34
34
|
};
|
|
35
35
|
GraphRegistry.prototype.resolve = function (Graph, props) {
|
|
36
|
-
if (this.isSingleton(Graph) && this.has(Graph)) {
|
|
36
|
+
if ((this.isSingleton(Graph) || this.isBoundToReactLifecycle(Graph)) && this.has(Graph)) {
|
|
37
37
|
return this.getFirst(Graph);
|
|
38
38
|
}
|
|
39
39
|
var graph = this.graphMiddlewares.resolve(Graph, props);
|
|
@@ -41,7 +41,8 @@ var GraphRegistry = /** @class */ (function () {
|
|
|
41
41
|
return graph;
|
|
42
42
|
};
|
|
43
43
|
GraphRegistry.prototype.has = function (Graph) {
|
|
44
|
-
|
|
44
|
+
var _a, _b;
|
|
45
|
+
return ((_b = (_a = this.constructorToInstance.get(Graph)) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : 0) > 0;
|
|
45
46
|
};
|
|
46
47
|
GraphRegistry.prototype.getFirst = function (Graph) {
|
|
47
48
|
return this.constructorToInstance.get(Graph).values().next().value;
|
|
@@ -58,6 +59,10 @@ var GraphRegistry = /** @class */ (function () {
|
|
|
58
59
|
var _a;
|
|
59
60
|
return (_a = Reflect.getMetadata('isSingleton', Graph)) !== null && _a !== void 0 ? _a : false;
|
|
60
61
|
};
|
|
62
|
+
GraphRegistry.prototype.isBoundToReactLifecycle = function (Graph) {
|
|
63
|
+
var _a;
|
|
64
|
+
return (_a = Reflect.getMetadata('isLifecycleBound', Graph)) !== null && _a !== void 0 ? _a : false;
|
|
65
|
+
};
|
|
61
66
|
GraphRegistry.prototype.clear = function (graph) {
|
|
62
67
|
var Graph = this.instanceToConstructor.get(graph);
|
|
63
68
|
if (this.isSingleton(Graph))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":";;;;;;AAGA,gFAA0D;AAE1D;IAAA;QACmB,0BAAqB,GAAG,IAAI,GAAG,EAAoC,CAAC;QACpE,0BAAqB,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC/D,mBAAc,GAAG,IAAI,GAAG,EAAiB,CAAC;QAC1C,qBAAgB,GAAG,IAAI,GAAG,EAAmD,CAAC;QAC9E,qBAAgB,GAAG,IAAI,8BAAoB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ComponentInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,MAAM,CAAC,CAAC,EACN,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAChC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAMtC,OAAO,CAAC,aAAa;CAetB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;AAAA,gDAAiD;AACjD,oFAA2D;AAE3D,kEAA4C;AAC5C,wDAAkC;AAElC,2CAAqE;AAErE;IAAA;IAyBA,CAAC;IAxBC,kCAAM,GAAN,UACE,MAAkC,EAClC,KAAiC;QAEjC,IAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClD,IAAA,iCAAoB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,yCAAa,GAArB,UACE,kBAA8C,EAC9C,KAAiC;QAEjC,IAAM,UAAU,GAAG,IAAA,2BAAmB,EAAC,kBAAkB,CAAC,CAAC;QAC3D,IAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACzE,IAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,OAAO,IAAA,mBAAW,EAAC,UAAC,WAAc;YAChC,IAAM,KAAK,GAAG,IAAA,kBAAQ,EAAI,KAAK,EAAE,WAAW,CAAC,CAAC;YAC9C,IAAM,YAAY,GAAG,IAAI,uBAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAElE,OAAO,8DAAG,MAAM,CAAC,YAA+C,CAAC,CAAI,CAAC;QACxE,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IACH,wBAAC;AAAD,CAAC,AAzBD,IAyBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InjectHook.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/InjectHook.ts"],"names":[],"mappings":";;;;;;AAGA,gEAA0C;AAE1C,IAAM,YAAY,GAAG,IAAI,sBAAY,EAAE,CAAC;AAExC,6HAA6H;AAC7H,0FAA0F;AAC1F,uHAAuH;AACvH,yEAAyE;AAEzE,SAAgB,uBAAuB,CACrC,IAAsC,EACtC,KAAiC;IAEjC,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"InjectHook.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/InjectHook.ts"],"names":[],"mappings":";;;;;;AAGA,gEAA0C;AAE1C,IAAM,YAAY,GAAG,IAAI,sBAAY,EAAE,CAAC;AAExC,6HAA6H;AAC7H,0FAA0F;AAC1F,uHAAuH;AACvH,yEAAyE;AAEzE,SAAgB,uBAAuB,CACrC,IAAsC,EACtC,KAAiC;IAEjC,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAA+C,CAAC;AACxF,CAAC;AALD,0DAKC;AAED,SAAgB,UAAU,CACxB,IAAgC,EAChC,KAAiC;IAEjC,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AALD,gCAKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LifecycleBoundGraph.d.ts","sourceRoot":"","sources":["../../../test/fixtures/LifecycleBoundGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,WAAW,EAAE,MAAM,WAAW,CAAC;AAG/C,qBACa,mBAAoB,SAAQ,WAAW;IAClD,MAAM,CAAC,YAAY,SAAK;;CAMzB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
20
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
|
+
};
|
|
23
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
24
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.LifecycleBoundGraph = void 0;
|
|
28
|
+
var src_1 = require("../../src");
|
|
29
|
+
var LifecycleBound_1 = require("../../src/decorators/LifecycleBound");
|
|
30
|
+
var LifecycleBoundGraph = /** @class */ (function (_super) {
|
|
31
|
+
__extends(LifecycleBoundGraph, _super);
|
|
32
|
+
function LifecycleBoundGraph() {
|
|
33
|
+
var _this = _super.call(this) || this;
|
|
34
|
+
LifecycleBoundGraph_1.timesCreated++;
|
|
35
|
+
return _this;
|
|
36
|
+
}
|
|
37
|
+
LifecycleBoundGraph_1 = LifecycleBoundGraph;
|
|
38
|
+
var LifecycleBoundGraph_1;
|
|
39
|
+
LifecycleBoundGraph.timesCreated = 0;
|
|
40
|
+
LifecycleBoundGraph = LifecycleBoundGraph_1 = __decorate([
|
|
41
|
+
(0, LifecycleBound_1.LifecycleBound)(),
|
|
42
|
+
(0, src_1.Graph)(),
|
|
43
|
+
__metadata("design:paramtypes", [])
|
|
44
|
+
], LifecycleBoundGraph);
|
|
45
|
+
return LifecycleBoundGraph;
|
|
46
|
+
}(src_1.ObjectGraph));
|
|
47
|
+
exports.LifecycleBoundGraph = LifecycleBoundGraph;
|
|
48
|
+
//# sourceMappingURL=LifecycleBoundGraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LifecycleBoundGraph.js","sourceRoot":"","sources":["../../../test/fixtures/LifecycleBoundGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAA+C;AAC/C,sEAAqE;AAGrE;IAAyC,uCAAW;IAGlD;QAAA,YACE,iBAAO,SAER;QADC,qBAAmB,CAAC,YAAY,EAAE,CAAC;;IACrC,CAAC;4BANU,mBAAmB;;IACvB,gCAAY,GAAG,CAAC,CAAC;IADb,mBAAmB;QAD/B,IAAA,+BAAc,GAAE;QAAE,IAAA,WAAK,GAAE;;OACb,mBAAmB,CAO/B;IAAD,0BAAC;CAAA,AARD,CACyC,iBAAW,GAOnD;AAPY,kDAAmB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainGraph.js","sourceRoot":"","sources":["../../../test/fixtures/MainGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAKmB;AACnB,oEAA8C;AAC9C,oEAA8C;AAC9C,wDAAkC;AAKlC;IAAuC,6BAAW;IAAlD;;IAUA,CAAC;IARC,8BAAU,
|
|
1
|
+
{"version":3,"file":"MainGraph.js","sourceRoot":"","sources":["../../../test/fixtures/MainGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAKmB;AACnB,oEAA8C;AAC9C,oEAA8C;AAC9C,wDAAkC;AAKlC;IAAuC,6BAAW;IAAlD;;IAUA,CAAC;IARC,8BAAU,GADV,UACW,cAA8B;QACvC,OAAO,cAAc,CAAC,SAAS,CAAC;IAClC,CAAC;IAGD,iCAAa,GADb;QAEE,OAAO,wBAAc,CAAC,aAAa,CAAC;IACtC,CAAC;IARD;QAAC,IAAA,cAAQ,GAAE;;yCACgB,wBAAc;;+CAExC;IAED;QAAC,IAAA,cAAQ,GAAE;;;;kDAGV;IATkB,SAAS;QAD7B,IAAA,WAAK,EAAC,EAAE,SAAS,EAAE,CAAC,kBAAQ,CAAC,EAAE,CAAC;OACZ,SAAS,CAU7B;IAAD,gBAAC;CAAA,AAVD,CAAuC,iBAAW,GAUjD;kBAVoB,SAAS"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingletonGraph.js","sourceRoot":"","sources":["../../../test/fixtures/SingletonGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,4DAA2D;AAC3D,iCAAyD;AAGzD;IAA4C,kCAAW;IAAvD;QAAA,qEAOC;QANS,QAAE,GAAG,IAAA,iBAAQ,GAAE,CAAC;;IAM1B,CAAC;IAHC,mCAAU,
|
|
1
|
+
{"version":3,"file":"SingletonGraph.js","sourceRoot":"","sources":["../../../test/fixtures/SingletonGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,4DAA2D;AAC3D,iCAAyD;AAGzD;IAA4C,kCAAW;IAAvD;QAAA,qEAOC;QANS,QAAE,GAAG,IAAA,iBAAQ,GAAE,CAAC;;IAM1B,CAAC;IAHC,mCAAU,GADV;QAEE,OAAO,eAAQ,IAAI,CAAC,EAAE,CAAE,CAAC;IAC3B,CAAC;IAHD;QAAC,IAAA,cAAQ,GAAE;;;;oDAGV;IANkB,cAAc;QADlC,IAAA,qBAAS,GAAE;QAAE,IAAA,WAAK,GAAE;OACA,cAAc,CAOlC;IAAD,qBAAC;CAAA,AAPD,CAA4C,iBAAW,GAOtD;kBAPoB,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subgraph.js","sourceRoot":"","sources":["../../../test/fixtures/Subgraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,iCAAyD;AACzD,oEAA8C;AAC9C,oEAA8C;AAG9C;IAAsC,4BAAW;IAAjD;;IAoBA,CAAC;IAlBC,iCAAc,
|
|
1
|
+
{"version":3,"file":"Subgraph.js","sourceRoot":"","sources":["../../../test/fixtures/Subgraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,iCAAyD;AACzD,oEAA8C;AAC9C,oEAA8C;AAG9C;IAAsC,4BAAW;IAAjD;;IAoBA,CAAC;IAlBC,iCAAc,GADd;QAEE,OAAO,IAAI,wBAAc,EAAE,CAAC;IAC9B,CAAC;IAGD,qCAAkB,GADlB;QAEE,OAAO,wBAAc,CAAC,YAAY,CAAC;IACrC,CAAC;IAGD,mCAAgB,GADhB;QAEE,MAAM,KAAK,CAAC,mFAAmF,CAAC,CAAC;IACnG,CAAC;IAGD,6BAAU,GADV;QAEE,OAAO,IAAA,iBAAQ,EAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAlBD;QAAC,IAAA,cAAQ,GAAE;;;wCACO,wBAAc;kDAE/B;IAED;QAAC,IAAA,cAAQ,GAAE;;;;sDAGV;IAED;QAAC,IAAA,cAAQ,GAAE;;;;oDAGV;IAED;QAAC,IAAA,cAAQ,GAAE;;;;8CAGV;IAnBkB,QAAQ;QAD5B,IAAA,WAAK,GAAE;OACa,QAAQ,CAoB5B;IAAD,eAAC;CAAA,AApBD,CAAsC,iBAAW,GAoBhD;kBApBoB,QAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThrowingMainGraph.js","sourceRoot":"","sources":["../../../test/fixtures/ThrowingMainGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAA4C;AAC5C,0DAAoC;AAGpC;IAA+C,qCAAS;IAAxD;;IAKA,CAAC;IAHU,sCAAU,
|
|
1
|
+
{"version":3,"file":"ThrowingMainGraph.js","sourceRoot":"","sources":["../../../test/fixtures/ThrowingMainGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAA4C;AAC5C,0DAAoC;AAGpC;IAA+C,qCAAS;IAAxD;;IAKA,CAAC;IAHU,sCAAU,GADnB;QAEE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAHD;QAAC,IAAA,cAAQ,GAAE;;;;uDAGV;IAJkB,iBAAiB;QADrC,IAAA,WAAK,GAAE;OACa,iBAAiB,CAKrC;IAAD,wBAAC;CAAA,AALD,CAA+C,mBAAS,GAKvD;kBALoB,iBAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniqueNumberGraph.js","sourceRoot":"","sources":["../../../test/fixtures/UniqueNumberGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAKmB;AAGnB;IAAuC,qCAAW;IAChD,2BAAoB,qBAAmC;QAAvD,YACE,iBAAO,SACR;QAFmB,2BAAqB,GAArB,qBAAqB,CAAc;;IAEvD,CAAC;IAGD,2CAAe,
|
|
1
|
+
{"version":3,"file":"UniqueNumberGraph.js","sourceRoot":"","sources":["../../../test/fixtures/UniqueNumberGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAKmB;AAGnB;IAAuC,qCAAW;IAChD,2BAAoB,qBAAmC;QAAvD,YACE,iBAAO,SACR;QAFmB,2BAAqB,GAArB,qBAAqB,CAAc;;IAEvD,CAAC;IAGD,2CAAe,GADf;QAEE,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACtC,CAAC;IAGD,0CAAc,GADd;QAEE,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACtC,CAAC;IARD;QAAC,IAAA,cAAQ,GAAE;QAAE,IAAA,eAAS,GAAE;;;;4DAGvB;IAED;QAAC,IAAA,cAAQ,GAAE;;;;2DAGV;IAbU,iBAAiB;QAD7B,IAAA,WAAK,GAAE;;OACK,iBAAiB,CAc7B;IAAD,wBAAC;CAAA,AAfD,CACuC,iBAAW,GAcjD;AAdY,8CAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian/index.ts"],"names":[],"mappings":";;;;;AASA,wDAAkC;AAElC,IAAM,4BAA4B,GAAc;IAC9C,OAAO,EAAE;QACP,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian/index.ts"],"names":[],"mappings":";;;;;AASA,wDAAkC;AAElC,IAAM,4BAA4B,GAAc;IAC9C,OAAO,EAAE;QACP,OAAO,YAAC,IAAuB;YAC7B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACjC,CAAC;KACF;CACF,CAAC;AAEF,IAAM,eAAe,GAAG;IACtB,WAAW,EAAE;QACX,KAAK,YAAC,EAA+B;gBAA7B,IAAI,UAAA;YACV,kBAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;KACF;IACD,aAAa,EAAE;QACb,KAAK,YAAC,EAAiC;gBAA/B,IAAI,UAAA;YACV,kBAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3C,kBAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;KACF;IACD,UAAU,EAAE;QACV,KAAK,YAAC,EAA8B;gBAA5B,IAAI,UAAA;YACV,kBAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;KACF;IACD,mBAAmB,EAAE;QACnB,KAAK,YAAC,EAAuC;gBAArC,IAAI,UAAA;YACV,kBAAQ,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;KACF;CACF,CAAC;AAEF,SAAwB,MAAM;IAC5B,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAFD,yBAEC"}
|
package/package.json
CHANGED
|
@@ -30,7 +30,7 @@ export class GraphRegistry {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
resolve<T extends Graph>(Graph: Constructable<T>, props?: any): T {
|
|
33
|
-
if (this.isSingleton(Graph) && this.has(Graph)) {
|
|
33
|
+
if ((this.isSingleton(Graph) || this.isBoundToReactLifecycle(Graph)) && this.has(Graph)) {
|
|
34
34
|
return this.getFirst(Graph);
|
|
35
35
|
}
|
|
36
36
|
const graph = this.graphMiddlewares.resolve(Graph, props);
|
|
@@ -38,8 +38,8 @@ export class GraphRegistry {
|
|
|
38
38
|
return graph as T;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
private has(Graph: Constructable<Graph>) {
|
|
42
|
-
return this.constructorToInstance.
|
|
41
|
+
private has(Graph: Constructable<Graph>): boolean {
|
|
42
|
+
return (this.constructorToInstance.get(Graph)?.size ?? 0) > 0;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
private getFirst<T extends Graph>(Graph: Constructable<T>): T {
|
|
@@ -58,6 +58,10 @@ export class GraphRegistry {
|
|
|
58
58
|
return Reflect.getMetadata('isSingleton', Graph) ?? false;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
private isBoundToReactLifecycle(Graph: Constructable<Graph>): boolean {
|
|
62
|
+
return Reflect.getMetadata('isLifecycleBound', Graph) ?? false;
|
|
63
|
+
}
|
|
64
|
+
|
|
61
65
|
clear(graph: Graph) {
|
|
62
66
|
const Graph = this.instanceToConstructor.get(graph)!;
|
|
63
67
|
if (this.isSingleton(Graph)) return;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { PropsWithChildren } from 'react';
|
|
2
2
|
import hoistNonReactStatics from 'hoist-non-react-statics';
|
|
3
3
|
import { ObjectGraph } from '../../graph/ObjectGraph';
|
|
4
4
|
import PropsInjector from './PropsInjector';
|
|
@@ -25,10 +25,10 @@ export default class ComponentInjector {
|
|
|
25
25
|
const compare = isMemoized ? InjectionCandidate.compare : undefined;
|
|
26
26
|
|
|
27
27
|
return genericMemo((passedProps: P) => {
|
|
28
|
-
const graph = useGraph(Graph, passedProps);
|
|
28
|
+
const graph = useGraph<P>(Graph, passedProps);
|
|
29
29
|
const proxiedProps = new PropsInjector(graph).inject(passedProps);
|
|
30
30
|
|
|
31
|
-
return <>{Target(proxiedProps as unknown as P)}</>;
|
|
31
|
+
return <>{Target(proxiedProps as unknown as PropsWithChildren<P>)}</>;
|
|
32
32
|
}, compare);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -14,7 +14,7 @@ export function injectHookWithArguments<Injected, Own, Result = {}>(
|
|
|
14
14
|
hook: (args: Injected & Own) => Result,
|
|
15
15
|
Graph: Constructable<ObjectGraph>,
|
|
16
16
|
): (props: Own & Partial<Injected>) => Result {
|
|
17
|
-
return hookInjector.inject(hook, Graph);
|
|
17
|
+
return hookInjector.inject(hook, Graph) as (props: Own & Partial<Injected>) => Result;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export function injectHook<Injected, Result = {}>(
|