react-obsidian 0.0.12 → 0.0.16

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 (155) hide show
  1. package/README.md +105 -10
  2. package/babel.config.js +5 -4
  3. package/dist/src/Obsidian.d.ts +1 -0
  4. package/dist/src/Obsidian.d.ts.map +1 -1
  5. package/dist/src/Obsidian.js +4 -0
  6. package/dist/src/Obsidian.js.map +1 -1
  7. package/dist/src/decorators/Graph.d.ts +2 -3
  8. package/dist/src/decorators/Graph.d.ts.map +1 -1
  9. package/dist/src/decorators/Graph.js +2 -3
  10. package/dist/src/decorators/Graph.js.map +1 -1
  11. package/dist/src/decorators/Singleton.d.ts +4 -0
  12. package/dist/src/decorators/Singleton.d.ts.map +1 -0
  13. package/dist/src/decorators/Singleton.js +12 -0
  14. package/dist/src/decorators/Singleton.js.map +1 -0
  15. package/dist/src/decorators/inject/Inject.d.ts +2 -0
  16. package/dist/src/decorators/inject/Inject.d.ts.map +1 -0
  17. package/dist/src/decorators/inject/Inject.js +21 -0
  18. package/dist/src/decorators/inject/Inject.js.map +1 -0
  19. package/dist/src/decorators/inject/Injectable.d.ts +4 -0
  20. package/dist/src/decorators/inject/Injectable.d.ts.map +1 -0
  21. package/dist/src/decorators/inject/Injectable.js +13 -0
  22. package/dist/src/decorators/inject/Injectable.js.map +1 -0
  23. package/dist/src/decorators/inject/LazyInject.d.ts +2 -0
  24. package/dist/src/decorators/inject/LazyInject.d.ts.map +1 -0
  25. package/dist/src/decorators/inject/LazyInject.js +15 -0
  26. package/dist/src/decorators/inject/LazyInject.js.map +1 -0
  27. package/dist/src/decorators/provides/MemoizeDescriptor.d.ts.map +1 -1
  28. package/dist/src/decorators/provides/MemoizeDescriptor.js +4 -4
  29. package/dist/src/decorators/provides/MemoizeDescriptor.js.map +1 -1
  30. package/dist/src/decorators/provides/Provides.d.ts +0 -2
  31. package/dist/src/decorators/provides/Provides.d.ts.map +1 -1
  32. package/dist/src/decorators/provides/Provides.js.map +1 -1
  33. package/dist/src/graph/ObjectGraph.d.ts +2 -2
  34. package/dist/src/graph/ObjectGraph.d.ts.map +1 -1
  35. package/dist/src/graph/ObjectGraph.js +6 -1
  36. package/dist/src/graph/ObjectGraph.js.map +1 -1
  37. package/dist/src/graph/ProviderBinder.d.ts.map +1 -1
  38. package/dist/src/graph/ProviderBinder.js +2 -3
  39. package/dist/src/graph/ProviderBinder.js.map +1 -1
  40. package/dist/src/graph/registry/GraphRegistry.d.ts +11 -8
  41. package/dist/src/graph/registry/GraphRegistry.d.ts.map +1 -1
  42. package/dist/src/graph/registry/GraphRegistry.js +34 -22
  43. package/dist/src/graph/registry/GraphRegistry.js.map +1 -1
  44. package/dist/src/index.d.ts +5 -2
  45. package/dist/src/index.d.ts.map +1 -1
  46. package/dist/src/index.js +11 -5
  47. package/dist/src/index.js.map +1 -1
  48. package/dist/src/injectors/class/ClassInjector.d.ts +12 -0
  49. package/dist/src/injectors/class/ClassInjector.d.ts.map +1 -0
  50. package/dist/src/injectors/class/ClassInjector.js +60 -0
  51. package/dist/src/injectors/class/ClassInjector.js.map +1 -0
  52. package/dist/src/injectors/class/ConstructorArgs.d.ts +8 -0
  53. package/dist/src/injectors/class/ConstructorArgs.d.ts.map +1 -0
  54. package/dist/src/injectors/class/ConstructorArgs.js +25 -0
  55. package/dist/src/injectors/class/ConstructorArgs.js.map +1 -0
  56. package/dist/src/injectors/class/InjectionMetadata.d.ts +15 -0
  57. package/dist/src/injectors/class/InjectionMetadata.d.ts.map +1 -0
  58. package/dist/src/injectors/class/InjectionMetadata.js +41 -0
  59. package/dist/src/injectors/class/InjectionMetadata.js.map +1 -0
  60. package/dist/src/injectors/class/LazyInjector.d.ts +8 -0
  61. package/dist/src/injectors/class/LazyInjector.d.ts.map +1 -0
  62. package/dist/src/injectors/class/LazyInjector.js +28 -0
  63. package/dist/src/injectors/class/LazyInjector.js.map +1 -0
  64. package/dist/src/injectors/components/ComponentInjector.d.ts +0 -1
  65. package/dist/src/injectors/components/ComponentInjector.d.ts.map +1 -1
  66. package/dist/src/injectors/components/ComponentInjector.js +0 -1
  67. package/dist/src/injectors/components/ComponentInjector.js.map +1 -1
  68. package/dist/src/types/index.d.ts +0 -1
  69. package/dist/src/types/index.d.ts.map +1 -1
  70. package/dist/test/integration/fixtures/MainGraph.d.ts +1 -0
  71. package/dist/test/integration/fixtures/MainGraph.d.ts.map +1 -1
  72. package/dist/test/integration/fixtures/MainGraph.js +10 -0
  73. package/dist/test/integration/fixtures/MainGraph.js.map +1 -1
  74. package/dist/test/integration/fixtures/SingletonGraph.d.ts +6 -0
  75. package/dist/test/integration/fixtures/SingletonGraph.d.ts.map +1 -0
  76. package/dist/test/integration/fixtures/SingletonGraph.js +53 -0
  77. package/dist/test/integration/fixtures/SingletonGraph.js.map +1 -0
  78. package/dist/test/integration/fixtures/UniqueNumberGraph.d.ts +8 -0
  79. package/dist/test/integration/fixtures/UniqueNumberGraph.d.ts.map +1 -0
  80. package/dist/test/integration/fixtures/UniqueNumberGraph.js +62 -0
  81. package/dist/test/integration/fixtures/UniqueNumberGraph.js.map +1 -0
  82. package/dist/test/integration/fixtures/injectedValues.d.ts +1 -0
  83. package/dist/test/integration/fixtures/injectedValues.d.ts.map +1 -1
  84. package/dist/test/integration/fixtures/injectedValues.js +1 -0
  85. package/dist/test/integration/fixtures/injectedValues.js.map +1 -1
  86. package/dist/testkit/index.d.ts +6 -5
  87. package/dist/testkit/index.d.ts.map +1 -1
  88. package/dist/testkit/index.js +18 -11
  89. package/dist/testkit/index.js.map +1 -1
  90. package/dist/transformers/{babel-plugin-obsidian-provide → babel-plugin-obsidian}/helpers/index.d.ts +4 -2
  91. package/dist/transformers/babel-plugin-obsidian/helpers/index.d.ts.map +1 -0
  92. package/dist/transformers/{babel-plugin-obsidian-provide → babel-plugin-obsidian}/helpers/index.js +28 -4
  93. package/dist/transformers/babel-plugin-obsidian/helpers/index.js.map +1 -0
  94. package/dist/transformers/{babel-plugin-obsidian-provide → babel-plugin-obsidian}/index.d.ts +0 -0
  95. package/dist/transformers/babel-plugin-obsidian/index.d.ts.map +1 -0
  96. package/dist/transformers/babel-plugin-obsidian/index.js +45 -0
  97. package/dist/transformers/babel-plugin-obsidian/index.js.map +1 -0
  98. package/dist/transformers/babel-plugin-obsidian/unmagler/index.d.ts +10 -0
  99. package/dist/transformers/babel-plugin-obsidian/unmagler/index.d.ts.map +1 -0
  100. package/dist/transformers/babel-plugin-obsidian/unmagler/index.js +14 -0
  101. package/dist/transformers/babel-plugin-obsidian/unmagler/index.js.map +1 -0
  102. package/dist/transformers/babel-plugin-obsidian/unmagler/method.d.ts +4 -0
  103. package/dist/transformers/babel-plugin-obsidian/unmagler/method.d.ts.map +1 -0
  104. package/dist/transformers/babel-plugin-obsidian/unmagler/method.js +26 -0
  105. package/dist/transformers/babel-plugin-obsidian/unmagler/method.js.map +1 -0
  106. package/dist/transformers/babel-plugin-obsidian/unmagler/property.d.ts +4 -0
  107. package/dist/transformers/babel-plugin-obsidian/unmagler/property.d.ts.map +1 -0
  108. package/dist/transformers/babel-plugin-obsidian/unmagler/property.js +14 -0
  109. package/dist/transformers/babel-plugin-obsidian/unmagler/property.js.map +1 -0
  110. package/example/babel.config.js +2 -2
  111. package/example/ios/example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  112. package/jest.config.js +4 -0
  113. package/jest.setup-after-env.js +1 -0
  114. package/jest.setup.ts +1 -0
  115. package/package.json +13 -12
  116. package/src/Obsidian.ts +5 -0
  117. package/src/decorators/Graph.ts +2 -5
  118. package/src/decorators/Singleton.ts +14 -0
  119. package/src/decorators/inject/Inject.ts +17 -0
  120. package/src/decorators/inject/Injectable.ts +8 -0
  121. package/src/decorators/inject/LazyInject.ts +8 -0
  122. package/src/decorators/provides/MemoizeDescriptor.ts +3 -4
  123. package/src/decorators/provides/Provides.ts +0 -2
  124. package/src/graph/ObjectGraph.ts +7 -3
  125. package/src/graph/ProviderBinder.ts +2 -3
  126. package/src/graph/registry/GraphRegistry.ts +40 -32
  127. package/src/index.ts +6 -2
  128. package/src/injectors/class/ClassInjector.ts +49 -0
  129. package/src/injectors/class/ConstructorArgs.ts +20 -0
  130. package/src/injectors/class/InjectionMetadata.ts +57 -0
  131. package/src/injectors/class/LazyInjector.ts +22 -0
  132. package/src/injectors/components/ComponentInjector.tsx +0 -1
  133. package/src/types/index.ts +0 -2
  134. package/testkit/index.ts +13 -14
  135. package/transformers/{babel-plugin-obsidian-provide → babel-plugin-obsidian}/helpers/index.ts +38 -2
  136. package/transformers/babel-plugin-obsidian/index.ts +46 -0
  137. package/transformers/babel-plugin-obsidian/unmagler/index.ts +9 -0
  138. package/transformers/babel-plugin-obsidian/unmagler/method.ts +31 -0
  139. package/transformers/babel-plugin-obsidian/unmagler/property.ts +21 -0
  140. package/dist/src/ScopedValuesRegistry.d.ts +0 -11
  141. package/dist/src/ScopedValuesRegistry.d.ts.map +0 -1
  142. package/dist/src/ScopedValuesRegistry.js +0 -25
  143. package/dist/src/ScopedValuesRegistry.js.map +0 -1
  144. package/dist/src/decorators/injectClass.d.ts +0 -7
  145. package/dist/src/decorators/injectClass.d.ts.map +0 -1
  146. package/dist/src/decorators/injectClass.js +0 -34
  147. package/dist/src/decorators/injectClass.js.map +0 -1
  148. package/dist/transformers/babel-plugin-obsidian-provide/helpers/index.d.ts.map +0 -1
  149. package/dist/transformers/babel-plugin-obsidian-provide/helpers/index.js.map +0 -1
  150. package/dist/transformers/babel-plugin-obsidian-provide/index.d.ts.map +0 -1
  151. package/dist/transformers/babel-plugin-obsidian-provide/index.js +0 -39
  152. package/dist/transformers/babel-plugin-obsidian-provide/index.js.map +0 -1
  153. package/src/ScopedValuesRegistry.ts +0 -26
  154. package/src/decorators/injectClass.ts +0 -28
  155. package/transformers/babel-plugin-obsidian-provide/index.ts +0 -47
@@ -3,32 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GraphRegistry = void 0;
6
7
  var GraphMiddlewareChain_1 = __importDefault(require("./GraphMiddlewareChain"));
7
8
  var GraphRegistry = /** @class */ (function () {
8
9
  function GraphRegistry() {
9
- this.scopedGraphs = {};
10
10
  this.constructorToInstance = new Map();
11
11
  this.instanceToConstructor = new Map();
12
+ this.nameToInstance = new Map();
12
13
  this.graphToSubgraphs = new Map();
13
14
  this.graphMiddlewares = new GraphMiddlewareChain_1.default();
14
15
  }
15
- GraphRegistry.prototype.register = function (constructor, scope, subgraphs) {
16
- if (scope === void 0) { scope = undefined; }
16
+ GraphRegistry.prototype.register = function (constructor, subgraphs) {
17
17
  if (subgraphs === void 0) { subgraphs = []; }
18
- if (scope)
19
- this.scopedGraphs[scope] = constructor;
20
18
  this.graphToSubgraphs.set(constructor, new Set(subgraphs));
21
19
  };
22
- GraphRegistry.prototype.has = function (Graph) {
23
- return this.constructorToInstance.has(Graph);
24
- };
25
- GraphRegistry.prototype.get = function (Graph) {
26
- return this.constructorToInstance.get(Graph);
27
- };
28
- GraphRegistry.prototype.set = function (Graph, graph) {
29
- this.constructorToInstance.set(Graph, graph);
30
- this.instanceToConstructor.set(graph, Graph);
31
- };
32
20
  GraphRegistry.prototype.getSubgraphs = function (graph) {
33
21
  var _this = this;
34
22
  var _a;
@@ -36,22 +24,40 @@ var GraphRegistry = /** @class */ (function () {
36
24
  var subgraphs = (_a = this.graphToSubgraphs.get(Graph)) !== null && _a !== void 0 ? _a : new Set();
37
25
  return Array.from(subgraphs).map(function (G) { return _this.resolve(G); });
38
26
  };
27
+ GraphRegistry.prototype.getGraphInstance = function (name) {
28
+ return this.nameToInstance.get(name);
29
+ };
39
30
  GraphRegistry.prototype.resolve = function (Graph, props) {
40
- if (this.has(Graph)) {
41
- return this.get(Graph);
42
- // const graph: T = this.get(Graph);
43
- // const scope = Reflect.getMetadata('scope', Graph);
44
- // if (scope) return graph;
45
- // this.set(Graph, new Graph(props));
31
+ if (this.isSingleton(Graph) && this.has(Graph)) {
32
+ return this.getFirst(Graph);
46
33
  }
47
34
  var graph = this.graphMiddlewares.resolve(Graph, props);
48
35
  this.set(Graph, graph);
49
36
  return graph;
50
37
  };
38
+ GraphRegistry.prototype.has = function (Graph) {
39
+ return this.constructorToInstance.has(Graph);
40
+ };
41
+ GraphRegistry.prototype.getFirst = function (Graph) {
42
+ return this.constructorToInstance.get(Graph).values().next().value;
43
+ };
44
+ GraphRegistry.prototype.set = function (Graph, graph) {
45
+ var _a;
46
+ var graphs = (_a = this.constructorToInstance.get(Graph)) !== null && _a !== void 0 ? _a : new Set();
47
+ graphs.add(graph);
48
+ this.constructorToInstance.set(Graph, graphs);
49
+ this.instanceToConstructor.set(graph, Graph);
50
+ this.nameToInstance.set(graph.name, graph);
51
+ };
52
+ GraphRegistry.prototype.isSingleton = function (Graph) {
53
+ var _a;
54
+ return (_a = Reflect.getMetadata('isSingleton', Graph)) !== null && _a !== void 0 ? _a : false;
55
+ };
51
56
  GraphRegistry.prototype.clear = function (graph) {
52
57
  var Graph = this.instanceToConstructor.get(graph);
53
58
  this.instanceToConstructor.delete(graph);
54
- this.constructorToInstance.delete(Graph);
59
+ this.constructorToInstance.get(Graph).delete(graph);
60
+ this.nameToInstance.delete(graph.name);
55
61
  };
56
62
  GraphRegistry.prototype.addGraphMiddleware = function (middleware) {
57
63
  this.graphMiddlewares.add(middleware);
@@ -59,7 +65,13 @@ var GraphRegistry = /** @class */ (function () {
59
65
  GraphRegistry.prototype.clearGraphMiddlewares = function () {
60
66
  this.graphMiddlewares.clear();
61
67
  };
68
+ GraphRegistry.prototype.reset = function () {
69
+ this.instanceToConstructor.clear();
70
+ this.constructorToInstance.clear();
71
+ this.nameToInstance.clear();
72
+ };
62
73
  return GraphRegistry;
63
74
  }());
75
+ exports.GraphRegistry = GraphRegistry;
64
76
  exports.default = new GraphRegistry();
65
77
  //# sourceMappingURL=GraphRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":";;;;;AAGA,gFAA0D;AAE1D;IAAA;QACmB,iBAAY,GAAwC,EAAE,CAAC;QACvD,0BAAqB,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC/D,0BAAqB,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC/D,qBAAgB,GAAG,IAAI,GAAG,EAAmD,CAAC;QACvF,qBAAgB,GAAG,IAAI,8BAAoB,EAAE,CAAC;IAyDxD,CAAC;IAvDC,gCAAQ,GAAR,UACE,WAAiC,EACjC,KAAoC,EACpC,SAAsC;QADtC,sBAAA,EAAA,iBAAoC;QACpC,0BAAA,EAAA,cAAsC;QAEtC,IAAI,KAAK;YAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;QAClD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,2BAAG,GAAH,UAAI,KAA2B;QAC7B,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,2BAAG,GAAH,UAAqB,KAAuB;QAC1C,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAkB,CAAC;IAChE,CAAC;IAED,2BAAG,GAAH,UAAI,KAA2B,EAAE,KAAY;QAC3C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,oCAAY,GAAZ,UAAa,KAAY;QAAzB,iBAIC;;QAHC,IAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QACrD,IAAM,SAAS,GAAG,MAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAI,IAAI,GAAG,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,KAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,CAAC;IAC3D,CAAC;IAED,+BAAO,GAAP,UAAyB,KAAuB,EAAE,KAAW;QAC3D,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACnB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvB,oCAAoC;YACpC,qDAAqD;YACrD,2BAA2B;YAE3B,qCAAqC;SACtC;QACD,IAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvB,OAAO,KAAU,CAAC;IACpB,CAAC;IAED,6BAAK,GAAL,UAAM,KAAY;QAChB,IAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QACrD,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,0CAAkB,GAAlB,UAAmB,UAA6B;QAC9C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,6CAAqB,GAArB;QACE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IACH,oBAAC;AAAD,CAAC,AA9DD,IA8DC;AAED,kBAAe,IAAI,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,17 @@ import _Obsidian from './Obsidian';
4
4
  import { Constructable } from './types';
5
5
  export * from './types';
6
6
  export { Graph } from './decorators/Graph';
7
+ export { Singleton } from './decorators/Singleton';
7
8
  export { ObjectGraph } from './graph/ObjectGraph';
8
9
  export { Graph as IGraph } from './graph/Graph';
9
10
  export { Provides } from './decorators/provides/Provides';
10
- export { Injectable } from './decorators/injectClass';
11
- export { Inject } from './decorators/injectClass';
11
+ export { Injectable } from './decorators/inject/Injectable';
12
+ export { Inject } from './decorators/inject/Inject';
13
+ export { LazyInject } from './decorators/inject/LazyInject';
12
14
  export { GraphMiddleware } from './graph/registry/GraphMiddleware';
13
15
  export { GraphResolveChain as ResolveChain } from './graph/registry/GraphResolveChain';
14
16
  export declare const Obsidian: _Obsidian;
15
17
  export declare const injectComponent: <P>(Target: React.FunctionComponent<P>, Graph: Constructable<_ObjectGraph>) => React.FunctionComponent<Partial<P>>;
16
18
  export declare const injectHook: <Args, Result>(hook: (args: Args) => Result, Graph: Constructable<_ObjectGraph>) => (args?: Partial<Args> | undefined) => Result;
19
+ export { testKit } from '../testkit';
17
20
  //# sourceMappingURL=index.d.ts.map
@@ -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,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"}
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,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,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,gCAAgC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,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;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
package/dist/src/index.js CHANGED
@@ -13,21 +13,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  return (mod && mod.__esModule) ? mod : { "default": mod };
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.injectHook = exports.injectComponent = exports.Obsidian = exports.GraphMiddleware = exports.Inject = exports.Injectable = exports.Provides = exports.ObjectGraph = exports.Graph = void 0;
16
+ exports.testKit = exports.injectHook = exports.injectComponent = exports.Obsidian = exports.GraphMiddleware = exports.LazyInject = exports.Inject = exports.Injectable = exports.Provides = exports.ObjectGraph = exports.Singleton = exports.Graph = void 0;
17
17
  var ComponentInjector_1 = __importDefault(require("./injectors/components/ComponentInjector"));
18
18
  var Obsidian_1 = __importDefault(require("./Obsidian"));
19
19
  var HookInjector_1 = __importDefault(require("./injectors/hooks/HookInjector"));
20
20
  __exportStar(require("./types"), exports);
21
21
  var Graph_1 = require("./decorators/Graph");
22
22
  Object.defineProperty(exports, "Graph", { enumerable: true, get: function () { return Graph_1.Graph; } });
23
+ var Singleton_1 = require("./decorators/Singleton");
24
+ Object.defineProperty(exports, "Singleton", { enumerable: true, get: function () { return Singleton_1.Singleton; } });
23
25
  var ObjectGraph_1 = require("./graph/ObjectGraph");
24
26
  Object.defineProperty(exports, "ObjectGraph", { enumerable: true, get: function () { return ObjectGraph_1.ObjectGraph; } });
25
27
  var Provides_1 = require("./decorators/provides/Provides");
26
28
  Object.defineProperty(exports, "Provides", { enumerable: true, get: function () { return Provides_1.Provides; } });
27
- var injectClass_1 = require("./decorators/injectClass");
28
- Object.defineProperty(exports, "Injectable", { enumerable: true, get: function () { return injectClass_1.Injectable; } });
29
- var injectClass_2 = require("./decorators/injectClass");
30
- Object.defineProperty(exports, "Inject", { enumerable: true, get: function () { return injectClass_2.Inject; } });
29
+ var Injectable_1 = require("./decorators/inject/Injectable");
30
+ Object.defineProperty(exports, "Injectable", { enumerable: true, get: function () { return Injectable_1.Injectable; } });
31
+ var Inject_1 = require("./decorators/inject/Inject");
32
+ Object.defineProperty(exports, "Inject", { enumerable: true, get: function () { return Inject_1.Inject; } });
33
+ var LazyInject_1 = require("./decorators/inject/LazyInject");
34
+ Object.defineProperty(exports, "LazyInject", { enumerable: true, get: function () { return LazyInject_1.LazyInject; } });
31
35
  var GraphMiddleware_1 = require("./graph/registry/GraphMiddleware");
32
36
  Object.defineProperty(exports, "GraphMiddleware", { enumerable: true, get: function () { return GraphMiddleware_1.GraphMiddleware; } });
33
37
  exports.Obsidian = new Obsidian_1.default();
@@ -37,4 +41,6 @@ exports.injectComponent = injectComponent;
37
41
  var hookInjector = new HookInjector_1.default();
38
42
  var injectHook = function (hook, Graph) { return hookInjector.inject(hook, Graph); };
39
43
  exports.injectHook = injectHook;
44
+ var testkit_1 = require("../testkit");
45
+ Object.defineProperty(exports, "testKit", { enumerable: true, get: function () { return testkit_1.testKit; } });
40
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,+FAAyE;AACzE,wDAAmC;AACnC,gFAA0D;AAG1D,0CAAwB;AAExB,4CAA2C;AAAlC,8FAAA,KAAK,OAAA;AACd,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,2DAA0D;AAAjD,oGAAA,QAAQ,OAAA;AACjB,wDAAsD;AAA7C,yGAAA,UAAU,OAAA;AACnB,wDAAkD;AAAzC,qGAAA,MAAM,OAAA;AACf,oEAAmE;AAA1D,kHAAA,eAAe,OAAA;AAEX,QAAA,QAAQ,GAAG,IAAI,kBAAS,EAAE,CAAC;AAExC,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;AAC3C,IAAM,eAAe,GAAG,UAC7B,MAAkC,EAClC,KAAkC,IAC/B,OAAA,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAvC,CAAuC,CAAC;AAHhC,QAAA,eAAe,mBAGiB;AAE7C,IAAM,YAAY,GAAG,IAAI,sBAAY,EAAE,CAAC;AACjC,IAAM,UAAU,GAAG,UACxB,IAA4B,EAC5B,KAAkC,IAC/B,OAAA,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAAhC,CAAgC,CAAC;AAHzB,QAAA,UAAU,cAGe"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,+FAAyE;AACzE,wDAAmC;AACnC,gFAA0D;AAG1D,0CAAwB;AAExB,4CAA2C;AAAlC,8FAAA,KAAK,OAAA;AACd,oDAAmD;AAA1C,sGAAA,SAAS,OAAA;AAClB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,2DAA0D;AAAjD,oGAAA,QAAQ,OAAA;AACjB,6DAA4D;AAAnD,wGAAA,UAAU,OAAA;AACnB,qDAAoD;AAA3C,gGAAA,MAAM,OAAA;AACf,6DAA4D;AAAnD,wGAAA,UAAU,OAAA;AACnB,oEAAmE;AAA1D,kHAAA,eAAe,OAAA;AAEX,QAAA,QAAQ,GAAG,IAAI,kBAAS,EAAE,CAAC;AAExC,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;AAC3C,IAAM,eAAe,GAAG,UAC7B,MAAkC,EAClC,KAAkC,IAC/B,OAAA,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAvC,CAAuC,CAAC;AAHhC,QAAA,eAAe,mBAGiB;AAE7C,IAAM,YAAY,GAAG,IAAI,sBAAY,EAAE,CAAC;AACjC,IAAM,UAAU,GAAG,UACxB,IAA4B,EAC5B,KAAkC,IAC/B,OAAA,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAAhC,CAAgC,CAAC;AAHzB,QAAA,UAAU,cAGe;AAEtC,sCAAqC;AAA5B,kGAAA,OAAO,OAAA"}
@@ -0,0 +1,12 @@
1
+ import { Constructable } from '../../types';
2
+ import { GraphRegistry } from '../../graph/registry/GraphRegistry';
3
+ import { Graph } from '../../graph/Graph';
4
+ import InjectionMetadata from './InjectionMetadata';
5
+ export default class ClassInjector {
6
+ private graphRegistry;
7
+ private injectionMetadata;
8
+ constructor(graphRegistry: GraphRegistry, injectionMetadata?: InjectionMetadata);
9
+ inject(Graph: Constructable<Graph>): (Target: Constructable<any>) => any;
10
+ private createProxyHandler;
11
+ }
12
+ //# sourceMappingURL=ClassInjector.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ var InjectionMetadata_1 = __importDefault(require("./InjectionMetadata"));
16
+ var LazyInjector_1 = require("./LazyInjector");
17
+ var ClassInjector = /** @class */ (function () {
18
+ function ClassInjector(graphRegistry, injectionMetadata) {
19
+ if (injectionMetadata === void 0) { injectionMetadata = new InjectionMetadata_1.default(); }
20
+ this.graphRegistry = graphRegistry;
21
+ this.injectionMetadata = injectionMetadata;
22
+ }
23
+ ClassInjector.prototype.inject = function (Graph) {
24
+ var _this = this;
25
+ return function (Target) {
26
+ return new Proxy(Target, _this.createProxyHandler(Graph, _this.graphRegistry, _this.injectionMetadata));
27
+ };
28
+ };
29
+ ClassInjector.prototype.createProxyHandler = function (Graph, graphRegistry, injectionMetadata) {
30
+ return new /** @class */ (function () {
31
+ function Handler() {
32
+ }
33
+ Handler.prototype.construct = function (target, args, newTarget) {
34
+ var graph = graphRegistry.resolve(Graph);
35
+ Reflect.defineMetadata(LazyInjector_1.GRAPH_INSTANCE_NAME_KEY, graph.name, target);
36
+ var argsToInject = this.injectConstructorArgs(args, graph, target);
37
+ var createdObject = Reflect.construct(target, argsToInject, newTarget);
38
+ this.injectProperties(target, createdObject, graph);
39
+ return createdObject;
40
+ };
41
+ Handler.prototype.injectConstructorArgs = function (args, graph, target) {
42
+ var argsToInject = injectionMetadata.getConstructorArgsToInject(target);
43
+ if (!argsToInject.hasArgs())
44
+ return args;
45
+ return __spreadArray(__spreadArray([], args, true), new Array(Math.abs(args.length - argsToInject.size())), true).map(function (value, idx) {
46
+ return value !== null && value !== void 0 ? value : graph.retrieve(argsToInject.getProperty(idx));
47
+ });
48
+ };
49
+ Handler.prototype.injectProperties = function (target, createdObject, graph) {
50
+ injectionMetadata.getPropertiesToInject(target).forEach(function (key) {
51
+ Reflect.set(createdObject, key, graph.retrieve(key));
52
+ });
53
+ };
54
+ return Handler;
55
+ }())();
56
+ };
57
+ return ClassInjector;
58
+ }());
59
+ exports.default = ClassInjector;
60
+ //# sourceMappingURL=ClassInjector.js.map
@@ -0,0 +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"}
@@ -0,0 +1,8 @@
1
+ export declare class ConstructorArgs {
2
+ private readonly args;
3
+ hasArgs(): boolean;
4
+ size(): number;
5
+ add(paramName: string, index: number): void;
6
+ getProperty(index: number): any;
7
+ }
8
+ //# sourceMappingURL=ConstructorArgs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConstructorArgs.d.ts","sourceRoot":"","sources":["../../../../src/injectors/class/ConstructorArgs.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiC;IAEtD,OAAO,IAAI,OAAO;IAIlB,IAAI,IAAI,MAAM;IAId,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIpC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG;CAIhC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConstructorArgs = void 0;
4
+ var ConstructorArgs = /** @class */ (function () {
5
+ function ConstructorArgs() {
6
+ this.args = new Array();
7
+ }
8
+ ConstructorArgs.prototype.hasArgs = function () {
9
+ return this.args.length > 0;
10
+ };
11
+ ConstructorArgs.prototype.size = function () {
12
+ return this.args.length;
13
+ };
14
+ ConstructorArgs.prototype.add = function (paramName, index) {
15
+ this.args.push([paramName, index]);
16
+ };
17
+ ConstructorArgs.prototype.getProperty = function (index) {
18
+ if (this.args.length <= index)
19
+ throw new Error('IOOB while trying to get constructor args to inject');
20
+ return this.args[index][0];
21
+ };
22
+ return ConstructorArgs;
23
+ }());
24
+ exports.ConstructorArgs = ConstructorArgs;
25
+ //# sourceMappingURL=ConstructorArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConstructorArgs.js","sourceRoot":"","sources":["../../../../src/injectors/class/ConstructorArgs.ts"],"names":[],"mappings":";;;AAAA;IAAA;QACmB,SAAI,GAAG,IAAI,KAAK,EAAoB,CAAC;IAkBxD,CAAC;IAhBC,iCAAO,GAAP;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,8BAAI,GAAJ;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,6BAAG,GAAH,UAAI,SAAiB,EAAE,KAAa;QAClC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,qCAAW,GAAX,UAAY,KAAa;QACvB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACtG,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACH,sBAAC;AAAD,CAAC,AAnBD,IAmBC;AAnBY,0CAAe"}
@@ -0,0 +1,15 @@
1
+ import { ConstructorArgs } from './ConstructorArgs';
2
+ export default class InjectionMetadata {
3
+ private readonly injectionMetadataKey;
4
+ private readonly injectedConstructorArgsKey;
5
+ private readonly lazyInjectionMetadataKey;
6
+ getConstructorArgsToInject(target: any): ConstructorArgs;
7
+ getPropertiesToInject(target: any): Set<string>;
8
+ getLazyPropertiesToInject(target: any): Set<string>;
9
+ saveConstructorParamMetadata(target: any, paramName: string, index: number): void;
10
+ savePropertyMetadata(target: any, property: string): void;
11
+ saveLazyPropertyMetadata(target: any, property: string): void;
12
+ private saveProperties;
13
+ private getProperties;
14
+ }
15
+ //# sourceMappingURL=InjectionMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InjectionMetadata.d.ts","sourceRoot":"","sources":["../../../../src/injectors/class/InjectionMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAgC;IAC3E,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA8B;IAEvE,0BAA0B,CAAC,MAAM,EAAE,GAAG,GAAG,eAAe;IAIxD,qBAAqB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IAI/C,yBAAyB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IAInD,4BAA4B,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAU1E,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM;IAQlD,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM;IAQtD,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,aAAa;CAGtB"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var ConstructorArgs_1 = require("./ConstructorArgs");
4
+ var InjectionMetadata = /** @class */ (function () {
5
+ function InjectionMetadata() {
6
+ this.injectionMetadataKey = 'injectionMetadata';
7
+ this.injectedConstructorArgsKey = 'injectedConstructorArgsKey';
8
+ this.lazyInjectionMetadataKey = 'lazyInjectionMetadataKey';
9
+ }
10
+ InjectionMetadata.prototype.getConstructorArgsToInject = function (target) {
11
+ var _a;
12
+ return (_a = Reflect.getMetadata(this.injectedConstructorArgsKey, target)) !== null && _a !== void 0 ? _a : new ConstructorArgs_1.ConstructorArgs();
13
+ };
14
+ InjectionMetadata.prototype.getPropertiesToInject = function (target) {
15
+ return this.getProperties(this.injectionMetadataKey, target);
16
+ };
17
+ InjectionMetadata.prototype.getLazyPropertiesToInject = function (target) {
18
+ return this.getProperties(this.lazyInjectionMetadataKey, target);
19
+ };
20
+ InjectionMetadata.prototype.saveConstructorParamMetadata = function (target, paramName, index) {
21
+ var argsToInject = this.getConstructorArgsToInject(target);
22
+ argsToInject.add(paramName, index);
23
+ Reflect.defineMetadata(this.injectedConstructorArgsKey, argsToInject, target);
24
+ };
25
+ InjectionMetadata.prototype.savePropertyMetadata = function (target, property) {
26
+ this.saveProperties(this.injectionMetadataKey, this.getPropertiesToInject(target).add(property), target);
27
+ };
28
+ InjectionMetadata.prototype.saveLazyPropertyMetadata = function (target, property) {
29
+ this.saveProperties(this.lazyInjectionMetadataKey, this.getLazyPropertiesToInject(target).add(property), target);
30
+ };
31
+ InjectionMetadata.prototype.saveProperties = function (key, properties, target) {
32
+ Reflect.defineMetadata(key, properties, target);
33
+ };
34
+ InjectionMetadata.prototype.getProperties = function (key, target) {
35
+ var _a;
36
+ return (_a = Reflect.getMetadata(key, target)) !== null && _a !== void 0 ? _a : new Set();
37
+ };
38
+ return InjectionMetadata;
39
+ }());
40
+ exports.default = InjectionMetadata;
41
+ //# sourceMappingURL=InjectionMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InjectionMetadata.js","sourceRoot":"","sources":["../../../../src/injectors/class/InjectionMetadata.ts"],"names":[],"mappings":";;AAAA,qDAAoD;AAEpD;IAAA;QACmB,yBAAoB,GAAG,mBAAmB,CAAC;QAC3C,+BAA0B,GAAG,4BAA4B,CAAC;QAC1D,6BAAwB,GAAG,0BAA0B,CAAC;IAmDzE,CAAC;IAjDC,sDAA0B,GAA1B,UAA2B,MAAW;;QACpC,OAAO,MAAA,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,mCAAI,IAAI,iCAAe,EAAE,CAAC;IAC/F,CAAC;IAED,iDAAqB,GAArB,UAAsB,MAAW;QAC/B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,qDAAyB,GAAzB,UAA0B,MAAW;QACnC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,wDAA4B,GAA5B,UAA6B,MAAW,EAAE,SAAiB,EAAE,KAAa;QACxE,IAAM,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC7D,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,CAAC,cAAc,CACpB,IAAI,CAAC,0BAA0B,EAC/B,YAAY,EACZ,MAAM,CACP,CAAC;IACJ,CAAC;IAED,gDAAoB,GAApB,UAAqB,MAAW,EAAE,QAAgB;QAChD,IAAI,CAAC,cAAc,CACjB,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAChD,MAAM,CACP,CAAC;IACJ,CAAC;IAED,oDAAwB,GAAxB,UAAyB,MAAW,EAAE,QAAgB;QACpD,IAAI,CAAC,cAAc,CACjB,IAAI,CAAC,wBAAwB,EAC7B,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EACpD,MAAM,CACP,CAAC;IACJ,CAAC;IAEO,0CAAc,GAAtB,UAAuB,GAAW,EAAE,UAAuB,EAAE,MAAW;QACtE,OAAO,CAAC,cAAc,CACpB,GAAG,EACH,UAAU,EACV,MAAM,CACP,CAAC;IACJ,CAAC;IAEO,yCAAa,GAArB,UAAsB,GAAW,EAAE,MAAW;;QAC5C,OAAO,MAAA,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,mCAAI,IAAI,GAAG,EAAE,CAAC;IACvD,CAAC;IACH,wBAAC;AAAD,CAAC,AAtDD,IAsDC"}
@@ -0,0 +1,8 @@
1
+ export declare const GRAPH_INSTANCE_NAME_KEY = "GRAPH_INSTANCE_NAME";
2
+ declare class LazyInjector<T extends object> {
3
+ inject(target: T): T;
4
+ private getGraphInstance;
5
+ }
6
+ declare const _default: LazyInjector<object>;
7
+ export default _default;
8
+ //# sourceMappingURL=LazyInjector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/class/LazyInjector.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAE7D,cAAM,YAAY,CAAC,CAAC,SAAS,MAAM;IACjC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC;IASpB,OAAO,CAAC,gBAAgB;CAIzB;;AAED,wBAAkC"}
@@ -0,0 +1,28 @@
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.GRAPH_INSTANCE_NAME_KEY = void 0;
7
+ var GraphRegistry_1 = __importDefault(require("../../graph/registry/GraphRegistry"));
8
+ var InjectionMetadata_1 = __importDefault(require("./InjectionMetadata"));
9
+ exports.GRAPH_INSTANCE_NAME_KEY = 'GRAPH_INSTANCE_NAME';
10
+ var LazyInjector = /** @class */ (function () {
11
+ function LazyInjector() {
12
+ }
13
+ LazyInjector.prototype.inject = function (target) {
14
+ var injectionMetadata = new InjectionMetadata_1.default();
15
+ var graph = this.getGraphInstance(target);
16
+ injectionMetadata.getLazyPropertiesToInject(target.constructor).forEach(function (key) {
17
+ Reflect.set(target, key, graph.retrieve(key));
18
+ });
19
+ return target;
20
+ };
21
+ LazyInjector.prototype.getGraphInstance = function (target) {
22
+ var graphInstanceName = Reflect.getMetadata(exports.GRAPH_INSTANCE_NAME_KEY, target.constructor);
23
+ return GraphRegistry_1.default.getGraphInstance(graphInstanceName);
24
+ };
25
+ return LazyInjector;
26
+ }());
27
+ exports.default = new LazyInjector();
28
+ //# sourceMappingURL=LazyInjector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/LazyInjector.ts"],"names":[],"mappings":";;;;;;AAAA,qFAA+D;AAC/D,0EAAoD;AAEvC,QAAA,uBAAuB,GAAG,qBAAqB,CAAC;AAE7D;IAAA;IAcA,CAAC;IAbC,6BAAM,GAAN,UAAO,MAAS;QACd,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;QAClD,IAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC5C,iBAAiB,CAAC,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;YAC1E,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,uCAAgB,GAAxB,UAAyB,MAAS;QAChC,IAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,+BAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3F,OAAO,uBAAa,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAC3D,CAAC;IACH,mBAAC;AAAD,CAAC,AAdD,IAcC;AAED,kBAAe,IAAI,YAAY,EAAE,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import 'reflect-metadata';
3
2
  import { ObjectGraph } from '../../graph/ObjectGraph';
4
3
  import { Constructable } from '../../types';
5
4
  export default class ComponentInjector {
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,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;CAUtB"}
1
+ {"version":3,"file":"ComponentInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,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;CAUtB"}
@@ -24,7 +24,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
25
  var react_1 = __importStar(require("react"));
26
26
  var hoist_non_react_statics_1 = __importDefault(require("hoist-non-react-statics"));
27
- require("reflect-metadata");
28
27
  var PropsInjector_1 = __importDefault(require("./PropsInjector"));
29
28
  var useGraph_1 = __importDefault(require("./useGraph"));
30
29
  var ComponentInjector = /** @class */ (function () {
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwC;AACxC,oFAA2D;AAC3D,4BAA0B;AAE1B,kEAA4C;AAC5C,wDAAkC;AAGlC;IAAA;IAoBA,CAAC;IAnBC,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,MAAkC,EAClC,KAAiC;QAEjC,OAAO,UAAC,WAAuB;YAC7B,IAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACpC,IAAA,YAAY,GAAI,IAAA,gBAAQ,EAAC,IAAI,uBAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAA1D,CAA2D;YAC9E,OAAO,8DAAG,MAAM,CAAC,YAA4B,CAAC,CAAI,CAAC;QACrD,CAAC,CAAC;IACJ,CAAC;IACH,wBAAC;AAAD,CAAC,AApBD,IAoBC"}
1
+ {"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwC;AACxC,oFAA2D;AAE3D,kEAA4C;AAC5C,wDAAkC;AAGlC;IAAA;IAoBA,CAAC;IAnBC,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,MAAkC,EAClC,KAAiC;QAEjC,OAAO,UAAC,WAAuB;YAC7B,IAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACpC,IAAA,YAAY,GAAI,IAAA,gBAAQ,EAAC,IAAI,uBAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAA1D,CAA2D;YAC9E,OAAO,8DAAG,MAAM,CAAC,YAA4B,CAAC,CAAI,CAAC;QACrD,CAAC,CAAC;IACJ,CAAC;IACH,wBAAC;AAAD,CAAC,AApBD,IAoBC"}
@@ -1,7 +1,6 @@
1
1
  export declare type Constructable<T> = {
2
2
  new (...args: any): T;
3
3
  };
4
- export declare type Scope = string | number | symbol;
5
4
  export declare type Constructor = {
6
5
  new (...args: any[]): any;
7
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa,CAAC,CAAC,IAAI;IAC7B,KAAI,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;CACtB,CAAC;AAEF,oBAAY,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C,oBAAY,WAAW,GAAG;IAAE,KAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,CAAC;AAEvD,oBAAY,cAAc,CAAC,KAAK,IAAI;KACjC,GAAG,IAAI,MAAM,KAAK,GAAG,QAAQ;CAC/B,CAAC;AAEF,oBAAY,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa,CAAC,CAAC,IAAI;IAC7B,KAAI,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;CACtB,CAAC;AAEF,oBAAY,WAAW,GAAG;IAAE,KAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,CAAC;AAEvD,oBAAY,cAAc,CAAC,KAAK,IAAI;KACjC,GAAG,IAAI,MAAM,KAAK,GAAG,QAAQ;CAC/B,CAAC;AAEF,oBAAY,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC"}
@@ -2,5 +2,6 @@ import { ObjectGraph } from '../../../src';
2
2
  import StringProvider from './StringProvider';
3
3
  export default class MainGraph extends ObjectGraph {
4
4
  someString(stringProvider: StringProvider): string;
5
+ anotherString(): string;
5
6
  }
6
7
  //# sourceMappingURL=MainGraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MainGraph.d.ts","sourceRoot":"","sources":["../../../../test/integration/fixtures/MainGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,WAAW,EAAY,MAAM,cAAc,CAAC;AAC5D,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAI9C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAEhD,UAAU,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM;CAGnD"}
1
+ {"version":3,"file":"MainGraph.d.ts","sourceRoot":"","sources":["../../../../test/integration/fixtures/MainGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,WAAW,EAAY,MAAM,cAAc,CAAC;AAE5D,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAI9C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAEhD,UAAU,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM;IAKlD,aAAa,IAAI,MAAM;CAGxB"}
@@ -28,6 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
30
  var src_1 = require("../../../src");
31
+ var injectedValues_1 = __importDefault(require("./injectedValues"));
31
32
  var StringProvider_1 = __importDefault(require("./StringProvider"));
32
33
  var Subgraph_1 = __importDefault(require("./Subgraph"));
33
34
  var MainGraph = /** @class */ (function (_super) {
@@ -38,12 +39,21 @@ var MainGraph = /** @class */ (function (_super) {
38
39
  MainGraph.prototype.someString = function (stringProvider) {
39
40
  return stringProvider.theString;
40
41
  };
42
+ MainGraph.prototype.anotherString = function () {
43
+ return injectedValues_1.default.anotherString;
44
+ };
41
45
  __decorate([
42
46
  (0, src_1.Provides)(),
43
47
  __metadata("design:type", Function),
44
48
  __metadata("design:paramtypes", [StringProvider_1.default]),
45
49
  __metadata("design:returntype", String)
46
50
  ], MainGraph.prototype, "someString", null);
51
+ __decorate([
52
+ (0, src_1.Provides)(),
53
+ __metadata("design:type", Function),
54
+ __metadata("design:paramtypes", []),
55
+ __metadata("design:returntype", String)
56
+ ], MainGraph.prototype, "anotherString", null);
47
57
  MainGraph = __decorate([
48
58
  (0, src_1.Graph)({ subgraphs: [Subgraph_1.default] })
49
59
  ], MainGraph);
@@ -1 +1 @@
1
- {"version":3,"file":"MainGraph.js","sourceRoot":"","sources":["../../../../test/integration/fixtures/MainGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAA4D;AAC5D,oEAA8C;AAC9C,wDAAkC;AAGlC;IAAuC,6BAAW;IAAlD;;IAKA,CAAC;IAHC,8BAAU,GAAV,UAAW,cAA8B;QACvC,OAAO,cAAc,CAAC,SAAS,CAAC;IAClC,CAAC;IAFD;QADC,IAAA,cAAQ,GAAE;;yCACgB,wBAAc;;+CAExC;IAJkB,SAAS;QAD7B,IAAA,WAAK,EAAC,EAAE,SAAS,EAAE,CAAC,kBAAQ,CAAC,EAAE,CAAC;OACZ,SAAS,CAK7B;IAAD,gBAAC;CAAA,AALD,CAAuC,iBAAW,GAKjD;kBALoB,SAAS"}
1
+ {"version":3,"file":"MainGraph.js","sourceRoot":"","sources":["../../../../test/integration/fixtures/MainGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAA4D;AAC5D,oEAA8C;AAC9C,oEAA8C;AAC9C,wDAAkC;AAGlC;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"}
@@ -0,0 +1,6 @@
1
+ import { ObjectGraph } from '../../../src';
2
+ export default class SingletonGraph extends ObjectGraph {
3
+ private id;
4
+ instanceId(): string;
5
+ }
6
+ //# sourceMappingURL=SingletonGraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SingletonGraph.d.ts","sourceRoot":"","sources":["../../../../test/integration/fixtures/SingletonGraph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,WAAW,EAAY,MAAM,cAAc,CAAC;AAG5D,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,OAAO,CAAC,EAAE,CAAc;IAGxB,UAAU,IAAI,MAAM;CAGrB"}
@@ -0,0 +1,53 @@
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
+ var lodash_1 = require("lodash");
28
+ var Singleton_1 = require("../../../src/decorators/Singleton");
29
+ var src_1 = require("../../../src");
30
+ var SingletonGraph = /** @class */ (function (_super) {
31
+ __extends(SingletonGraph, _super);
32
+ function SingletonGraph() {
33
+ var _this = _super !== null && _super.apply(this, arguments) || this;
34
+ _this.id = (0, lodash_1.uniqueId)();
35
+ return _this;
36
+ }
37
+ SingletonGraph.prototype.instanceId = function () {
38
+ return "graph".concat(this.id);
39
+ };
40
+ __decorate([
41
+ (0, src_1.Provides)(),
42
+ __metadata("design:type", Function),
43
+ __metadata("design:paramtypes", []),
44
+ __metadata("design:returntype", String)
45
+ ], SingletonGraph.prototype, "instanceId", null);
46
+ SingletonGraph = __decorate([
47
+ (0, Singleton_1.Singleton)(),
48
+ (0, src_1.Graph)()
49
+ ], SingletonGraph);
50
+ return SingletonGraph;
51
+ }(src_1.ObjectGraph));
52
+ exports.default = SingletonGraph;
53
+ //# sourceMappingURL=SingletonGraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SingletonGraph.js","sourceRoot":"","sources":["../../../../test/integration/fixtures/SingletonGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,+DAA8D;AAC9D,oCAA4D;AAG5D;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"}
@@ -0,0 +1,8 @@
1
+ import { ObjectGraph } from '../../../src';
2
+ export declare class UniqueNumberGraph extends ObjectGraph {
3
+ private uniqueNumberGenerator;
4
+ constructor(uniqueNumberGenerator: () => number);
5
+ singletonNumber(): number;
6
+ instanceNumber(): number;
7
+ }
8
+ //# sourceMappingURL=UniqueNumberGraph.d.ts.map