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.
Files changed (30) hide show
  1. package/README.md +29 -17
  2. package/dist/src/decorators/LifecycleBound.d.ts +2 -0
  3. package/dist/src/decorators/LifecycleBound.d.ts.map +1 -0
  4. package/dist/src/decorators/LifecycleBound.js +11 -0
  5. package/dist/src/decorators/LifecycleBound.js.map +1 -0
  6. package/dist/src/graph/ObjectGraph.js.map +1 -1
  7. package/dist/src/graph/PropertyRetriever.js.map +1 -1
  8. package/dist/src/graph/ServiceLocatorFactory.js.map +1 -1
  9. package/dist/src/graph/registry/GraphRegistry.d.ts +1 -0
  10. package/dist/src/graph/registry/GraphRegistry.d.ts.map +1 -1
  11. package/dist/src/graph/registry/GraphRegistry.js +7 -2
  12. package/dist/src/graph/registry/GraphRegistry.js.map +1 -1
  13. package/dist/src/injectors/components/ComponentInjector.d.ts.map +1 -1
  14. package/dist/src/injectors/components/ComponentInjector.js.map +1 -1
  15. package/dist/src/injectors/hooks/InjectHook.js.map +1 -1
  16. package/dist/test/fixtures/LifecycleBoundGraph.d.ts +6 -0
  17. package/dist/test/fixtures/LifecycleBoundGraph.d.ts.map +1 -0
  18. package/dist/test/fixtures/LifecycleBoundGraph.js +48 -0
  19. package/dist/test/fixtures/LifecycleBoundGraph.js.map +1 -0
  20. package/dist/test/fixtures/MainGraph.js.map +1 -1
  21. package/dist/test/fixtures/SingletonGraph.js.map +1 -1
  22. package/dist/test/fixtures/Subgraph.js.map +1 -1
  23. package/dist/test/fixtures/ThrowingMainGraph.js.map +1 -1
  24. package/dist/test/fixtures/UniqueNumberGraph.js.map +1 -1
  25. package/dist/transformers/babel-plugin-obsidian/index.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/decorators/LifecycleBound.ts +6 -0
  28. package/src/graph/registry/GraphRegistry.ts +7 -3
  29. package/src/injectors/components/ComponentInjector.tsx +3 -3
  30. 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/react-obsidian#installation)
22
- * [Prerequisites](https://github.com/wix-incubator/react-obsidian#prerequisites)
23
- * [Usage](https://github.com/wix-incubator/react-obsidian#usage)
24
- * [Declare an object graph](https://github.com/wix-incubator/react-obsidian#declare-an-object-graph)
25
- * [Component injection](https://github.com/wix-incubator/react-obsidian#component-injection)
26
- * [Hooks injection](https://github.com/wix-incubator/react-obsidian#hooks-injection)
27
- * [Class injection](https://github.com/wix-incubator/react-obsidian#class-injection)
28
- * [Injecting properties](https://github.com/wix-incubator/react-obsidian#injecting-properties)
29
- * [Injecting constructor arguments](https://github.com/wix-incubator/react-obsidian#injecting-constructor-arguments)
30
- * [Obtaining dependencies from a graph](https://github.com/wix-incubator/react-obsidian#obtaining-dependencies-from-a-graph)
31
- * [Advance usage](https://github.com/wix-incubator/react-obsidian#advance-usage)
32
- * [Accessing props in graphs](https://github.com/wix-incubator/react-obsidian#accessing-props-in-graphs)
33
- * [Singleton graphs and providers](https://github.com/wix-incubator/react-obsidian#singleton-graphs-and-providers)
34
- * [Lazy property injection](https://github.com/wix-incubator/react-obsidian#lazy-property-injection)
35
- * [Typing graphs](https://github.com/wix-incubator/react-obsidian#typing-graphs)
36
- * [Graph middleware](https://github.com/wix-incubator/react-obsidian#graph-middleware)
37
- * [Clearing graphs](https://github.com/wix-incubator/react-obsidian#clearing-graphs)
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,2 @@
1
+ export declare function LifecycleBound(): (constructor: any) => any;
2
+ //# sourceMappingURL=LifecycleBound.d.ts.map
@@ -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;IAND,sBAAI,6BAAI;aAAR;YACE,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;IAVD;QADC,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
+ {"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,EAAH,UAAI,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
+ {"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,EAAH,UAAI,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
+ {"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"}
@@ -16,6 +16,7 @@ export declare class GraphRegistry {
16
16
  private getFirst;
17
17
  private set;
18
18
  private isSingleton;
19
+ private isBoundToReactLifecycle;
19
20
  clear(graph: Graph): void;
20
21
  addGraphMiddleware(middleware: Middleware<Graph>): void;
21
22
  clearGraphMiddlewares(): void;
@@ -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
- return this.constructorToInstance.has(Graph);
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":"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"}
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,KAAK,MAAM,OAAO,CAAC;AAE1B,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
+ {"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,gDAA0B;AAC1B,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,EAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAC3C,IAAM,YAAY,GAAG,IAAI,uBAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAElE,OAAO,8DAAG,MAAM,CAAC,YAA4B,CAAC,CAAI,CAAC;QACrD,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IACH,wBAAC;AAAD,CAAC,AAzBD,IAyBC"}
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,CAAC,CAAC;AAC1C,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"}
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,6 @@
1
+ import { ObjectGraph } from '../../src';
2
+ export declare class LifecycleBoundGraph extends ObjectGraph {
3
+ static timesCreated: number;
4
+ constructor();
5
+ }
6
+ //# sourceMappingURL=LifecycleBoundGraph.d.ts.map
@@ -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,GAAV,UAAW,cAA8B;QACvC,OAAO,cAAc,CAAC,SAAS,CAAC;IAClC,CAAC;IAGD,iCAAa,GAAb;QACE,OAAO,wBAAc,CAAC,aAAa,CAAC;IACtC,CAAC;IAPD;QADC,IAAA,cAAQ,GAAE;;yCACgB,wBAAc;;+CAExC;IAGD;QADC,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
+ {"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,GAAV;QACE,OAAO,eAAQ,IAAI,CAAC,EAAE,CAAE,CAAC;IAC3B,CAAC;IAFD;QADC,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
+ {"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,GAAd;QACE,OAAO,IAAI,wBAAc,EAAE,CAAC;IAC9B,CAAC;IAGD,qCAAkB,GAAlB;QACE,OAAO,wBAAc,CAAC,YAAY,CAAC;IACrC,CAAC;IAGD,mCAAgB,GAAhB;QACE,MAAM,KAAK,CAAC,mFAAmF,CAAC,CAAC;IACnG,CAAC;IAGD,6BAAU,GAAV;QACE,OAAO,IAAA,iBAAQ,EAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAjBD;QADC,IAAA,cAAQ,GAAE;;;wCACO,wBAAc;kDAE/B;IAGD;QADC,IAAA,cAAQ,GAAE;;;;sDAGV;IAGD;QADC,IAAA,cAAQ,GAAE;;;;oDAGV;IAGD;QADC,IAAA,cAAQ,GAAE;;;;8CAGV;IAnBkB,QAAQ;QAD5B,IAAA,WAAK,GAAE;OACa,QAAQ,CAoB5B;IAAD,eAAC;CAAA,AApBD,CAAsC,iBAAW,GAoBhD;kBApBoB,QAAQ"}
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,GAAnB;QACE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAFD;QADC,IAAA,cAAQ,GAAE;;;;uDAGV;IAJkB,iBAAiB;QADrC,IAAA,WAAK,GAAE;OACa,iBAAiB,CAKrC;IAAD,wBAAC;CAAA,AALD,CAA+C,mBAAS,GAKvD;kBALoB,iBAAiB"}
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,GAAf;QACE,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACtC,CAAC;IAGD,0CAAc,GAAd;QACE,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACtC,CAAC;IAPD;QADC,IAAA,cAAQ,GAAE;QAAE,IAAA,eAAS,GAAE;;;;4DAGvB;IAGD;QADC,IAAA,cAAQ,GAAE;;;;2DAGV;IAbU,iBAAiB;QAD7B,IAAA,WAAK,GAAE;;OACK,iBAAiB,CAc7B;IAAD,wBAAC;CAAA,AAdD,CAAuC,iBAAW,GAcjD;AAdY,8CAAiB"}
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,EAAP,UAAQ,IAAuB;YAC7B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACjC,CAAC;KACF;CACF,CAAC;AAEF,IAAM,eAAe,GAAG;IACtB,WAAW,EAAE;QACX,KAAK,EAAL,UAAM,EAA+B;gBAA7B,IAAI,UAAA;YACV,kBAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;KACF;IACD,aAAa,EAAE;QACb,KAAK,EAAL,UAAM,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,EAAL,UAAM,EAA8B;gBAA5B,IAAI,UAAA;YACV,kBAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;KACF;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAL,UAAM,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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-obsidian",
3
- "version": "0.0.29",
3
+ "version": "0.0.31",
4
4
  "description": "Dependency injection framework for React and React Native applications",
5
5
  "scripts": {
6
6
  "prepack": "npm run lint && tsc --project tsconfig.prod.json",
@@ -0,0 +1,6 @@
1
+ export function LifecycleBound() {
2
+ return (constructor: any) => {
3
+ Reflect.defineMetadata('isLifecycleBound', true, constructor);
4
+ return constructor;
5
+ };
6
+ }
@@ -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.has(Graph);
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 = {}>(