react-obsidian 0.0.8 → 0.0.12

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 (66) hide show
  1. package/dist/src/GraphProperties.d.ts +1 -0
  2. package/dist/src/GraphProperties.d.ts.map +1 -1
  3. package/dist/src/GraphProperties.js +3 -0
  4. package/dist/src/GraphProperties.js.map +1 -1
  5. package/dist/src/ProvidedPropertiesStore.d.ts +1 -0
  6. package/dist/src/ProvidedPropertiesStore.d.ts.map +1 -1
  7. package/dist/src/ProvidedPropertiesStore.js +4 -0
  8. package/dist/src/ProvidedPropertiesStore.js.map +1 -1
  9. package/dist/src/decorators/provides/MemoizeDescriptor.d.ts +2 -0
  10. package/dist/src/decorators/provides/MemoizeDescriptor.d.ts.map +1 -0
  11. package/dist/src/decorators/provides/MemoizeDescriptor.js +23 -0
  12. package/dist/src/decorators/provides/MemoizeDescriptor.js.map +1 -0
  13. package/dist/src/decorators/provides/Provides.js +2 -2
  14. package/dist/src/decorators/provides/Provides.js.map +1 -1
  15. package/dist/src/graph/ObjectGraph.d.ts +2 -2
  16. package/dist/src/graph/ObjectGraph.d.ts.map +1 -1
  17. package/dist/src/graph/ObjectGraph.js +4 -3
  18. package/dist/src/graph/ObjectGraph.js.map +1 -1
  19. package/dist/src/graph/ProviderBinder.d.ts +3 -0
  20. package/dist/src/graph/ProviderBinder.d.ts.map +1 -0
  21. package/dist/src/graph/ProviderBinder.js +18 -0
  22. package/dist/src/graph/ProviderBinder.js.map +1 -0
  23. package/dist/src/graph/registry/DefaultGraphResolver.d.ts +3 -2
  24. package/dist/src/graph/registry/DefaultGraphResolver.d.ts.map +1 -1
  25. package/dist/src/graph/registry/DefaultGraphResolver.js.map +1 -1
  26. package/dist/src/graph/registry/GraphMiddleware.d.ts +2 -1
  27. package/dist/src/graph/registry/GraphMiddleware.d.ts.map +1 -1
  28. package/dist/src/graph/registry/GraphMiddleware.js.map +1 -1
  29. package/dist/src/graph/registry/GraphResolveChain.d.ts +4 -0
  30. package/dist/src/graph/registry/GraphResolveChain.d.ts.map +1 -0
  31. package/dist/src/graph/registry/GraphResolveChain.js +3 -0
  32. package/dist/src/graph/registry/GraphResolveChain.js.map +1 -0
  33. package/dist/src/graph/registry/Middleware.d.ts +5 -6
  34. package/dist/src/graph/registry/Middleware.d.ts.map +1 -1
  35. package/dist/src/graph/registry/Middleware.js.map +1 -1
  36. package/dist/src/graph/registry/ResolveChain.d.ts +5 -0
  37. package/dist/src/graph/registry/ResolveChain.d.ts.map +1 -0
  38. package/dist/src/graph/registry/ResolveChain.js +3 -0
  39. package/dist/src/graph/registry/ResolveChain.js.map +1 -0
  40. package/dist/src/index.d.ts +1 -1
  41. package/dist/src/index.d.ts.map +1 -1
  42. package/dist/test/integration/fixtures/Subgraph.d.ts +1 -0
  43. package/dist/test/integration/fixtures/Subgraph.d.ts.map +1 -1
  44. package/dist/test/integration/fixtures/Subgraph.js +11 -1
  45. package/dist/test/integration/fixtures/Subgraph.js.map +1 -1
  46. package/dist/testkit/index.d.ts.map +1 -1
  47. package/dist/testkit/index.js.map +1 -1
  48. package/package.json +1 -1
  49. package/src/GraphProperties.ts +4 -0
  50. package/src/ProvidedPropertiesStore.ts +4 -0
  51. package/src/decorators/provides/MemoizeDescriptor.ts +14 -0
  52. package/src/decorators/provides/Provides.ts +2 -2
  53. package/src/graph/ObjectGraph.ts +4 -2
  54. package/src/graph/ProviderBinder.ts +12 -0
  55. package/src/graph/registry/DefaultGraphResolver.ts +3 -2
  56. package/src/graph/registry/GraphMiddleware.ts +2 -1
  57. package/src/graph/registry/GraphResolveChain.ts +4 -0
  58. package/src/graph/registry/Middleware.ts +6 -8
  59. package/src/graph/registry/ResolveChain.ts +5 -0
  60. package/src/index.ts +1 -1
  61. package/testkit/index.ts +2 -2
  62. package/dist/src/decorators/provides/PropertyDescriptorToSingleton.d.ts +0 -2
  63. package/dist/src/decorators/provides/PropertyDescriptorToSingleton.d.ts.map +0 -1
  64. package/dist/src/decorators/provides/PropertyDescriptorToSingleton.js +0 -20
  65. package/dist/src/decorators/provides/PropertyDescriptorToSingleton.js.map +0 -1
  66. package/src/decorators/provides/PropertyDescriptorToSingleton.ts +0 -11
@@ -2,5 +2,6 @@ export default class GraphProperties {
2
2
  private unmangledToMangledPropKeys;
3
3
  add(mangledPropertyKey: string, unmangledPropertyKey: string): void;
4
4
  getMangledProperty(unmangledProperty: string): string | undefined;
5
+ getMangledProperties(): string[];
5
6
  }
6
7
  //# sourceMappingURL=GraphProperties.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GraphProperties.d.ts","sourceRoot":"","sources":["../../src/GraphProperties.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,OAAO,CAAC,0BAA0B,CAA6B;IAE/D,GAAG,CAAC,kBAAkB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM;IAI5D,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAGlE"}
1
+ {"version":3,"file":"GraphProperties.d.ts","sourceRoot":"","sources":["../../src/GraphProperties.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,OAAO,CAAC,0BAA0B,CAA6B;IAE/D,GAAG,CAAC,kBAAkB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM;IAI5D,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIjE,oBAAoB,IAAI,MAAM,EAAE;CAGjC"}
@@ -10,6 +10,9 @@ var GraphProperties = /** @class */ (function () {
10
10
  GraphProperties.prototype.getMangledProperty = function (unmangledProperty) {
11
11
  return this.unmangledToMangledPropKeys.get(unmangledProperty);
12
12
  };
13
+ GraphProperties.prototype.getMangledProperties = function () {
14
+ return Array.from(this.unmangledToMangledPropKeys.values());
15
+ };
13
16
  return GraphProperties;
14
17
  }());
15
18
  exports.default = GraphProperties;
@@ -1 +1 @@
1
- {"version":3,"file":"GraphProperties.js","sourceRoot":"","sources":["../../src/GraphProperties.ts"],"names":[],"mappings":";;AAAA;IAAA;QACU,+BAA0B,GAAG,IAAI,GAAG,EAAkB,CAAC;IASjE,CAAC;IAPC,6BAAG,GAAH,UAAI,kBAA0B,EAAE,oBAA4B;QAC1D,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;IAChF,CAAC;IAED,4CAAkB,GAAlB,UAAmB,iBAAyB;QAC1C,OAAO,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAChE,CAAC;IACH,sBAAC;AAAD,CAAC,AAVD,IAUC"}
1
+ {"version":3,"file":"GraphProperties.js","sourceRoot":"","sources":["../../src/GraphProperties.ts"],"names":[],"mappings":";;AAAA;IAAA;QACU,+BAA0B,GAAG,IAAI,GAAG,EAAkB,CAAC;IAajE,CAAC;IAXC,6BAAG,GAAH,UAAI,kBAA0B,EAAE,oBAA4B;QAC1D,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;IAChF,CAAC;IAED,4CAAkB,GAAlB,UAAmB,iBAAyB;QAC1C,OAAO,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAChE,CAAC;IAED,8CAAoB,GAApB;QACE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IACH,sBAAC;AAAD,CAAC,AAdD,IAcC"}
@@ -3,6 +3,7 @@ declare class ProvidedPropertiesStore {
3
3
  private readonly providedPropertiesForGraph;
4
4
  getMangledProperty(graph: Graph, unmangledProp: string): string | undefined;
5
5
  set(graph: Graph, mangledProperty: string, unmangledProperty: string): void;
6
+ getMangledProperties(graph: Graph): string[];
6
7
  clear(graph: Graph): void;
7
8
  }
8
9
  declare const _default: ProvidedPropertiesStore;
@@ -1 +1 @@
1
- {"version":3,"file":"ProvidedPropertiesStore.d.ts","sourceRoot":"","sources":["../../src/ProvidedPropertiesStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,cAAM,uBAAuB;IAC3B,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAA2C;IAEtF,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3E,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;IAMpE,KAAK,CAAC,KAAK,EAAE,KAAK;CAGnB;;AAED,wBAA6C"}
1
+ {"version":3,"file":"ProvidedPropertiesStore.d.ts","sourceRoot":"","sources":["../../src/ProvidedPropertiesStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,cAAM,uBAAuB;IAC3B,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAA2C;IAEtF,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3E,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;IAMpE,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE;IAI5C,KAAK,CAAC,KAAK,EAAE,KAAK;CAGnB;;AAED,wBAA6C"}
@@ -18,6 +18,10 @@ var ProvidedPropertiesStore = /** @class */ (function () {
18
18
  graphProperties.add(mangledProperty, unmangledProperty);
19
19
  this.providedPropertiesForGraph.set(graph.name, graphProperties);
20
20
  };
21
+ ProvidedPropertiesStore.prototype.getMangledProperties = function (graph) {
22
+ var _a, _b;
23
+ return (_b = (_a = this.providedPropertiesForGraph.get(graph.name)) === null || _a === void 0 ? void 0 : _a.getMangledProperties()) !== null && _b !== void 0 ? _b : [];
24
+ };
21
25
  ProvidedPropertiesStore.prototype.clear = function (graph) {
22
26
  this.providedPropertiesForGraph.delete(graph.name);
23
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ProvidedPropertiesStore.js","sourceRoot":"","sources":["../../src/ProvidedPropertiesStore.ts"],"names":[],"mappings":";;;;;AAAA,sEAAgD;AAGhD;IAAA;QACmB,+BAA0B,GAAiC,IAAI,GAAG,EAAE,CAAC;IAexF,CAAC;IAbC,oDAAkB,GAAlB,UAAmB,KAAY,EAAE,aAAqB;;QACpD,OAAO,MAAA,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0CAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC5F,CAAC;IAED,qCAAG,GAAH,UAAI,KAAY,EAAE,eAAuB,EAAE,iBAAyB;;QAClE,IAAM,eAAe,GAAG,MAAA,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,IAAI,yBAAe,EAAE,CAAC;QACjG,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QACxD,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACnE,CAAC;IAED,uCAAK,GAAL,UAAM,KAAY;QAChB,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IACH,8BAAC;AAAD,CAAC,AAhBD,IAgBC;AAED,kBAAe,IAAI,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"ProvidedPropertiesStore.js","sourceRoot":"","sources":["../../src/ProvidedPropertiesStore.ts"],"names":[],"mappings":";;;;;AAAA,sEAAgD;AAGhD;IAAA;QACmB,+BAA0B,GAAiC,IAAI,GAAG,EAAE,CAAC;IAmBxF,CAAC;IAjBC,oDAAkB,GAAlB,UAAmB,KAAY,EAAE,aAAqB;;QACpD,OAAO,MAAA,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0CAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC5F,CAAC;IAED,qCAAG,GAAH,UAAI,KAAY,EAAE,eAAuB,EAAE,iBAAyB;;QAClE,IAAM,eAAe,GAAG,MAAA,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,IAAI,yBAAe,EAAE,CAAC;QACjG,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QACxD,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACnE,CAAC;IAED,sDAAoB,GAApB,UAAqB,KAAY;;QAC/B,OAAO,MAAA,MAAA,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0CAAE,oBAAoB,EAAE,mCAAI,EAAE,CAAC;IACvF,CAAC;IAED,uCAAK,GAAL,UAAM,KAAY;QAChB,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IACH,8BAAC;AAAD,CAAC,AApBD,IAoBC;AAED,kBAAe,IAAI,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function memoizeDescriptor(propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor;
2
+ //# sourceMappingURL=MemoizeDescriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoizeDescriptor.d.ts","sourceRoot":"","sources":["../../../../src/decorators/provides/MemoizeDescriptor.ts"],"names":[],"mappings":"AACA,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,kBAAkB,CAYzG"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.memoizeDescriptor = void 0;
4
+ /* eslint-disable no-param-reassign */
5
+ function memoizeDescriptor(propertyKey, descriptor) {
6
+ var originalValue = descriptor.value;
7
+ descriptor.value = function value() {
8
+ var args = [];
9
+ for (var _i = 0; _i < arguments.length; _i++) {
10
+ args[_i] = arguments[_i];
11
+ }
12
+ var key = "memoized".concat(propertyKey);
13
+ if (Reflect.hasMetadata(key, this)) {
14
+ return Reflect.getMetadata(key, this);
15
+ }
16
+ var result = originalValue.apply(this, args);
17
+ Reflect.defineMetadata(key, result, this);
18
+ return result;
19
+ };
20
+ return descriptor;
21
+ }
22
+ exports.memoizeDescriptor = memoizeDescriptor;
23
+ //# sourceMappingURL=MemoizeDescriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoizeDescriptor.js","sourceRoot":"","sources":["../../../../src/decorators/provides/MemoizeDescriptor.ts"],"names":[],"mappings":";;;AAAA,sCAAsC;AACtC,SAAgB,iBAAiB,CAAC,WAAmB,EAAE,UAA8B;IACnF,IAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;IACvC,UAAU,CAAC,KAAK,GAAG,SAAS,KAAK;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAC9C,IAAM,GAAG,GAAG,kBAAW,WAAW,CAAE,CAAC;QACrC,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;YAClC,OAAO,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SACvC;QACD,IAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AAZD,8CAYC"}
@@ -5,12 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Provides = void 0;
7
7
  var ProvidedPropertiesStore_1 = __importDefault(require("../../ProvidedPropertiesStore"));
8
- var PropertyDescriptorToSingleton_1 = __importDefault(require("./PropertyDescriptorToSingleton"));
8
+ var MemoizeDescriptor_1 = require("./MemoizeDescriptor");
9
9
  function Provides(_a) {
10
10
  var _b = _a === void 0 ? {} : _a, name = _b.name;
11
11
  return function provide(graph, propertyKey, descriptor) {
12
12
  ProvidedPropertiesStore_1.default.set(graph, propertyKey, name);
13
- return (0, PropertyDescriptorToSingleton_1.default)(descriptor);
13
+ return (0, MemoizeDescriptor_1.memoizeDescriptor)(propertyKey, descriptor);
14
14
  };
15
15
  }
16
16
  exports.Provides = Provides;
@@ -1 +1 @@
1
- {"version":3,"file":"Provides.js","sourceRoot":"","sources":["../../../../src/decorators/provides/Provides.ts"],"names":[],"mappings":";;;;;;AAEA,0FAAoE;AACpE,kGAA4D;AAO5D,SAAgB,QAAQ,CAAC,EAAsC;QAAtC,qBAAoC,EAAE,KAAA,EAApC,IAAI,UAAA;IAC7B,OAAO,SAAS,OAAO,CAAC,KAAY,EAAE,WAAmB,EAAE,UAA8B;QACvF,iCAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,IAAK,CAAC,CAAC;QACvD,OAAO,IAAA,uCAAa,EAAC,UAAU,CAAC,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AALD,4BAKC"}
1
+ {"version":3,"file":"Provides.js","sourceRoot":"","sources":["../../../../src/decorators/provides/Provides.ts"],"names":[],"mappings":";;;;;;AAEA,0FAAoE;AACpE,yDAAwD;AAOxD,SAAgB,QAAQ,CAAC,EAAsC;QAAtC,qBAAoC,EAAE,KAAA,EAApC,IAAI,UAAA;IAC7B,OAAO,SAAS,OAAO,CAAC,KAAY,EAAE,WAAmB,EAAE,UAA8B;QACvF,iCAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,IAAK,CAAC,CAAC;QACvD,OAAO,IAAA,qCAAiB,EAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AALD,4BAKC"}
@@ -1,11 +1,11 @@
1
1
  import { Scope } from '../types';
2
2
  import { Graph } from './Graph';
3
3
  export declare abstract class ObjectGraph<T = unknown> implements Graph {
4
- protected props?: T | undefined;
4
+ protected _props?: T | undefined;
5
5
  scope: Scope;
6
6
  private propertyRetriever;
7
7
  get name(): string;
8
- constructor(props?: T | undefined);
8
+ constructor(_props?: T | undefined);
9
9
  retrieve<Dependency>(property: string, receiver?: unknown): Dependency | undefined;
10
10
  }
11
11
  //# sourceMappingURL=ObjectGraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IAWjD,SAAS,CAAC,KAAK,CAAC;IATrB,KAAK,EAAG,KAAK,CAAC;IACrB,OAAO,CAAC,iBAAiB,CAA+B;IAExD,IACI,IAAI,IAAI,MAAM,CAEjB;gBAGqB,KAAK,CAAC,eAAG;IAE/B,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS;CAGnF"}
1
+ {"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IAUjD,SAAS,CAAC,MAAM,CAAC;IARtB,KAAK,EAAG,KAAK,CAAC;IACrB,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"}
@@ -15,12 +15,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.ObjectGraph = void 0;
16
16
  var lodash_1 = require("lodash");
17
17
  var Memoize_1 = __importDefault(require("../decorators/Memoize"));
18
+ var ProviderBinder_1 = require("./ProviderBinder");
18
19
  var PropertyRetriever_1 = __importDefault(require("./PropertyRetriever"));
19
20
  var ObjectGraph = /** @class */ (function () {
20
- // eslint-disable-next-line no-useless-constructor, no-unused-vars, no-empty-function
21
- function ObjectGraph(props) {
22
- this.props = props;
21
+ function ObjectGraph(_props) {
22
+ this._props = _props;
23
23
  this.propertyRetriever = new PropertyRetriever_1.default(this);
24
+ (0, ProviderBinder_1.bindProviders)(this);
24
25
  }
25
26
  Object.defineProperty(ObjectGraph.prototype, "name", {
26
27
  get: function () {
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,kEAA4C;AAG5C,0EAAoD;AAEpD;IAUE,qFAAqF;IACrF,qBAAsB,KAAS;QAAT,UAAK,GAAL,KAAK,CAAI;QARvB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;IAQtB,CAAC;IALnC,sBAAI,6BAAI;aAAR;YACE,OAAO,IAAA,iBAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;;;OAAA;IAKD,8BAAQ,GAAR,UAAqB,QAAgB,EAAE,QAAkB;QACvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAA2B,CAAC;IACvF,CAAC;IATD;QADC,IAAA,iBAAO,GAAE;;;2CAGT;IAQH,kBAAC;CAAA,AAhBD,IAgBC;AAhBqB,kCAAW"}
1
+ {"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,kEAA4C;AAE5C,mDAAiD;AAEjD,0EAAoD;AAEpD;IAUE,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,AAjBD,IAiBC;AAjBqB,kCAAW"}
@@ -0,0 +1,3 @@
1
+ import { Graph } from './Graph';
2
+ export declare function bindProviders(graph: Graph & Record<string, any>): void;
3
+ //# sourceMappingURL=ProviderBinder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderBinder.d.ts","sourceRoot":"","sources":["../../../src/graph/ProviderBinder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAO/D"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.bindProviders = void 0;
7
+ /* eslint-disable no-param-reassign */
8
+ var ProvidedPropertiesStore_1 = __importDefault(require("../ProvidedPropertiesStore"));
9
+ function bindProviders(graph) {
10
+ ProvidedPropertiesStore_1.default.getMangledProperties(graph)
11
+ .forEach(function (method) {
12
+ if (graph[method] !== undefined) {
13
+ graph[method] = graph[method].bind(graph);
14
+ }
15
+ });
16
+ }
17
+ exports.bindProviders = bindProviders;
18
+ //# sourceMappingURL=ProviderBinder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderBinder.js","sourceRoot":"","sources":["../../../src/graph/ProviderBinder.ts"],"names":[],"mappings":";;;;;;AAAA,sCAAsC;AACtC,uFAAiE;AAGjE,SAAgB,aAAa,CAAC,KAAkC;IAC9D,iCAAuB,CAAC,oBAAoB,CAAC,KAAK,CAAC;SAChD,OAAO,CAAC,UAAC,MAAM;QACd,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;YAC/B,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3C;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAPD,sCAOC"}
@@ -1,7 +1,8 @@
1
1
  import { Constructable } from '../../types';
2
2
  import { Graph } from '../Graph';
3
- import { Middleware, ResolveChain } from './Middleware';
3
+ import { Middleware } from './Middleware';
4
+ import { ResolveChain } from './ResolveChain';
4
5
  export default class DefaultGraphMiddleware<T extends Graph> extends Middleware<T> {
5
- resolve<Props>(_resolveChain: ResolveChain<T>, Graph: Constructable<T>, props?: Props): T;
6
+ resolve(_resolveChain: ResolveChain<T>, Graph: Constructable<T>, props?: any): T;
6
7
  }
7
8
  //# sourceMappingURL=DefaultGraphResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultGraphResolver.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/DefaultGraphResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,sBAAsB,CAAC,CAAC,SAAS,KAAK,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC;CAG1F"}
1
+ {"version":3,"file":"DefaultGraphResolver.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/DefaultGraphResolver.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;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,sBAAsB,CAAC,CAAC,SAAS,KAAK,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;CAGjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultGraphResolver.js","sourceRoot":"","sources":["../../../../src/graph/registry/DefaultGraphResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,2CAAwD;AAExD;IAAqE,0CAAa;IAAlF;;IAIA,CAAC;IAHC,wCAAO,GAAP,UAAe,aAA8B,EAAE,KAAuB,EAAE,KAAa;QACnF,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACH,6BAAC;AAAD,CAAC,AAJD,CAAqE,uBAAU,GAI9E"}
1
+ {"version":3,"file":"DefaultGraphResolver.js","sourceRoot":"","sources":["../../../../src/graph/registry/DefaultGraphResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,2CAA0C;AAG1C;IAAqE,0CAAa;IAAlF;;IAIA,CAAC;IAHC,wCAAO,GAAP,UAAQ,aAA8B,EAAE,KAAuB,EAAE,KAAW;QAC1E,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACH,6BAAC;AAAD,CAAC,AAJD,CAAqE,uBAAU,GAI9E"}
@@ -1,5 +1,6 @@
1
1
  import { ObjectGraph } from '../ObjectGraph';
2
+ import { GraphResolveChain } from './GraphResolveChain';
2
3
  import { Middleware } from './Middleware';
3
- export declare abstract class GraphMiddleware extends Middleware<ObjectGraph> {
4
+ export declare abstract class GraphMiddleware extends Middleware<ObjectGraph, GraphResolveChain> {
4
5
  }
5
6
  //# sourceMappingURL=GraphMiddleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GraphMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,8BAAsB,eAAgB,SAAQ,UAAU,CAAC,WAAW,CAAC;CAAI"}
1
+ {"version":3,"file":"GraphMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,8BAAsB,eAAgB,SAAQ,UAAU,CAAC,WAAW,EAAE,iBAAiB,CAAC;CAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"GraphMiddleware.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphMiddleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,2CAA0C;AAE1C;IAA8C,mCAAuB;IAArE;;IAAwE,CAAC;IAAD,sBAAC;AAAD,CAAC,AAAzE,CAA8C,uBAAU,GAAiB;AAAnD,0CAAe"}
1
+ {"version":3,"file":"GraphMiddleware.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphMiddleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAEA,2CAA0C;AAE1C;IAA8C,mCAA0C;IAAxF;;IAA2F,CAAC;IAAD,sBAAC;AAAD,CAAC,AAA5F,CAA8C,uBAAU,GAAoC;AAAtE,0CAAe"}
@@ -0,0 +1,4 @@
1
+ import { ObjectGraph } from '../ObjectGraph';
2
+ import { ResolveChain } from './ResolveChain';
3
+ export declare type GraphResolveChain = ResolveChain<ObjectGraph>;
4
+ //# sourceMappingURL=GraphResolveChain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphResolveChain.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphResolveChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,oBAAY,iBAAiB,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=GraphResolveChain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphResolveChain.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphResolveChain.ts"],"names":[],"mappings":""}
@@ -1,11 +1,10 @@
1
1
  import { Constructable } from '../../types';
2
- export declare abstract class Middleware<T> {
2
+ import { Graph } from '../Graph';
3
+ import { ResolveChain } from './ResolveChain';
4
+ export declare abstract class Middleware<T = Graph, RC = ResolveChain<T>> {
3
5
  private next;
4
- setNext(next: Middleware<T>): void;
6
+ setNext(next: Middleware<T, ResolveChain<T>>): void;
5
7
  get resolveChain(): ResolveChain<T>;
6
- abstract resolve<Props>(resolveChain: ResolveChain<T>, Graph: Constructable<T>, props?: Props): T;
7
- }
8
- export interface ResolveChain<T> {
9
- proceed<Props>(Graph: Constructable<T>, props?: Props): T;
8
+ abstract resolve<Props = any>(resolveChain: RC, Graph: Constructable<T>, props?: Props): T;
10
9
  }
11
10
  //# sourceMappingURL=Middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Middleware.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/Middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,8BAAsB,UAAU,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,CAAiB;IAEtB,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAIlC,IAAW,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,CAMzC;IAED,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC;CAClG;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;CAC3D"}
1
+ {"version":3,"file":"Middleware.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/Middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,8BAAsB,UAAU,CAAC,CAAC,GAAG,KAAK,EAAE,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAkC;IAEvC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAInD,IAAW,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,CAMzC;IAED,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC;CAC3F"}
@@ -1 +1 @@
1
- {"version":3,"file":"Middleware.js","sourceRoot":"","sources":["../../../../src/graph/registry/Middleware.ts"],"names":[],"mappings":";;;AAEA;IAAA;IAgBA,CAAC;IAbQ,4BAAO,GAAd,UAAe,IAAmB;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,sBAAW,oCAAY;aAAvB;YAAA,iBAMC;YALC,OAAO;gBACL,OAAO,EAAE,UAAQ,KAAuB,EAAE,KAAa;oBACrD,OAAO,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACjE,CAAC;aACF,CAAC;QACJ,CAAC;;;OAAA;IAGH,iBAAC;AAAD,CAAC,AAhBD,IAgBC;AAhBqB,gCAAU"}
1
+ {"version":3,"file":"Middleware.js","sourceRoot":"","sources":["../../../../src/graph/registry/Middleware.ts"],"names":[],"mappings":";;;AAIA;IAAA;IAgBA,CAAC;IAbQ,4BAAO,GAAd,UAAe,IAAoC;QACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,sBAAW,oCAAY;aAAvB;YAAA,iBAMC;YALC,OAAO;gBACL,OAAO,EAAE,UAAQ,KAAuB,EAAE,KAAa;oBACrD,OAAO,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACjE,CAAC;aACF,CAAC;QACJ,CAAC;;;OAAA;IAGH,iBAAC;AAAD,CAAC,AAhBD,IAgBC;AAhBqB,gCAAU"}
@@ -0,0 +1,5 @@
1
+ import { Constructable } from '../../types';
2
+ export interface ResolveChain<T> {
3
+ proceed<Props = any>(Graph: Constructable<T>, props?: Props): T;
4
+ }
5
+ //# sourceMappingURL=ResolveChain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolveChain.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/ResolveChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;CACjE"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ResolveChain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolveChain.js","sourceRoot":"","sources":["../../../../src/graph/registry/ResolveChain.ts"],"names":[],"mappings":""}
@@ -10,7 +10,7 @@ export { Provides } from './decorators/provides/Provides';
10
10
  export { Injectable } from './decorators/injectClass';
11
11
  export { Inject } from './decorators/injectClass';
12
12
  export { GraphMiddleware } from './graph/registry/GraphMiddleware';
13
- export { ResolveChain } from './graph/registry/Middleware';
13
+ export { GraphResolveChain as ResolveChain } from './graph/registry/GraphResolveChain';
14
14
  export declare const Obsidian: _Obsidian;
15
15
  export declare const injectComponent: <P>(Target: React.FunctionComponent<P>, Graph: Constructable<_ObjectGraph>) => React.FunctionComponent<Partial<P>>;
16
16
  export declare const injectHook: <Args, Result>(hook: (args: Args) => Result, Graph: Constructable<_ObjectGraph>) => (args?: Partial<Args> | undefined) => Result;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,eAAO,MAAM,QAAQ,WAAkB,CAAC;AAGxC,eAAO,MAAM,eAAe,iDAEnB,cAAc,YAAY,CAAC,wCACQ,CAAC;AAG7C,eAAO,MAAM,UAAU,sDAEd,cAAc,YAAY,CAAC,iDACC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,iBAAiB,IAAI,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvF,eAAO,MAAM,QAAQ,WAAkB,CAAC;AAGxC,eAAO,MAAM,eAAe,iDAEnB,cAAc,YAAY,CAAC,wCACQ,CAAC;AAG7C,eAAO,MAAM,UAAU,sDAEd,cAAc,YAAY,CAAC,iDACC,CAAC"}
@@ -4,5 +4,6 @@ export default class Subgraph extends ObjectGraph {
4
4
  stringProvider(): StringProvider;
5
5
  stringFromSubgraph(): string;
6
6
  unusedDependency(): string;
7
+ instanceId(): string;
7
8
  }
8
9
  //# sourceMappingURL=Subgraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Subgraph.d.ts","sourceRoot":"","sources":["../../../../test/integration/fixtures/Subgraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,WAAW,EAAY,MAAM,cAAc,CAAC;AAE5D,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAG9C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAE/C,cAAc,IAAI,cAAc;IAKhC,kBAAkB,IAAI,MAAM;IAK5B,gBAAgB,IAAI,MAAM;CAG3B"}
1
+ {"version":3,"file":"Subgraph.d.ts","sourceRoot":"","sources":["../../../../test/integration/fixtures/Subgraph.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,WAAW,EAAY,MAAM,cAAc,CAAC;AAE5D,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAG9C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAE/C,cAAc,IAAI,cAAc;IAKhC,kBAAkB,IAAI,MAAM;IAK5B,gBAAgB,IAAI,MAAM;IAK1B,UAAU,IAAI,MAAM;CAGrB"}
@@ -27,6 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  return (mod && mod.__esModule) ? mod : { "default": mod };
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
+ var lodash_1 = require("lodash");
30
31
  var src_1 = require("../../../src");
31
32
  var injectedValues_1 = __importDefault(require("./injectedValues"));
32
33
  var StringProvider_1 = __importDefault(require("./StringProvider"));
@@ -42,7 +43,10 @@ var Subgraph = /** @class */ (function (_super) {
42
43
  return injectedValues_1.default.fromSubgraph;
43
44
  };
44
45
  Subgraph.prototype.unusedDependency = function () {
45
- throw Error('This dependency should not have been resolved since it not required by anyone.');
46
+ throw Error('This dependency should not have been resolved since it is not required by anyone.');
47
+ };
48
+ Subgraph.prototype.instanceId = function () {
49
+ return (0, lodash_1.uniqueId)('graph');
46
50
  };
47
51
  __decorate([
48
52
  (0, src_1.Provides)(),
@@ -62,6 +66,12 @@ var Subgraph = /** @class */ (function (_super) {
62
66
  __metadata("design:paramtypes", []),
63
67
  __metadata("design:returntype", String)
64
68
  ], Subgraph.prototype, "unusedDependency", null);
69
+ __decorate([
70
+ (0, src_1.Provides)(),
71
+ __metadata("design:type", Function),
72
+ __metadata("design:paramtypes", []),
73
+ __metadata("design:returntype", String)
74
+ ], Subgraph.prototype, "instanceId", null);
65
75
  Subgraph = __decorate([
66
76
  (0, src_1.Graph)()
67
77
  ], Subgraph);
@@ -1 +1 @@
1
- {"version":3,"file":"Subgraph.js","sourceRoot":"","sources":["../../../../test/integration/fixtures/Subgraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAA4D;AAC5D,oEAA8C;AAC9C,oEAA8C;AAG9C;IAAsC,4BAAW;IAAjD;;IAeA,CAAC;IAbC,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,gFAAgF,CAAC,CAAC;IAChG,CAAC;IAZD;QADC,IAAA,cAAQ,GAAE;;;wCACO,wBAAc;kDAE/B;IAGD;QADC,IAAA,cAAQ,GAAE;;;;sDAGV;IAGD;QADC,IAAA,cAAQ,GAAE;;;;oDAGV;IAdkB,QAAQ;QAD5B,IAAA,WAAK,GAAE;OACa,QAAQ,CAe5B;IAAD,eAAC;CAAA,AAfD,CAAsC,iBAAW,GAehD;kBAfoB,QAAQ"}
1
+ {"version":3,"file":"Subgraph.js","sourceRoot":"","sources":["../../../../test/integration/fixtures/Subgraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,oCAA4D;AAC5D,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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../testkit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,aAAa,EAId,MAAM,QAAQ,CAAC;AAMhB,cAAM,KAAK;IACT,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CAYxE;;AAED,wBAA2B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../testkit/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,aAAa,EAGd,MAAM,QAAQ,CAAC;AAMhB,cAAM,KAAK;IACT,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CAYxE;;AAED,wBAA2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../testkit/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8BAMgB;AAEhB,UAAU,CAAC;IACT,cAAQ,CAAC,qBAAqB,EAAE,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH;IAAA;IAaA,CAAC;IAZC,0BAAU,GAAV,UAAW,gBAA4D;QACrE,IAAM,eAAe,GAAG;YAAkB,2BAAe;YAA7B;;YAQ5B,CAAC;YAPC,yBAAO,GAAP,UAAe,YAAuC,EAAE,KAAiC,EAAE,KAAa;gBACtG,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;oBAChC,IAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC9C,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC5B;gBACD,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACH,cAAC;QAAD,CAAC,AAR2B,CAAc,qBAAe,IAQtD,CAAC;QACJ,cAAQ,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IACH,YAAC;AAAD,CAAC,AAbD,IAaC;AAED,kBAAe,IAAI,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../testkit/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,8BAKgB;AAEhB,UAAU,CAAC;IACT,cAAQ,CAAC,qBAAqB,EAAE,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH;IAAA;IAaA,CAAC;IAZC,0BAAU,GAAV,UAAW,gBAA4D;QACrE,IAAM,eAAe,GAAG;YAAkB,2BAAe;YAA7B;;YAQ5B,CAAC;YAPC,yBAAO,GAAP,UAAe,YAA+B,EAAE,KAAiC,EAAE,KAAa;gBAC9F,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;oBAChC,IAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC9C,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC5B;gBACD,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACH,cAAC;QAAD,CAAC,AAR2B,CAAc,qBAAe,IAQtD,CAAC;QACJ,cAAQ,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IACH,YAAC;AAAD,CAAC,AAbD,IAaC;AAED,kBAAe,IAAI,KAAK,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-obsidian",
3
- "version": "0.0.8",
3
+ "version": "0.0.12",
4
4
  "description": "Dependency injection framework for React and React Native applications",
5
5
  "main": "src/index.ts",
6
6
  "directories": {
@@ -8,4 +8,8 @@ export default class GraphProperties {
8
8
  getMangledProperty(unmangledProperty: string): string | undefined {
9
9
  return this.unmangledToMangledPropKeys.get(unmangledProperty);
10
10
  }
11
+
12
+ getMangledProperties(): string[] {
13
+ return Array.from(this.unmangledToMangledPropKeys.values());
14
+ }
11
15
  }
@@ -14,6 +14,10 @@ class ProvidedPropertiesStore {
14
14
  this.providedPropertiesForGraph.set(graph.name, graphProperties);
15
15
  }
16
16
 
17
+ getMangledProperties(graph: Graph): string[] {
18
+ return this.providedPropertiesForGraph.get(graph.name)?.getMangledProperties() ?? [];
19
+ }
20
+
17
21
  clear(graph: Graph) {
18
22
  this.providedPropertiesForGraph.delete(graph.name);
19
23
  }
@@ -0,0 +1,14 @@
1
+ /* eslint-disable no-param-reassign */
2
+ export function memoizeDescriptor(propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor {
3
+ const originalValue = descriptor.value;
4
+ descriptor.value = function value(...args: any[]) {
5
+ const key = `memoized${propertyKey}`;
6
+ if (Reflect.hasMetadata(key, this)) {
7
+ return Reflect.getMetadata(key, this);
8
+ }
9
+ const result = originalValue.apply(this, args);
10
+ Reflect.defineMetadata(key, result, this);
11
+ return result;
12
+ };
13
+ return descriptor;
14
+ }
@@ -1,7 +1,7 @@
1
1
  import { Scope } from '../../types';
2
2
  import { Graph } from '../../graph/Graph';
3
3
  import providedPropertiesStore from '../../ProvidedPropertiesStore';
4
- import makeSingleton from './PropertyDescriptorToSingleton';
4
+ import { memoizeDescriptor } from './MemoizeDescriptor';
5
5
 
6
6
  interface ProvidesParams {
7
7
  scope?: Scope;
@@ -11,6 +11,6 @@ interface ProvidesParams {
11
11
  export function Provides({ name }: Partial<ProvidesParams> = {}) {
12
12
  return function provide(graph: Graph, propertyKey: string, descriptor: PropertyDescriptor) {
13
13
  providedPropertiesStore.set(graph, propertyKey, name!);
14
- return makeSingleton(descriptor);
14
+ return memoizeDescriptor(propertyKey, descriptor);
15
15
  };
16
16
  }
@@ -1,6 +1,7 @@
1
1
  import { uniqueId } from 'lodash';
2
2
  import Memoize from '../decorators/Memoize';
3
3
  import { Scope } from '../types';
4
+ import { bindProviders } from './ProviderBinder';
4
5
  import { Graph } from './Graph';
5
6
  import PropertyRetriever from './PropertyRetriever';
6
7
 
@@ -14,8 +15,9 @@ export abstract class ObjectGraph<T = unknown> implements Graph {
14
15
  return uniqueId(this.constructor.name);
15
16
  }
16
17
 
17
- // eslint-disable-next-line no-useless-constructor, no-unused-vars, no-empty-function
18
- constructor(protected props?: T) {}
18
+ constructor(protected _props?: T) {
19
+ bindProviders(this);
20
+ }
19
21
 
20
22
  retrieve<Dependency>(property: string, receiver?: unknown): Dependency | undefined {
21
23
  return this.propertyRetriever.retrieve(property, receiver) as Dependency | undefined;
@@ -0,0 +1,12 @@
1
+ /* eslint-disable no-param-reassign */
2
+ import providedPropertiesStore from '../ProvidedPropertiesStore';
3
+ import { Graph } from './Graph';
4
+
5
+ export function bindProviders(graph: Graph & Record<string, any>) {
6
+ providedPropertiesStore.getMangledProperties(graph)
7
+ .forEach((method) => {
8
+ if (graph[method] !== undefined) {
9
+ graph[method] = graph[method].bind(graph);
10
+ }
11
+ });
12
+ }
@@ -1,9 +1,10 @@
1
1
  import { Constructable } from '../../types';
2
2
  import { Graph } from '../Graph';
3
- import { Middleware, ResolveChain } from './Middleware';
3
+ import { Middleware } from './Middleware';
4
+ import { ResolveChain } from './ResolveChain';
4
5
 
5
6
  export default class DefaultGraphMiddleware<T extends Graph> extends Middleware<T> {
6
- resolve<Props>(_resolveChain: ResolveChain<T>, Graph: Constructable<T>, props?: Props): T {
7
+ resolve(_resolveChain: ResolveChain<T>, Graph: Constructable<T>, props?: any): T {
7
8
  return new Graph(props);
8
9
  }
9
10
  }
@@ -1,4 +1,5 @@
1
1
  import { ObjectGraph } from '../ObjectGraph';
2
+ import { GraphResolveChain } from './GraphResolveChain';
2
3
  import { Middleware } from './Middleware';
3
4
 
4
- export abstract class GraphMiddleware extends Middleware<ObjectGraph> { }
5
+ export abstract class GraphMiddleware extends Middleware<ObjectGraph, GraphResolveChain> { }
@@ -0,0 +1,4 @@
1
+ import { ObjectGraph } from '../ObjectGraph';
2
+ import { ResolveChain } from './ResolveChain';
3
+
4
+ export type GraphResolveChain = ResolveChain<ObjectGraph>;
@@ -1,9 +1,11 @@
1
1
  import { Constructable } from '../../types';
2
+ import { Graph } from '../Graph';
3
+ import { ResolveChain } from './ResolveChain';
2
4
 
3
- export abstract class Middleware<T> {
4
- private next!: Middleware<T>;
5
+ export abstract class Middleware<T = Graph, RC = ResolveChain<T>> {
6
+ private next!: Middleware<T, ResolveChain<T>>;
5
7
 
6
- public setNext(next: Middleware<T>) {
8
+ public setNext(next: Middleware<T, ResolveChain<T>>) {
7
9
  this.next = next;
8
10
  }
9
11
 
@@ -15,9 +17,5 @@ export abstract class Middleware<T> {
15
17
  };
16
18
  }
17
19
 
18
- abstract resolve<Props>(resolveChain: ResolveChain<T>, Graph: Constructable<T>, props?: Props): T;
19
- }
20
-
21
- export interface ResolveChain<T> {
22
- proceed<Props>(Graph: Constructable<T>, props?: Props): T;
20
+ abstract resolve<Props = any>(resolveChain: RC, Graph: Constructable<T>, props?: Props): T;
23
21
  }
@@ -0,0 +1,5 @@
1
+ import { Constructable } from '../../types';
2
+
3
+ export interface ResolveChain<T> {
4
+ proceed<Props = any>(Graph: Constructable<T>, props?: Props): T;
5
+ }
package/src/index.ts CHANGED
@@ -14,7 +14,7 @@ export { Provides } from './decorators/provides/Provides';
14
14
  export { Injectable } from './decorators/injectClass';
15
15
  export { Inject } from './decorators/injectClass';
16
16
  export { GraphMiddleware } from './graph/registry/GraphMiddleware';
17
- export { ResolveChain } from './graph/registry/Middleware';
17
+ export { GraphResolveChain as ResolveChain } from './graph/registry/GraphResolveChain';
18
18
  export const Obsidian = new _Obsidian();
19
19
 
20
20
  const componentInjector = new ComponentInjector();
package/testkit/index.ts CHANGED
@@ -1,9 +1,9 @@
1
+ import { GraphResolveChain } from 'src/graph/registry/GraphResolveChain';
1
2
  import {
2
3
  ObjectGraph,
3
4
  Constructable,
4
5
  GraphMiddleware,
5
6
  Obsidian,
6
- ResolveChain,
7
7
  } from '../src';
8
8
 
9
9
  beforeEach(() => {
@@ -13,7 +13,7 @@ beforeEach(() => {
13
13
  class Index {
14
14
  mockGraphs(graphNameToGraph: Record<string, Constructable<ObjectGraph>>) {
15
15
  const graphMiddleware = new class extends GraphMiddleware {
16
- resolve<Props>(resolveChain: ResolveChain<ObjectGraph>, Graph: Constructable<ObjectGraph>, props?: Props) {
16
+ resolve<Props>(resolveChain: GraphResolveChain, Graph: Constructable<ObjectGraph>, props?: Props) {
17
17
  if (graphNameToGraph[Graph.name]) {
18
18
  const TheGraph = graphNameToGraph[Graph.name];
19
19
  return new TheGraph(props);
@@ -1,2 +0,0 @@
1
- export default function makeSingleton(descriptor: PropertyDescriptor): PropertyDescriptor;
2
- //# sourceMappingURL=PropertyDescriptorToSingleton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PropertyDescriptorToSingleton.d.ts","sourceRoot":"","sources":["../../../../src/decorators/provides/PropertyDescriptorToSingleton.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,UAAU,EAAE,kBAAkB,GAAG,kBAAkB,CASxF"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /* eslint-disable no-param-reassign */
4
- function makeSingleton(descriptor) {
5
- var originalValue = descriptor.value;
6
- var createdDependency;
7
- descriptor.value = function value() {
8
- var args = [];
9
- for (var _i = 0; _i < arguments.length; _i++) {
10
- args[_i] = arguments[_i];
11
- }
12
- if (createdDependency)
13
- return createdDependency;
14
- createdDependency = originalValue.apply(this, args);
15
- return createdDependency;
16
- };
17
- return descriptor;
18
- }
19
- exports.default = makeSingleton;
20
- //# sourceMappingURL=PropertyDescriptorToSingleton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PropertyDescriptorToSingleton.js","sourceRoot":"","sources":["../../../../src/decorators/provides/PropertyDescriptorToSingleton.ts"],"names":[],"mappings":";;AAAA,sCAAsC;AACtC,SAAwB,aAAa,CAAC,UAA8B;IAClE,IAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;IACvC,IAAI,iBAAsB,CAAC;IAC3B,UAAU,CAAC,KAAK,GAAG,SAAS,KAAK;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAC9C,IAAI,iBAAiB;YAAE,OAAO,iBAAiB,CAAC;QAChD,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,iBAAiB,CAAC;IAC3B,CAAC,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AATD,gCASC"}
@@ -1,11 +0,0 @@
1
- /* eslint-disable no-param-reassign */
2
- export default function makeSingleton(descriptor: PropertyDescriptor): PropertyDescriptor {
3
- const originalValue = descriptor.value;
4
- let createdDependency: any;
5
- descriptor.value = function value(...args: any[]) {
6
- if (createdDependency) return createdDependency;
7
- createdDependency = originalValue.apply(this, args);
8
- return createdDependency;
9
- };
10
- return descriptor;
11
- }