react-obsidian 0.0.37 → 0.0.38

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 (31) hide show
  1. package/dist/src/graph/Graph.d.ts +1 -0
  2. package/dist/src/graph/Graph.d.ts.map +1 -1
  3. package/dist/src/graph/ObjectGraph.d.ts +1 -0
  4. package/dist/src/graph/ObjectGraph.d.ts.map +1 -1
  5. package/dist/src/graph/ObjectGraph.js +2 -0
  6. package/dist/src/graph/ObjectGraph.js.map +1 -1
  7. package/dist/src/injectors/class/ClassInjector.d.ts.map +1 -1
  8. package/dist/src/injectors/class/ClassInjector.js +1 -0
  9. package/dist/src/injectors/class/ClassInjector.js.map +1 -1
  10. package/dist/src/injectors/components/ComponentInjector.js +1 -1
  11. package/dist/src/injectors/components/ComponentInjector.js.map +1 -1
  12. package/dist/src/injectors/components/useGraph.d.ts +1 -1
  13. package/dist/src/injectors/components/useGraph.d.ts.map +1 -1
  14. package/dist/src/injectors/components/useGraph.js +6 -2
  15. package/dist/src/injectors/components/useGraph.js.map +1 -1
  16. package/dist/src/injectors/hooks/HookInjector.js +1 -1
  17. package/dist/src/injectors/hooks/HookInjector.js.map +1 -1
  18. package/dist/src/types/index.d.ts +1 -1
  19. package/dist/src/types/index.d.ts.map +1 -1
  20. package/dist/test/fixtures/GraphWithOnBind.d.ts +7 -0
  21. package/dist/test/fixtures/GraphWithOnBind.d.ts.map +1 -0
  22. package/dist/test/fixtures/GraphWithOnBind.js +52 -0
  23. package/dist/test/fixtures/GraphWithOnBind.js.map +1 -0
  24. package/package.json +1 -1
  25. package/src/graph/Graph.ts +1 -0
  26. package/src/graph/ObjectGraph.ts +4 -0
  27. package/src/injectors/class/ClassInjector.ts +1 -0
  28. package/src/injectors/components/ComponentInjector.tsx +1 -1
  29. package/src/injectors/components/useGraph.ts +6 -2
  30. package/src/injectors/hooks/HookInjector.ts +1 -1
  31. package/src/types/index.ts +1 -1
@@ -1,5 +1,6 @@
1
1
  import PropertyRetrieverDelegate from './PropertyRetrieverDelegate';
2
2
  export interface Graph extends PropertyRetrieverDelegate {
3
3
  get name(): string;
4
+ onBind(target: any): void;
4
5
  }
5
6
  //# sourceMappingURL=Graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Graph.d.ts","sourceRoot":"","sources":["../../../src/graph/Graph.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,MAAM,WAAW,KAAM,SAAQ,yBAAyB;IACtD,IAAI,IAAI,IAAI,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"Graph.d.ts","sourceRoot":"","sources":["../../../src/graph/Graph.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,MAAM,WAAW,KAAM,SAAQ,yBAAyB;IACtD,IAAI,IAAI,IAAI,MAAM,CAAC;IACnB,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CAC3B"}
@@ -6,6 +6,7 @@ export declare abstract class ObjectGraph<T = unknown> implements Graph {
6
6
  get name(): string;
7
7
  constructor(_props?: T | undefined);
8
8
  retrieve<Dependency>(property: string, receiver?: unknown): Dependency | undefined;
9
+ onBind(_target: any): void;
9
10
  }
10
11
  export declare function isGraph(object: Constructable<ObjectGraph> | any): object is Constructable<ObjectGraph>;
11
12
  //# sourceMappingURL=ObjectGraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IAQjD,SAAS,CAAC,MAAM,CAAC;IAP7B,OAAO,CAAC,iBAAiB,CAA+B;IAExD,IACI,IAAI,IAAI,MAAM,CAEjB;gBAEqB,MAAM,CAAC,eAAG;IAIhC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS;CAGnF;AAID,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,CAEtG"}
1
+ {"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IAQjD,SAAS,CAAC,MAAM,CAAC;IAP7B,OAAO,CAAC,iBAAiB,CAA+B;IAExD,IACI,IAAI,IAAI,MAAM,CAEjB;gBAEqB,MAAM,CAAC,eAAG;IAIhC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS;IAIlF,MAAM,CAAC,OAAO,EAAE,GAAG;CAGpB;AAID,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,CAEtG"}
@@ -33,6 +33,8 @@ var ObjectGraph = /** @class */ (function () {
33
33
  ObjectGraph.prototype.retrieve = function (property, receiver) {
34
34
  return this.propertyRetriever.retrieve(property, receiver);
35
35
  };
36
+ ObjectGraph.prototype.onBind = function (_target) {
37
+ };
36
38
  __decorate([
37
39
  (0, Memoize_1.default)(),
38
40
  __metadata("design:type", String),
@@ -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;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
+ {"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;IAED,4BAAM,GAAN,UAAO,OAAY;IAEnB,CAAC;IAfD;QAAC,IAAA,iBAAO,GAAE;;;2CAGT;IAaH,kBAAC;CAAA,AAnBD,IAmBC;AAnBqB,kCAAW;AAqBjC,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":"ClassInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/class/ClassInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,aAAa;IAE9B,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,iBAAiB;gBADjB,aAAa,EAAE,aAAa,EAC5B,iBAAiB,GAAE,iBAA2C;IAGxE,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,YAChB,cAAc,GAAG,CAAC;IAKpC,OAAO,CAAC,kBAAkB;CA8B3B"}
1
+ {"version":3,"file":"ClassInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/class/ClassInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,aAAa;IAE9B,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,iBAAiB;gBADjB,aAAa,EAAE,aAAa,EAC5B,iBAAiB,GAAE,iBAA2C;IAGxE,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,YAChB,cAAc,GAAG,CAAC;IAKpC,OAAO,CAAC,kBAAkB;CA+B3B"}
@@ -34,6 +34,7 @@ var ClassInjector = /** @class */ (function () {
34
34
  var graph = graphRegistry.resolve(Graph);
35
35
  Reflect.defineMetadata(LateInjector_1.GRAPH_INSTANCE_NAME_KEY, graph.name, target);
36
36
  var argsToInject = this.injectConstructorArgs(args, graph, target);
37
+ graph.onBind(target);
37
38
  var createdObject = Reflect.construct(target, argsToInject, newTarget);
38
39
  this.injectProperties(target, createdObject, graph);
39
40
  return createdObject;
@@ -1 +1 @@
1
- {"version":3,"file":"ClassInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/ClassInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA,0EAAoD;AACpD,+CAAyD;AAEzD;IACE,uBACU,aAA4B,EAC5B,iBAA8D;QAA9D,kCAAA,EAAA,wBAA2C,2BAAiB,EAAE;QAD9D,kBAAa,GAAb,aAAa,CAAe;QAC5B,sBAAiB,GAAjB,iBAAiB,CAA6C;IACrE,CAAC;IAEJ,8BAAM,GAAN,UAAO,KAA2B;QAAlC,iBAIC;QAHC,OAAO,UAAC,MAA0B;YAChC,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,KAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAI,CAAC,aAAa,EAAE,KAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACvG,CAAC,CAAC;IACJ,CAAC;IAEO,0CAAkB,GAA1B,UACE,KAA2B,EAC3B,aAA4B,EAC5B,iBAAoC;QAEpC,OAAO;YAAI;YAuBX,CAAC;YAtBC,2BAAS,GAAT,UAAU,MAAW,EAAE,IAAW,EAAE,SAAmB;gBACrD,IAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC3C,OAAO,CAAC,cAAc,CAAC,sCAAuB,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACpE,IAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBACrE,IAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;gBACzE,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;gBACpD,OAAO,aAAa,CAAC;YACvB,CAAC;YAEO,uCAAqB,GAA7B,UAA8B,IAAW,EAAE,KAAY,EAAE,MAAW;gBAClE,IAAM,YAAY,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;gBAC1E,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;oBAAE,OAAO,IAAI,CAAC;gBACzC,OAAO,gCAAI,IAAI,SAAK,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,QAAE,GAAG,CAAC,UAAC,KAAK,EAAE,GAAG;oBACzF,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChE,CAAC,CAAC,CAAC;YACL,CAAC;YAEO,kCAAgB,GAAxB,UAAyB,MAAW,EAAE,aAAkB,EAAE,KAAY;gBACpE,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;oBAC1D,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;YACL,CAAC;YACH,cAAC;QAAD,CAAC,AAvBU,KAuBR,CAAC;IACN,CAAC;IACH,oBAAC;AAAD,CAAC,AA1CD,IA0CC"}
1
+ {"version":3,"file":"ClassInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/ClassInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA,0EAAoD;AACpD,+CAAyD;AAEzD;IACE,uBACU,aAA4B,EAC5B,iBAA8D;QAA9D,kCAAA,EAAA,wBAA2C,2BAAiB,EAAE;QAD9D,kBAAa,GAAb,aAAa,CAAe;QAC5B,sBAAiB,GAAjB,iBAAiB,CAA6C;IACrE,CAAC;IAEJ,8BAAM,GAAN,UAAO,KAA2B;QAAlC,iBAIC;QAHC,OAAO,UAAC,MAA0B;YAChC,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,KAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAI,CAAC,aAAa,EAAE,KAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACvG,CAAC,CAAC;IACJ,CAAC;IAEO,0CAAkB,GAA1B,UACE,KAA2B,EAC3B,aAA4B,EAC5B,iBAAoC;QAEpC,OAAO;YAAI;YAwBX,CAAC;YAvBC,2BAAS,GAAT,UAAU,MAAW,EAAE,IAAW,EAAE,SAAmB;gBACrD,IAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC3C,OAAO,CAAC,cAAc,CAAC,sCAAuB,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACpE,IAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBACrE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrB,IAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;gBACzE,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;gBACpD,OAAO,aAAa,CAAC;YACvB,CAAC;YAEO,uCAAqB,GAA7B,UAA8B,IAAW,EAAE,KAAY,EAAE,MAAW;gBAClE,IAAM,YAAY,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;gBAC1E,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;oBAAE,OAAO,IAAI,CAAC;gBACzC,OAAO,gCAAI,IAAI,SAAK,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,QAAE,GAAG,CAAC,UAAC,KAAK,EAAE,GAAG;oBACzF,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChE,CAAC,CAAC,CAAC;YACL,CAAC;YAEO,kCAAgB,GAAxB,UAAyB,MAAW,EAAE,aAAkB,EAAE,KAAY;gBACpE,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;oBAC1D,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;YACL,CAAC;YACH,cAAC;QAAD,CAAC,AAxBU,KAwBR,CAAC;IACN,CAAC;IACH,oBAAC;AAAD,CAAC,AA3CD,IA2CC"}
@@ -21,7 +21,7 @@ var ComponentInjector = /** @class */ (function () {
21
21
  var Target = isMemoized ? InjectionCandidate.type : InjectionCandidate;
22
22
  var compare = isMemoized ? InjectionCandidate.compare : undefined;
23
23
  return (0, React_1.genericMemo)(function (passedProps) {
24
- var graph = (0, useGraph_1.default)(Graph, passedProps);
24
+ var graph = (0, useGraph_1.default)(Graph, Target, passedProps);
25
25
  var proxiedProps = new PropsInjector_1.default(graph).inject(passedProps);
26
26
  return react_1.default.createElement(react_1.default.Fragment, null, Target(proxiedProps));
27
27
  }, compare);
@@ -1 +1 @@
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
+ {"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,MAAM,EAAE,WAAW,CAAC,CAAC;YACtD,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,5 +1,5 @@
1
1
  import { Constructable } from '../../types';
2
2
  import { ObjectGraph } from '../../graph/ObjectGraph';
3
- declare const _default: <P>(Graph: Constructable<ObjectGraph>, props?: Partial<P> | undefined) => ObjectGraph<unknown>;
3
+ declare const _default: <P>(Graph: Constructable<ObjectGraph>, target: any, props?: Partial<P> | undefined) => ObjectGraph<unknown>;
4
4
  export default _default;
5
5
  //# sourceMappingURL=useGraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGraph.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;mCAI5B,cAAc,WAAW,CAAC;AAApD,wBAOE"}
1
+ {"version":3,"file":"useGraph.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;mCAI5B,cAAc,WAAW,CAAC,UAAU,GAAG;AAAjE,wBAWE"}
@@ -6,8 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var react_1 = require("react");
7
7
  var GraphRegistry_1 = __importDefault(require("../../graph/registry/GraphRegistry"));
8
8
  var ReferenceCounter_1 = __importDefault(require("../../ReferenceCounter"));
9
- exports.default = (function (Graph, props) {
10
- var graph = (0, react_1.useState)(GraphRegistry_1.default.resolve(Graph, props))[0];
9
+ exports.default = (function (Graph, target, props) {
10
+ var graph = (0, react_1.useState)(function () {
11
+ var resolveGraph = GraphRegistry_1.default.resolve(Graph, props);
12
+ resolveGraph.onBind(target);
13
+ return resolveGraph;
14
+ })[0];
11
15
  (0, react_1.useEffect)(function () {
12
16
  ReferenceCounter_1.default.retain(graph);
13
17
  return function () { return ReferenceCounter_1.default.release(graph, function (g) { return GraphRegistry_1.default.clear(g); }); };
@@ -1 +1 @@
1
- {"version":3,"file":"useGraph.js","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":";;;;;AAAA,+BAA4C;AAG5C,qFAA+D;AAC/D,4EAAsD;AAEtD,mBAAe,UAAI,KAAiC,EAAE,KAAkB;IAC/D,IAAA,KAAK,GAAI,IAAA,gBAAQ,EAAC,uBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAjD,CAAkD;IAC9D,IAAA,iBAAS,EAAC;QACR,0BAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,cAAM,OAAA,0BAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,UAAC,CAAC,IAAK,OAAA,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAtB,CAAsB,CAAC,EAA9D,CAA8D,CAAC;IAC9E,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACf,CAAC,EAAC"}
1
+ {"version":3,"file":"useGraph.js","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":";;;;;AAAA,+BAA4C;AAG5C,qFAA+D;AAC/D,4EAAsD;AAEtD,mBAAe,UAAI,KAAiC,EAAE,MAAW,EAAE,KAAkB;IAC5E,IAAA,KAAK,GAAI,IAAA,gBAAQ,EAAC;QACvB,IAAM,YAAY,GAAG,uBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzD,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC,GAJU,CAIT;IACH,IAAA,iBAAS,EAAC;QACR,0BAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,cAAM,OAAA,0BAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,UAAC,CAAC,IAAK,OAAA,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAtB,CAAsB,CAAC,EAA9D,CAA8D,CAAC;IAC9E,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACf,CAAC,EAAC"}
@@ -9,7 +9,7 @@ var HookInjector = /** @class */ (function () {
9
9
  }
10
10
  HookInjector.prototype.inject = function (hook, Graph) {
11
11
  return function (args) {
12
- var graph = (0, useGraph_1.default)(Graph, args);
12
+ var graph = (0, useGraph_1.default)(Graph, hook, args);
13
13
  return hook(new Proxy(args !== null && args !== void 0 ? args : {}, new Injector(graph)));
14
14
  };
15
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"HookInjector.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":";;;;;AAEA,oEAA8C;AAG9C;IAAA;IAUA,CAAC;IATC,6BAAM,GAAN,UACE,IAA4B,EAC5B,KAAiC;QAEjC,OAAO,UAAC,IAAoB;YAC1B,IAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC;IACH,mBAAC;AAAD,CAAC,AAVD,IAUC;;AAED;IACE,kBAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAEpC,sBAAG,GAAH,UAAI,GAAQ,EAAE,QAAgB,EAAE,QAAa;QAC3C,OAAO,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnF,CAAC;IACH,eAAC;AAAD,CAAC,AAND,IAMC"}
1
+ {"version":3,"file":"HookInjector.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":";;;;;AAEA,oEAA8C;AAG9C;IAAA;IAUA,CAAC;IATC,6BAAM,GAAN,UACE,IAA4B,EAC5B,KAAiC;QAEjC,OAAO,UAAC,IAAoB;YAC1B,IAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC;IACH,mBAAC;AAAD,CAAC,AAVD,IAUC;;AAED;IACE,kBAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAEpC,sBAAG,GAAH,UAAI,GAAQ,EAAE,QAAgB,EAAE,QAAa;QAC3C,OAAO,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnF,CAAC;IACH,eAAC;AAAD,CAAC,AAND,IAMC"}
@@ -8,7 +8,7 @@ export type Constructor = {
8
8
  export type ServiceLocator<Clazz> = {
9
9
  [Key in keyof Clazz]: () => Clazz[Key] extends (...args: any[]) => infer R ? R : never;
10
10
  };
11
- export type GraphInternals = 'retrieve' | 'name' | 'scope';
11
+ export type GraphInternals = 'retrieve' | 'name' | 'scope' | 'onBind';
12
12
  export type DependenciesOf<G, Dependencies extends keyof DependenciesOf<G> = never> = Partial<Dependencies> extends never ? DependenciesOfInternal<G> : Pick<DependenciesOfInternal<G>, Dependencies>;
13
13
  type DependenciesOfInternal<G> = G extends Graph ? DependenciesOf1<G> : G extends any[] ? DependenciesOfN<G> : never;
14
14
  type DependenciesOfN<Graphs extends any[]> = Graphs extends [infer G, ...infer R] ? DependenciesOf1<G> & DependenciesOfN<R> : unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B,KAAI,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,KAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,CAAC;AAEvD,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI;KACjC,GAAG,IAAI,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;CACvF,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,YAAY,SAAS,MAAM,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,IAChF,OAAO,CAAC,YAAY,CAAC,SAAS,KAAK,GACjC,sBAAsB,CAAC,CAAC,CAAC,GACzB,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAElD,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,GAC9C,eAAe,CAAC,CAAC,CAAC,GAClB,CAAC,SAAS,GAAG,EAAE,GACb,eAAe,CAAC,CAAC,CAAC,GAClB,KAAK,CAAC;AAEV,KAAK,eAAe,CAAC,MAAM,SAAS,GAAG,EAAE,IACvC,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAClC,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC;AAEZ,KAAK,eAAe,CAAC,KAAK,IAAI;KAC3B,GAAG,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;CACvG,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B,KAAI,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,KAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,CAAC;AAEvD,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI;KACjC,GAAG,IAAI,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;CACvF,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtE,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,YAAY,SAAS,MAAM,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,IAChF,OAAO,CAAC,YAAY,CAAC,SAAS,KAAK,GACjC,sBAAsB,CAAC,CAAC,CAAC,GACzB,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAElD,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,GAC9C,eAAe,CAAC,CAAC,CAAC,GAClB,CAAC,SAAS,GAAG,EAAE,GACb,eAAe,CAAC,CAAC,CAAC,GAClB,KAAK,CAAC;AAEV,KAAK,eAAe,CAAC,MAAM,SAAS,GAAG,EAAE,IACvC,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAClC,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC;AAEZ,KAAK,eAAe,CAAC,KAAK,IAAI;KAC3B,GAAG,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;CACvG,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ObjectGraph } from '../../src';
2
+ export declare class GraphWithOnBind extends ObjectGraph {
3
+ private target;
4
+ onBind(target: any): void;
5
+ targetName(): string;
6
+ }
7
+ //# sourceMappingURL=GraphWithOnBind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphWithOnBind.d.ts","sourceRoot":"","sources":["../../../test/fixtures/GraphWithOnBind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,WAAW,EAAY,MAAM,WAAW,CAAC;AAEzD,qBACa,eAAgB,SAAQ,WAAW;IAC9C,OAAO,CAAC,MAAM,CAAO;IAEZ,MAAM,CAAC,MAAM,EAAE,GAAG;IAK3B,UAAU,IAAI,MAAM;CAGrB"}
@@ -0,0 +1,52 @@
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.GraphWithOnBind = void 0;
28
+ var src_1 = require("../../src");
29
+ var GraphWithOnBind = /** @class */ (function (_super) {
30
+ __extends(GraphWithOnBind, _super);
31
+ function GraphWithOnBind() {
32
+ return _super !== null && _super.apply(this, arguments) || this;
33
+ }
34
+ GraphWithOnBind.prototype.onBind = function (target) {
35
+ this.target = target;
36
+ };
37
+ GraphWithOnBind.prototype.targetName = function () {
38
+ return this.target.name;
39
+ };
40
+ __decorate([
41
+ (0, src_1.Provides)(),
42
+ __metadata("design:type", Function),
43
+ __metadata("design:paramtypes", []),
44
+ __metadata("design:returntype", String)
45
+ ], GraphWithOnBind.prototype, "targetName", null);
46
+ GraphWithOnBind = __decorate([
47
+ (0, src_1.Graph)()
48
+ ], GraphWithOnBind);
49
+ return GraphWithOnBind;
50
+ }(src_1.ObjectGraph));
51
+ exports.GraphWithOnBind = GraphWithOnBind;
52
+ //# sourceMappingURL=GraphWithOnBind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphWithOnBind.js","sourceRoot":"","sources":["../../../test/fixtures/GraphWithOnBind.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAyD;AAGzD;IAAqC,mCAAW;IAAhD;;IAWA,CAAC;IARU,gCAAM,GAAf,UAAgB,MAAW;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAGD,oCAAU,GADV;QAEE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAHD;QAAC,IAAA,cAAQ,GAAE;;;;qDAGV;IAVU,eAAe;QAD3B,IAAA,WAAK,GAAE;OACK,eAAe,CAW3B;IAAD,sBAAC;CAAA,AAXD,CAAqC,iBAAW,GAW/C;AAXY,0CAAe"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-obsidian",
3
- "version": "0.0.37",
3
+ "version": "0.0.38",
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",
@@ -2,4 +2,5 @@ import PropertyRetrieverDelegate from './PropertyRetrieverDelegate';
2
2
 
3
3
  export interface Graph extends PropertyRetrieverDelegate {
4
4
  get name(): string;
5
+ onBind(target: any): void;
5
6
  }
@@ -20,6 +20,10 @@ export abstract class ObjectGraph<T = unknown> implements Graph {
20
20
  retrieve<Dependency>(property: string, receiver?: unknown): Dependency | undefined {
21
21
  return this.propertyRetriever.retrieve(property, receiver) as Dependency | undefined;
22
22
  }
23
+
24
+ onBind(_target: any) {
25
+
26
+ }
23
27
  }
24
28
 
25
29
  Reflect.set(ObjectGraph, 'typeDiscriminator', 'ObjectGraph');
@@ -26,6 +26,7 @@ export default class ClassInjector {
26
26
  const graph = graphRegistry.resolve(Graph);
27
27
  Reflect.defineMetadata(GRAPH_INSTANCE_NAME_KEY, graph.name, target);
28
28
  const argsToInject = this.injectConstructorArgs(args, graph, target);
29
+ graph.onBind(target);
29
30
  const createdObject = Reflect.construct(target, argsToInject, newTarget);
30
31
  this.injectProperties(target, createdObject, graph);
31
32
  return createdObject;
@@ -25,7 +25,7 @@ export default class ComponentInjector {
25
25
  const compare = isMemoized ? InjectionCandidate.compare : undefined;
26
26
 
27
27
  return genericMemo((passedProps: P) => {
28
- const graph = useGraph<P>(Graph, passedProps);
28
+ const graph = useGraph<P>(Graph, Target, passedProps);
29
29
  const proxiedProps = new PropsInjector(graph).inject(passedProps);
30
30
 
31
31
  return <>{Target(proxiedProps as unknown as PropsWithChildren<P>)}</>;
@@ -4,8 +4,12 @@ import { ObjectGraph } from '../../graph/ObjectGraph';
4
4
  import graphRegistry from '../../graph/registry/GraphRegistry';
5
5
  import referenceCounter from '../../ReferenceCounter';
6
6
 
7
- export default <P>(Graph: Constructable<ObjectGraph>, props?: Partial<P>) => {
8
- const [graph] = useState(graphRegistry.resolve(Graph, props));
7
+ export default <P>(Graph: Constructable<ObjectGraph>, target: any, props?: Partial<P>) => {
8
+ const [graph] = useState(() => {
9
+ const resolveGraph = graphRegistry.resolve(Graph, props);
10
+ resolveGraph.onBind(target);
11
+ return resolveGraph;
12
+ });
9
13
  useEffect(() => {
10
14
  referenceCounter.retain(graph);
11
15
  return () => referenceCounter.release(graph, (g) => graphRegistry.clear(g));
@@ -9,7 +9,7 @@ export default class HookInjector {
9
9
  Graph: Constructable<ObjectGraph>,
10
10
  ): (args?: Partial<Args>) => Result {
11
11
  return (args?: Partial<Args>): Result => {
12
- const graph = useGraph(Graph, args);
12
+ const graph = useGraph(Graph, hook, args);
13
13
  return hook(new Proxy(args ?? {}, new Injector(graph)));
14
14
  };
15
15
  }
@@ -10,7 +10,7 @@ export type ServiceLocator<Clazz> = {
10
10
  [Key in keyof Clazz]: () => Clazz[Key] extends (...args: any[]) => infer R ? R : never;
11
11
  };
12
12
 
13
- export type GraphInternals = 'retrieve' | 'name' | 'scope';
13
+ export type GraphInternals = 'retrieve' | 'name' | 'scope' | 'onBind';
14
14
 
15
15
  export type DependenciesOf<G, Dependencies extends keyof DependenciesOf<G> = never> =
16
16
  Partial<Dependencies> extends never ?