react-obsidian 0.0.2 → 0.0.6

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 (82) hide show
  1. package/.buildkite/pipeline.yml +1 -2
  2. package/.eslintrc.json +1 -0
  3. package/README.md +30 -3
  4. package/dist/src/Obsidian.d.ts +2 -2
  5. package/dist/src/Obsidian.d.ts.map +1 -1
  6. package/dist/src/Obsidian.js.map +1 -1
  7. package/dist/src/ScopedValuesRegistry.d.ts +1 -1
  8. package/dist/src/ScopedValuesRegistry.d.ts.map +1 -1
  9. package/dist/src/decorators/Graph.d.ts +1 -1
  10. package/dist/src/decorators/Graph.d.ts.map +1 -1
  11. package/dist/src/decorators/injectClass.d.ts +1 -1
  12. package/dist/src/decorators/injectClass.d.ts.map +1 -1
  13. package/dist/src/decorators/provides/PropertyDescriptorToSingleton.d.ts +2 -0
  14. package/dist/src/decorators/provides/PropertyDescriptorToSingleton.d.ts.map +1 -0
  15. package/dist/src/decorators/provides/PropertyDescriptorToSingleton.js +20 -0
  16. package/dist/src/decorators/provides/PropertyDescriptorToSingleton.js.map +1 -0
  17. package/dist/src/{Provides.d.ts → decorators/provides/Provides.d.ts} +2 -2
  18. package/dist/src/decorators/provides/Provides.d.ts.map +1 -0
  19. package/dist/src/{Provides.js → decorators/provides/Provides.js} +3 -2
  20. package/dist/src/decorators/provides/Provides.js.map +1 -0
  21. package/dist/src/graph/ObjectGraph.d.ts +1 -1
  22. package/dist/src/graph/ObjectGraph.d.ts.map +1 -1
  23. package/dist/src/graph/registry/DefaultGraphResolver.d.ts +1 -1
  24. package/dist/src/graph/registry/DefaultGraphResolver.d.ts.map +1 -1
  25. package/dist/src/graph/registry/GraphMiddleware.d.ts +1 -1
  26. package/dist/src/graph/registry/GraphMiddleware.d.ts.map +1 -1
  27. package/dist/src/graph/registry/GraphMiddlewareChain.d.ts +1 -1
  28. package/dist/src/graph/registry/GraphMiddlewareChain.d.ts.map +1 -1
  29. package/dist/src/graph/registry/GraphRegistry.d.ts +1 -1
  30. package/dist/src/graph/registry/GraphRegistry.d.ts.map +1 -1
  31. package/dist/src/index.d.ts +3 -2
  32. package/dist/src/index.d.ts.map +1 -1
  33. package/dist/src/index.js +12 -1
  34. package/dist/src/index.js.map +1 -1
  35. package/dist/src/injectors/components/ComponentInjector.d.ts +1 -1
  36. package/dist/src/injectors/components/ComponentInjector.d.ts.map +1 -1
  37. package/dist/src/injectors/components/ComponentInjector.js.map +1 -1
  38. package/dist/src/injectors/components/PropsInjector.d.ts +1 -1
  39. package/dist/src/injectors/components/PropsInjector.d.ts.map +1 -1
  40. package/dist/src/injectors/components/useGraph.d.ts +2 -2
  41. package/dist/src/injectors/components/useGraph.d.ts.map +1 -1
  42. package/dist/src/injectors/components/useGraph.js.map +1 -1
  43. package/dist/src/injectors/hooks/HookInjector.d.ts +2 -2
  44. package/dist/src/injectors/hooks/HookInjector.d.ts.map +1 -1
  45. package/dist/src/injectors/hooks/HookInjector.js.map +1 -1
  46. package/dist/src/types/index.d.ts +12 -0
  47. package/dist/src/types/index.d.ts.map +1 -0
  48. package/dist/src/types/index.js +3 -0
  49. package/dist/src/types/index.js.map +1 -0
  50. package/dist/testkit/index.d.ts +1 -1
  51. package/dist/testkit/index.d.ts.map +1 -1
  52. package/dist/testkit/index.js.map +1 -1
  53. package/dist/transformers/babel-plugin-obsidian-provide/index.d.ts.map +1 -1
  54. package/dist/transformers/babel-plugin-obsidian-provide/index.js +5 -1
  55. package/dist/transformers/babel-plugin-obsidian-provide/index.js.map +1 -1
  56. package/example/MyInjectedComponent.tsx +12 -3
  57. package/example/tsconfig.json +0 -3
  58. package/package.json +1 -1
  59. package/src/Obsidian.ts +5 -2
  60. package/src/ScopedValuesRegistry.ts +1 -1
  61. package/src/decorators/Graph.ts +1 -1
  62. package/src/decorators/injectClass.ts +1 -1
  63. package/src/decorators/provides/PropertyDescriptorToSingleton.ts +11 -0
  64. package/src/{Provides.ts → decorators/provides/Provides.ts} +5 -4
  65. package/src/graph/ObjectGraph.ts +1 -1
  66. package/src/graph/registry/DefaultGraphResolver.ts +1 -1
  67. package/src/graph/registry/GraphMiddleware.ts +1 -1
  68. package/src/graph/registry/GraphMiddlewareChain.ts +1 -1
  69. package/src/graph/registry/GraphRegistry.ts +1 -1
  70. package/src/index.ts +4 -2
  71. package/src/injectors/components/ComponentInjector.tsx +1 -1
  72. package/src/injectors/components/PropsInjector.ts +1 -1
  73. package/src/injectors/components/useGraph.ts +2 -2
  74. package/src/injectors/hooks/HookInjector.ts +4 -3
  75. package/src/types/index.ts +13 -0
  76. package/testkit/index.ts +1 -2
  77. package/transformers/babel-plugin-obsidian-provide/index.ts +4 -1
  78. package/tsconfig.base.json +1 -4
  79. package/.nvmrc +0 -1
  80. package/dist/src/Provides.d.ts.map +0 -1
  81. package/dist/src/Provides.js.map +0 -1
  82. package/src/@types/obsidian.d.ts +0 -19
@@ -5,7 +5,6 @@ steps:
5
5
  npm install
6
6
  npm run test
7
7
  if [[ $(echo $BUILDKITE_MESSAGE | tr '[:upper:]' '[:lower:]') =~ release ]];then
8
+ cp .buildkite/.npmrc .
8
9
  npm publish
9
10
  fi
10
- agents:
11
- queue: testing
package/.eslintrc.json CHANGED
@@ -4,6 +4,7 @@
4
4
  "es2021": true,
5
5
  "jest": true
6
6
  },
7
+ "ignorePatterns": ["**/*.config.js"],
7
8
  "extends": [
8
9
  "airbnb-base",
9
10
  "airbnb-typescript",
package/README.md CHANGED
@@ -110,6 +110,33 @@ Obsidian.obtain(ApplicationGraph).biLogger();
110
110
 
111
111
  > Note: While the function that provides the `biLogger` accepts an argument of type `HttpClient`, when obtaining dependencies directly from the graph, we don't provide dependencies ourselves as they are resolved by Obsidian.
112
112
 
113
+ ## Advance usage
114
+ ### Graph middlewares
115
+ When working on large scale applications, a need to hook into various low level operations often arises. Obsidian lets you hook into the graph creation process by adding middlewares.
116
+
117
+ Middlewares are invoked in LIFO order and can be used for various purposes:
118
+ 1. Create a graph yourself instead of letting Obsidian instantiate it.
119
+ 2. Add logging to graph creation.
120
+ 3. Handle errors when Obsidian instantiates graphs.
121
+ 4. Replace graphs with mocks for testing purposes.
122
+
123
+ Middlewares follow the Chain of Responsibility pattern and therefor must always return a graph, either by creating one explicitly or by returning the instance created by another member in the resolve chain.
124
+
125
+ #### Adding a logging middleware
126
+ The following example demonstrates how to add a middleware that's used for logging purposes.
127
+
128
+ ```typescript
129
+ const loggingMiddleware = new class extends GraphMiddleware {
130
+ resolve<T extends ObjectGraph, Props>(resolveChain: ResolveChain, Graph: Constructable<T>, props?: Props) {
131
+ const t1 = Date.now();
132
+ const graph = resolveChain.proceed(Graph, props);
133
+ const t2 = Date.now();
134
+ console.log(`Graph created in ${t2 - t1} milliseconds`);
135
+ return graph;
136
+ }
137
+ }();
138
+ Obsidian.addGraphMiddleware(loggingMiddleware);
139
+ ```
113
140
  ## Prerequisites
114
141
  Obsidian is highly opinionated and is developed with a specific environment in mind. Therefore, it has a few prerequisites for projects that want to integrate it.
115
142
 
@@ -145,13 +172,13 @@ module.exports = {
145
172
  presets: ['module:metro-react-native-babel-preset'],
146
173
  plugins: [
147
174
  ['@babel/plugin-proposal-decorators', {legacy: true}],
148
- ['@babel/plugin-proposal-class-properties', {legacy: true}],
149
- [`${__dirname}/../dist/transformers/babel-plugin-obsidian-provide`],
175
+ react-obsidian/dist/transformers/babel-plugin-obsidian-provide
150
176
  ],
151
177
  };
152
-
153
178
  ```
154
179
 
180
+ ### Jest
181
+ react-obsidian publishes untranspiled code. If you're using Jest, you'll need to add react-obsidian to [transformIgnorePatterns](https://jestjs.io/docs/configuration#transformignorepatterns-arraystring) so it's transpiled before tests are executed.
155
182
 
156
183
  ## Related
157
184
 
@@ -1,8 +1,8 @@
1
- import { Constructable, ServiceLocator } from '@Obsidian';
2
1
  import ObjectGraph from './graph/ObjectGraph';
3
2
  import { GraphMiddleware } from './graph/registry/GraphMiddleware';
3
+ import { Constructable, GraphInternals, ServiceLocator } from './types';
4
4
  export default class Obsidian {
5
- obtain<T extends ObjectGraph<P>, P = any>(Graph: Constructable<T>, props?: P): ServiceLocator<T>;
5
+ obtain<T extends ObjectGraph<P>, P = any>(Graph: Constructable<T>, props?: P): ServiceLocator<Omit<T, GraphInternals>>;
6
6
  addGraphMiddleware(middleware: GraphMiddleware): void;
7
7
  clearGraphMiddlewares(): void;
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Obsidian.d.ts","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE1D,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,MAAM,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IAIhG,kBAAkB,CAAC,UAAU,EAAE,eAAe;IAI9C,qBAAqB;CAGtB"}
1
+ {"version":3,"file":"Obsidian.d.ts","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAExE,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,MAAM,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EACtC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,KAAK,CAAC,EAAE,CAAC,GACR,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAI1C,kBAAkB,CAAC,UAAU,EAAE,eAAe;IAI9C,qBAAqB;CAGtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Obsidian.js","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":";;;;;AACA,iFAA2D;AAI3D;IAAA;IAYA,CAAC;IAXC,yBAAM,GAAN,UAA0C,KAAuB,EAAE,KAAS;QAC1E,OAAO,uBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAiC,CAAC;IAC7E,CAAC;IAED,qCAAkB,GAAlB,UAAmB,UAA2B;QAC5C,uBAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,wCAAqB,GAArB;QACE,uBAAa,CAAC,qBAAqB,EAAE,CAAC;IACxC,CAAC;IACH,eAAC;AAAD,CAAC,AAZD,IAYC"}
1
+ {"version":3,"file":"Obsidian.js","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":";;;;;AAAA,iFAA2D;AAK3D;IAAA;IAeA,CAAC;IAdC,yBAAM,GAAN,UACE,KAAuB,EACvB,KAAS;QAET,OAAO,uBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAiC,CAAC;IAC7E,CAAC;IAED,qCAAkB,GAAlB,UAAmB,UAA2B;QAC5C,uBAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,wCAAqB,GAArB;QACE,uBAAa,CAAC,qBAAqB,EAAE,CAAC;IACxC,CAAC;IACH,eAAC;AAAD,CAAC,AAfD,IAeC"}
@@ -1,4 +1,4 @@
1
- import { Scope } from '@Obsidian';
1
+ import { Scope } from './types';
2
2
  declare class ScopedValuesRegistry {
3
3
  private readonly values;
4
4
  has(scope: Scope, property: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ScopedValuesRegistry.d.ts","sourceRoot":"","sources":["../../src/ScopedValuesRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,cAAM,oBAAoB;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IAEtD,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI5C,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG;IAOxC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAI9C,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM;CAGrC;;AAED,wBAA0C"}
1
+ {"version":3,"file":"ScopedValuesRegistry.d.ts","sourceRoot":"","sources":["../../src/ScopedValuesRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,cAAM,oBAAoB;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IAEtD,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI5C,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG;IAOxC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAI9C,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM;CAGrC;;AAED,wBAA0C"}
@@ -1,4 +1,4 @@
1
- import { Constructable, Scope } from '@Obsidian';
1
+ import { Constructable, Scope } from '../types';
2
2
  import 'reflect-metadata';
3
3
  import ObjectGraph from '../graph/ObjectGraph';
4
4
  interface GraphParams {
@@ -1 +1 @@
1
- {"version":3,"file":"Graph.d.ts","sourceRoot":"","sources":["../../../src/decorators/Graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,kBAAkB,CAAC;AAE1B,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAE/C,UAAU,WAAW;IACnB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;CACzC;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,KAAK,EACL,SAAc,GACf,GAAE,OAAO,CAAC,WAAW,CAAM,uFAM3B"}
1
+ {"version":3,"file":"Graph.d.ts","sourceRoot":"","sources":["../../../src/decorators/Graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,kBAAkB,CAAC;AAE1B,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAE/C,UAAU,WAAW;IACnB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;CACzC;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,KAAK,EACL,SAAc,GACf,GAAE,OAAO,CAAC,WAAW,CAAM,uFAM3B"}
@@ -1,4 +1,4 @@
1
- import { Constructable } from '@Obsidian';
1
+ import { Constructable } from '../types';
2
2
  import ObjectGraph from '../graph/ObjectGraph';
3
3
  export declare function Injectable<T extends {
4
4
  new (...args: any[]): any;
@@ -1 +1 @@
1
- {"version":3,"file":"injectClass.d.ts","sourceRoot":"","sources":["../../../src/decorators/injectClass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAI/C,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,KAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,EAAE,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,GAAG,CAgBzG;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAGzD"}
1
+ {"version":3,"file":"injectClass.d.ts","sourceRoot":"","sources":["../../../src/decorators/injectClass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAI/C,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,KAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,EAAE,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,GAAG,CAgBzG;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAGzD"}
@@ -0,0 +1,2 @@
1
+ export default function makeSingleton(descriptor: PropertyDescriptor): PropertyDescriptor;
2
+ //# sourceMappingURL=PropertyDescriptorToSingleton.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,20 @@
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
@@ -0,0 +1 @@
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,5 +1,5 @@
1
- import { Scope } from '@Obsidian';
2
- import Graph from './graph/Graph';
1
+ import { Scope } from '../../types';
2
+ import Graph from '../../graph/Graph';
3
3
  interface ProvidesParams {
4
4
  scope?: Scope;
5
5
  name: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Provides.d.ts","sourceRoot":"","sources":["../../../../src/decorators/provides/Provides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,mBAAmB,CAAC;AAItC,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iBAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAE,OAAO,CAAC,cAAc,CAAM,WACvB,KAAK,eAAe,MAAM,cAAc,kBAAkB,wBAI1F;AACD,eAAe,QAAQ,CAAC"}
@@ -3,12 +3,13 @@ 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
- var ProvidedPropertiesStore_1 = __importDefault(require("./ProvidedPropertiesStore"));
6
+ var ProvidedPropertiesStore_1 = __importDefault(require("../../ProvidedPropertiesStore"));
7
+ var PropertyDescriptorToSingleton_1 = __importDefault(require("./PropertyDescriptorToSingleton"));
7
8
  function Provides(_a) {
8
9
  var _b = _a === void 0 ? {} : _a, name = _b.name;
9
10
  return function provide(graph, propertyKey, descriptor) {
10
11
  ProvidedPropertiesStore_1.default.set(graph, propertyKey, name);
11
- return descriptor;
12
+ return (0, PropertyDescriptorToSingleton_1.default)(descriptor);
12
13
  };
13
14
  }
14
15
  exports.default = Provides;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Provides.js","sourceRoot":"","sources":["../../../../src/decorators/provides/Provides.ts"],"names":[],"mappings":";;;;;AAEA,0FAAoE;AACpE,kGAA4D;AAO5D,SAAS,QAAQ,CAAC,EAAsC;QAAtC,qBAAoC,EAAE,KAAA,EAApC,IAAI,UAAA;IACtB,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;AACD,kBAAe,QAAQ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Scope } from '@Obsidian';
1
+ import { Scope } from '../types';
2
2
  import Graph from './Graph';
3
3
  export default abstract class ObjectGraph<T = unknown> implements Graph {
4
4
  protected props?: T | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAG5B,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IASzD,SAAS,CAAC,KAAK,CAAC;IAPrB,KAAK,EAAG,KAAK,CAAC;IACrB,OAAO,CAAC,iBAAiB,CAA+B;IACxD,IAAI,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":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,KAAK,MAAM,SAAS,CAAC;AAG5B,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IASzD,SAAS,CAAC,KAAK,CAAC;IAPrB,KAAK,EAAG,KAAK,CAAC;IACrB,OAAO,CAAC,iBAAiB,CAA+B;IACxD,IAAI,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,4 +1,4 @@
1
- import { Constructable } from '@Obsidian';
1
+ import { Constructable } from '../../types';
2
2
  import Graph from '../Graph';
3
3
  import { GraphMiddleware, ResolveChain } from './GraphMiddleware';
4
4
  export default class DefaultGraphMiddleware extends GraphMiddleware {
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultGraphResolver.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/DefaultGraphResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,eAAe;IACjE,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC;CAGxG"}
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,KAAK,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,eAAe;IACjE,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC;CAGxG"}
@@ -1,4 +1,4 @@
1
- import { Constructable } from '@Obsidian';
1
+ import { Constructable } from '../../types';
2
2
  import Graph from '../Graph';
3
3
  export declare abstract class GraphMiddleware {
4
4
  private next;
@@ -1 +1 @@
1
- {"version":3,"file":"GraphMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,MAAM,UAAU,CAAC;AAE7B,8BAAsB,eAAe;IACnC,OAAO,CAAC,IAAI,CAAmB;IAExB,OAAO,CAAC,IAAI,EAAE,eAAe;IAIpC,IAAW,YAAY,IAAI,YAAY,CAMtC;IAED,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC;CAChH;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;CAC5E"}
1
+ {"version":3,"file":"GraphMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,MAAM,UAAU,CAAC;AAE7B,8BAAsB,eAAe;IACnC,OAAO,CAAC,IAAI,CAAmB;IAExB,OAAO,CAAC,IAAI,EAAE,eAAe;IAIpC,IAAW,YAAY,IAAI,YAAY,CAMtC;IAED,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC;CAChH;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;CAC5E"}
@@ -1,4 +1,4 @@
1
- import { Constructable } from '@Obsidian';
1
+ import { Constructable } from '../../types';
2
2
  import Graph from '../Graph';
3
3
  import { GraphMiddleware } from './GraphMiddleware';
4
4
  export default class GraphMiddlewareChain {
@@ -1 +1 @@
1
- {"version":3,"file":"GraphMiddlewareChain.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphMiddlewareChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,MAAM,UAAU,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,OAAO,CAAC,WAAW,CAAoB;gBAE3B,iBAAiB,GAAE,eAA8C;IAI7E,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;IAIjE,GAAG,CAAC,UAAU,EAAE,eAAe;IAK/B,OAAO,CAAC,kBAAkB;IAM1B,KAAK;CAGN"}
1
+ {"version":3,"file":"GraphMiddlewareChain.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphMiddlewareChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,MAAM,UAAU,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,OAAO,CAAC,WAAW,CAAoB;gBAE3B,iBAAiB,GAAE,eAA8C;IAI7E,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;IAIjE,GAAG,CAAC,UAAU,EAAE,eAAe;IAK/B,OAAO,CAAC,kBAAkB;IAM1B,KAAK;CAGN"}
@@ -1,4 +1,4 @@
1
- import { Constructable, Scope } from '@Obsidian';
1
+ import { Constructable, Scope } from '../../types';
2
2
  import Graph from '../Graph';
3
3
  import { GraphMiddleware } from './GraphMiddleware';
4
4
  declare class GraphRegistry {
@@ -1 +1 @@
1
- {"version":3,"file":"GraphRegistry.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,cAAM,aAAa;IACjB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2C;IACxE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAChF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAChF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8D;IAC/F,OAAO,CAAC,gBAAgB,CAA8B;IAEtD,QAAQ,CACN,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,EACjC,KAAK,GAAE,KAAK,GAAG,SAAqB,EACpC,SAAS,GAAE,aAAa,CAAC,KAAK,CAAC,EAAO;IAMxC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;IAI/B,GAAG,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;IAIhD,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK;IAK7C,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE;IAMnC,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;IAcjE,KAAK,CAAC,KAAK,EAAE,KAAK;IAMlB,kBAAkB,CAAC,UAAU,EAAE,eAAe;IAI9C,qBAAqB;CAGtB;;AAED,wBAAmC"}
1
+ {"version":3,"file":"GraphRegistry.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,cAAM,aAAa;IACjB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2C;IACxE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAChF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAChF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8D;IAC/F,OAAO,CAAC,gBAAgB,CAA8B;IAEtD,QAAQ,CACN,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,EACjC,KAAK,GAAE,KAAK,GAAG,SAAqB,EACpC,SAAS,GAAE,aAAa,CAAC,KAAK,CAAC,EAAO;IAMxC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;IAI/B,GAAG,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;IAIhD,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK;IAK7C,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE;IAMnC,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;IAcjE,KAAK,CAAC,KAAK,EAAE,KAAK;IAMlB,kBAAkB,CAAC,UAAU,EAAE,eAAe;IAI9C,qBAAqB;CAGtB;;AAED,wBAAmC"}
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
- import { Constructable } from '@Obsidian';
3
2
  import _Graph from './decorators/Graph';
4
3
  import _ObjectGraph from './graph/ObjectGraph';
5
- import _Provides from './Provides';
4
+ import _Provides from './decorators/provides/Provides';
6
5
  import { Inject as _Inject, Injectable as _Injectable } from './decorators/injectClass';
7
6
  import _obsidian from './Obsidian';
7
+ import { Constructable } from './types';
8
+ export * from './types';
8
9
  export declare const Graph: typeof _Graph;
9
10
  export declare const ObjectGraph: typeof _ObjectGraph;
10
11
  export declare const Provides: typeof _Provides;
@@ -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,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAE/C,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,SAAS,MAAM,YAAY,CAAC;AAGnC,eAAO,MAAM,KAAK,eAAS,CAAC;AAC5B,eAAO,MAAM,WAAW,qBAAe,CAAC;AACxC,eAAO,MAAM,QAAQ,kBAAY,CAAC;AAClC,eAAO,MAAM,UAAU,oBAAc,CAAC;AACtC,eAAO,MAAM,MAAM,gBAAU,CAAC;AAC9B,eAAO,MAAM,QAAQ,WAAkB,CAAC;AAGxC,eAAO,MAAM,eAAe,qDAEjB,cAAc,YAAY,CAAC,wCACU,CAAC;AAGjD,eAAO,MAAM,UAAU,wDAEZ,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,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAE/C,OAAO,SAAS,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,cAAc,SAAS,CAAC;AAExB,eAAO,MAAM,KAAK,eAAS,CAAC;AAC5B,eAAO,MAAM,WAAW,qBAAe,CAAC;AACxC,eAAO,MAAM,QAAQ,kBAAY,CAAC;AAClC,eAAO,MAAM,UAAU,oBAAc,CAAC;AACtC,eAAO,MAAM,MAAM,gBAAU,CAAC;AAC9B,eAAO,MAAM,QAAQ,WAAkB,CAAC;AAGxC,eAAO,MAAM,eAAe,qDAEjB,cAAc,YAAY,CAAC,wCACU,CAAC;AAGjD,eAAO,MAAM,UAAU,wDAEZ,cAAc,YAAY,CAAC,iDACC,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,4 +1,14 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
2
12
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
13
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
14
  };
@@ -7,10 +17,11 @@ exports.injectHook = exports.injectComponent = exports.Obsidian = exports.Inject
7
17
  var Graph_1 = __importDefault(require("./decorators/Graph"));
8
18
  var ObjectGraph_1 = __importDefault(require("./graph/ObjectGraph"));
9
19
  var ComponentInjector_1 = __importDefault(require("./injectors/components/ComponentInjector"));
10
- var Provides_1 = __importDefault(require("./Provides"));
20
+ var Provides_1 = __importDefault(require("./decorators/provides/Provides"));
11
21
  var injectClass_1 = require("./decorators/injectClass");
12
22
  var Obsidian_1 = __importDefault(require("./Obsidian"));
13
23
  var HookInjector_1 = __importDefault(require("./injectors/hooks/HookInjector"));
24
+ __exportStar(require("./types"), exports);
14
25
  exports.Graph = Graph_1.default;
15
26
  exports.ObjectGraph = ObjectGraph_1.default;
16
27
  exports.Provides = Provides_1.default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,6DAAwC;AACxC,oEAA+C;AAC/C,+FAAyE;AACzE,wDAAmC;AACnC,wDAAwF;AACxF,wDAAmC;AACnC,gFAA0D;AAE7C,QAAA,KAAK,GAAG,eAAM,CAAC;AACf,QAAA,WAAW,GAAG,qBAAY,CAAC;AAC3B,QAAA,QAAQ,GAAG,kBAAS,CAAC;AACrB,QAAA,UAAU,GAAG,wBAAW,CAAC;AACzB,QAAA,MAAM,GAAG,oBAAO,CAAC;AACjB,QAAA,QAAQ,GAAG,IAAI,kBAAS,EAAE,CAAC;AAExC,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;AAC3C,IAAM,eAAe,GAAG,UAC7B,QAAoC,EACpC,OAAoC,IACjC,OAAA,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAA3C,CAA2C,CAAC;AAHpC,QAAA,eAAe,mBAGqB;AAEjD,IAAM,YAAY,GAAG,IAAI,sBAAY,EAAE,CAAC;AACjC,IAAM,UAAU,GAAG,UACxB,IAA4B,EAC5B,OAAoC,IACjC,OAAA,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAlC,CAAkC,CAAC;AAH3B,QAAA,UAAU,cAGiB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,6DAAwC;AACxC,oEAA+C;AAC/C,+FAAyE;AACzE,4EAAuD;AACvD,wDAAwF;AACxF,wDAAmC;AACnC,gFAA0D;AAG1D,0CAAwB;AAEX,QAAA,KAAK,GAAG,eAAM,CAAC;AACf,QAAA,WAAW,GAAG,qBAAY,CAAC;AAC3B,QAAA,QAAQ,GAAG,kBAAS,CAAC;AACrB,QAAA,UAAU,GAAG,wBAAW,CAAC;AACzB,QAAA,MAAM,GAAG,oBAAO,CAAC;AACjB,QAAA,QAAQ,GAAG,IAAI,kBAAS,EAAE,CAAC;AAExC,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;AAC3C,IAAM,eAAe,GAAG,UAC7B,QAAoC,EACpC,OAAoC,IACjC,OAAA,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAA3C,CAA2C,CAAC;AAHpC,QAAA,eAAe,mBAGqB;AAEjD,IAAM,YAAY,GAAG,IAAI,sBAAY,EAAE,CAAC;AACjC,IAAM,UAAU,GAAG,UACxB,IAA4B,EAC5B,OAAoC,IACjC,OAAA,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAlC,CAAkC,CAAC;AAH3B,QAAA,UAAU,cAGiB"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { Constructable } from '@Obsidian';
3
2
  import 'reflect-metadata';
4
3
  import ObjectGraph from '../../graph/ObjectGraph';
4
+ import { Constructable } from '../../types';
5
5
  export default class ComponentInjector {
6
6
  inject<P>(Target: React.FunctionComponent<P>, Graph: Constructable<ObjectGraph>): React.FunctionComponent<Partial<P>>;
7
7
  private wrapComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,kBAAkB,CAAC;AAC1B,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAIlD,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,kBAAkB,CAAC;AAC1B,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAGlD,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 +1 @@
1
- {"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwC;AAExC,oFAA2D;AAC3D,4BAA0B;AAE1B,kEAA4C;AAC5C,wDAAkC;AAElC;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;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,4 +1,4 @@
1
- import ObjectGraph from 'src/graph/ObjectGraph';
1
+ import ObjectGraph from '../../graph/ObjectGraph';
2
2
  export default class PropsInjector<Props> {
3
3
  private graph;
4
4
  constructor(graph: ObjectGraph);
@@ -1 +1 @@
1
- {"version":3,"file":"PropsInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/PropsInjector.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,aAAa,CAAC,KAAK;IAC1B,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,WAAW;IAEtC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CAQ3C"}
1
+ {"version":3,"file":"PropsInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/PropsInjector.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,aAAa,CAAC,KAAK;IAC1B,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,WAAW;IAEtC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CAQ3C"}
@@ -1,5 +1,5 @@
1
- import { Constructable } from '@Obsidian';
2
- import ObjectGraph from 'src/graph/ObjectGraph';
1
+ import { Constructable } from '../../types';
2
+ import ObjectGraph from '../../graph/ObjectGraph';
3
3
  declare const _default: <P>(Graph: Constructable<ObjectGraph>, props?: Partial<P> | undefined) => ObjectGraph<unknown>;
4
4
  export default _default;
5
5
  //# sourceMappingURL=useGraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGraph.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,WAAW,MAAM,uBAAuB,CAAC;mCAItB,cAAc,WAAW,CAAC;AAApD,wBAOE"}
1
+ {"version":3,"file":"useGraph.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,WAAW,MAAM,yBAAyB,CAAC;mCAIxB,cAAc,WAAW,CAAC;AAApD,wBAOE"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGraph.js","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":";;;;;AACA,+BAA4C;AAE5C,qFAA+D;AAC/D,4EAAsD;AAEtD,mBAAe,UAAI,KAAiC,EAAE,KAAkB;IAC/D,IAAA,KAAK,GAAI,IAAA,gBAAQ,EAAC,uBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAjD,CAAkD;IAC9D,IAAA,iBAAS,EAAC;QACR,0BAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,cAAM,OAAA,0BAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,UAAC,CAAC,IAAK,OAAA,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAtB,CAAsB,CAAC,EAA9D,CAA8D,CAAC;IAC9E,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACf,CAAC,EAAC"}
1
+ {"version":3,"file":"useGraph.js","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":";;;;;AAAA,+BAA4C;AAG5C,qFAA+D;AAC/D,4EAAsD;AAEtD,mBAAe,UAAI,KAAiC,EAAE,KAAkB;IAC/D,IAAA,KAAK,GAAI,IAAA,gBAAQ,EAAC,uBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAjD,CAAkD;IAC9D,IAAA,iBAAS,EAAC;QACR,0BAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,cAAM,OAAA,0BAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,UAAC,CAAC,IAAK,OAAA,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAtB,CAAsB,CAAC,EAA9D,CAA8D,CAAC;IAC9E,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACf,CAAC,EAAC"}
@@ -1,5 +1,5 @@
1
- import { Constructable } from '@Obsidian';
2
- import ObjectGraph from 'src/graph/ObjectGraph';
1
+ import ObjectGraph from '../../graph/ObjectGraph';
2
+ import { Constructable } from '../../types';
3
3
  export default class HookInjector {
4
4
  inject<Args, Result>(hook: (args: Args) => Result, Graph: Constructable<ObjectGraph>): (args?: Partial<Args>) => Result;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HookInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAGhD,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAC5B,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAChC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM;CAMpC"}
1
+ {"version":3,"file":"HookInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAC5B,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAChC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM;CAMpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"HookInjector.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":";;;;;AAEA,oEAA8C;AAE9C;IAAA;IAUA,CAAC;IATC,6BAAM,GAAN,UACE,IAA4B,EAC5B,KAAiC;QAEjC,OAAO,UAAC,IAAoB;YAC1B,IAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,KAAK,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC;IACH,mBAAC;AAAD,CAAC,AAVD,IAUC;;AAED;IACE,kBAAoB,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;IAAG,CAAC;IAE1C,sBAAG,GAAH,UAAI,GAAQ,EAAE,QAAgB,EAAE,QAAa;QAC3C,OAAO,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnF,CAAC;IACH,eAAC;AAAD,CAAC,AAND,IAMC"}
1
+ {"version":3,"file":"HookInjector.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":";;;;;AAEA,oEAA8C;AAG9C;IAAA;IAUA,CAAC;IATC,6BAAM,GAAN,UACE,IAA4B,EAC5B,KAAiC;QAEjC,OAAO,UAAC,IAAoB;YAC1B,IAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,KAAK,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC;IACH,mBAAC;AAAD,CAAC,AAVD,IAUC;;AAED;IACE,kBAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAEpC,sBAAG,GAAH,UAAI,GAAQ,EAAE,QAAgB,EAAE,QAAa;QAC3C,OAAO,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnF,CAAC;IACH,eAAC;AAAD,CAAC,AAND,IAMC"}
@@ -0,0 +1,12 @@
1
+ export declare type Constructable<T> = {
2
+ new (...args: any): T;
3
+ };
4
+ export declare type Scope = string | number | symbol;
5
+ export declare type Constructor = {
6
+ new (...args: any[]): any;
7
+ };
8
+ export declare type ServiceLocator<Clazz> = {
9
+ [Key in keyof Clazz]: Function;
10
+ };
11
+ export declare type GraphInternals = 'retrieve' | 'name' | 'scope';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import ObjectGraph from '../src/graph/Graph';
2
- import { Constructable } from '../src/@types/obsidian';
2
+ import { Constructable } from '../src';
3
3
  declare class Index {
4
4
  mockGraphs(graphNameToGraph: Record<string, Constructable<ObjectGraph>>): void;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../testkit/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAOvD,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,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAY,MAAM,QAAQ,CAAC;AAMjD,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,yEAAsF;AAGtF,8BAAkC;AAElC,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,UAAsC,YAA0B,EAAE,KAAuB,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,CAAiB,CAAC;iBAC5C;gBACD,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACH,cAAC;QAAD,CAAC,AAR2B,CAAc,iCAAe,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":";;;;;;;;;;;;;;;;;AAAA,yEAAsF;AAEtF,8BAAiD;AAEjD,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,UAAsC,YAA0B,EAAE,KAAuB,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,CAAiB,CAAC;iBAC5C;gBACD,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACH,cAAC;QAAD,CAAC,AAR2B,CAAc,iCAAe,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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian-provide/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AAuClD,MAAM,CAAC,OAAO,UAAU,MAAM,gDAE7B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian-provide/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AA0ClD,MAAM,CAAC,OAAO,UAAU,MAAM,gDAE7B"}
@@ -21,7 +21,11 @@ var internalVisitor = {
21
21
  },
22
22
  };
23
23
  function convertProviderParamsToDestructuringAssignment(node) {
24
- node.params.fill((0, helpers_1.paramsToDestructuringAssignment)(node.params));
24
+ if (node.params.length === 0)
25
+ return;
26
+ var destructuredParams = (0, helpers_1.paramsToDestructuringAssignment)(node.params);
27
+ node.params.length = 0;
28
+ node.params.push(destructuredParams);
25
29
  }
26
30
  function saveUnmangledMethodNameInProviderArguments(node, decorator) {
27
31
  if ((0, helpers_1.providerIsNotNamed)(decorator)) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian-provide/index.ts"],"names":[],"mappings":";;AAGA,qCAMmB;AAEnB,IAAM,4BAA4B,GAAc;IAC9C,OAAO,EAAE;QACP,OAAO,EAAP,UAAQ,IAAuB;YAC7B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACjC,CAAC;KACF;CACF,CAAC;AAEF,IAAM,eAAe,GAAG;IACtB,WAAW,EAAE;QACX,KAAK,EAAL,UAAM,EAA+B;gBAA7B,IAAI,UAAA;YACV,IAAM,SAAS,GAAG,IAAA,8BAAoB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,IAAA,0BAAgB,EAAC,SAAS,CAAC,KAAK,UAAU,EAAE;gBAC9C,8CAA8C,CAAC,IAAI,CAAC,CAAC;gBACrD,0CAA0C,CAAC,IAAI,EAAE,SAAU,CAAC,CAAC;aAC9D;QACH,CAAC;KACF;CACF,CAAC;AAEF,SAAS,8CAA8C,CAAC,IAAiB;IACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAA,yCAA+B,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,0CAA0C,CAAC,IAAiB,EAAE,SAAoB;IACzF,IAAI,IAAA,4BAAkB,EAAC,SAAS,CAAC,EAAE;QACjC,IAAA,oCAA0B,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC7C;AACH,CAAC;AAED,SAAwB,MAAM;IAC5B,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAFD,yBAEC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian-provide/index.ts"],"names":[],"mappings":";;AAGA,qCAMmB;AAEnB,IAAM,4BAA4B,GAAc;IAC9C,OAAO,EAAE;QACP,OAAO,EAAP,UAAQ,IAAuB;YAC7B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACjC,CAAC;KACF;CACF,CAAC;AAEF,IAAM,eAAe,GAAG;IACtB,WAAW,EAAE;QACX,KAAK,EAAL,UAAM,EAA+B;gBAA7B,IAAI,UAAA;YACV,IAAM,SAAS,GAAG,IAAA,8BAAoB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,IAAA,0BAAgB,EAAC,SAAS,CAAC,KAAK,UAAU,EAAE;gBAC9C,8CAA8C,CAAC,IAAI,CAAC,CAAC;gBACrD,0CAA0C,CAAC,IAAI,EAAE,SAAU,CAAC,CAAC;aAC9D;QACH,CAAC;KACF;CACF,CAAC;AAEF,SAAS,8CAA8C,CAAC,IAAiB;IACvE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACrC,IAAM,kBAAkB,GAAG,IAAA,yCAA+B,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,0CAA0C,CAAC,IAAiB,EAAE,SAAoB;IACzF,IAAI,IAAA,4BAAkB,EAAC,SAAS,CAAC,EAAE;QACjC,IAAA,oCAA0B,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC7C;AACH,CAAC;AAED,SAAwB,MAAM;IAC5B,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAFD,yBAEC"}
@@ -9,8 +9,18 @@ interface DependenciesProps {
9
9
  @Graph()
10
10
  class DependenciesGraph extends ObjectGraph<DependenciesProps> {
11
11
  @Provides()
12
- myText(): string {
13
- return 'Hello injected';
12
+ firstDependency(): string {
13
+ return 'firstDependency';
14
+ }
15
+
16
+ @Provides()
17
+ secondDependency(): string {
18
+ return 'secondDependency';
19
+ }
20
+
21
+ @Provides()
22
+ myText(firstDependency: string, secondDependency: string): string {
23
+ return `Hello injected from ${firstDependency} + ${secondDependency}`;
14
24
  }
15
25
  }
16
26
 
@@ -24,5 +34,4 @@ const MyInjectedComponent: React.FunctionComponent<DependenciesProps> = ({
24
34
  );
25
35
  };
26
36
 
27
- // export default injectComponent(MyInjectedComponent, DependenciesGraph);
28
37
  export default injectComponent(MyInjectedComponent, DependenciesGraph);
@@ -38,8 +38,5 @@
38
38
  "types": ["reflect-metadata", "jest"],
39
39
  "emitDecoratorMetadata": true,
40
40
  "baseUrl": "./",
41
- "paths": {
42
- "@Obsidian": ["../src/@types/obsidian.d.ts"]
43
- }
44
41
  }
45
42
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-obsidian",
3
- "version": "0.0.2",
3
+ "version": "0.0.6",
4
4
  "description": "Dependency injection framework for React and React Native applications",
5
5
  "main": "src/index.ts",
6
6
  "directories": {
package/src/Obsidian.ts CHANGED
@@ -1,10 +1,13 @@
1
- import { Constructable, ServiceLocator } from '@Obsidian';
2
1
  import graphRegistry from './graph/registry/GraphRegistry';
3
2
  import ObjectGraph from './graph/ObjectGraph';
4
3
  import { GraphMiddleware } from './graph/registry/GraphMiddleware';
4
+ import { Constructable, GraphInternals, ServiceLocator } from './types';
5
5
 
6
6
  export default class Obsidian {
7
- obtain<T extends ObjectGraph<P>, P = any>(Graph: Constructable<T>, props?: P): ServiceLocator<T> {
7
+ obtain<T extends ObjectGraph<P>, P = any>(
8
+ Graph: Constructable<T>,
9
+ props?: P,
10
+ ): ServiceLocator<Omit<T, GraphInternals>> {
8
11
  return graphRegistry.resolve(Graph, props) as unknown as ServiceLocator<T>;
9
12
  }
10
13
 
@@ -1,4 +1,4 @@
1
- import { Scope } from '@Obsidian';
1
+ import { Scope } from './types';
2
2
 
3
3
  class ScopedValuesRegistry {
4
4
  private readonly values: Map<string, any> = new Map();
@@ -1,4 +1,4 @@
1
- import { Constructable, Scope } from '@Obsidian';
1
+ import { Constructable, Scope } from '../types';
2
2
  import 'reflect-metadata';
3
3
  import graphRegistry from '../graph/registry/GraphRegistry';
4
4
  import ObjectGraph from '../graph/ObjectGraph';
@@ -1,4 +1,4 @@
1
- import { Constructable } from '@Obsidian';
1
+ import { Constructable } from '../types';
2
2
  import graphRegistry from '../graph/registry/GraphRegistry';
3
3
  import ObjectGraph from '../graph/ObjectGraph';
4
4
 
@@ -0,0 +1,11 @@
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
+ }
@@ -1,6 +1,7 @@
1
- import { Scope } from '@Obsidian';
2
- import Graph from './graph/Graph';
3
- import providedPropertiesStore from './ProvidedPropertiesStore';
1
+ import { Scope } from '../../types';
2
+ import Graph from '../../graph/Graph';
3
+ import providedPropertiesStore from '../../ProvidedPropertiesStore';
4
+ import makeSingleton from './PropertyDescriptorToSingleton';
4
5
 
5
6
  interface ProvidesParams {
6
7
  scope?: Scope;
@@ -10,7 +11,7 @@ interface ProvidesParams {
10
11
  function Provides({ name }: Partial<ProvidesParams> = {}) {
11
12
  return function provide(graph: Graph, propertyKey: string, descriptor: PropertyDescriptor) {
12
13
  providedPropertiesStore.set(graph, propertyKey, name!);
13
- return descriptor;
14
+ return makeSingleton(descriptor);
14
15
  };
15
16
  }
16
17
  export default Provides;
@@ -1,4 +1,4 @@
1
- import { Scope } from '@Obsidian';
1
+ import { Scope } from '../types';
2
2
  import Graph from './Graph';
3
3
  import PropertyRetriever from './PropertyRetriever';
4
4
 
@@ -1,4 +1,4 @@
1
- import { Constructable } from '@Obsidian';
1
+ import { Constructable } from '../../types';
2
2
  import Graph from '../Graph';
3
3
  import { GraphMiddleware, ResolveChain } from './GraphMiddleware';
4
4
 
@@ -1,4 +1,4 @@
1
- import { Constructable } from '@Obsidian';
1
+ import { Constructable } from '../../types';
2
2
  import Graph from '../Graph';
3
3
 
4
4
  export abstract class GraphMiddleware {
@@ -1,4 +1,4 @@
1
- import { Constructable } from '@Obsidian';
1
+ import { Constructable } from '../../types';
2
2
  import Graph from '../Graph';
3
3
  import DefaultGraphMiddleware from './DefaultGraphResolver';
4
4
  import { GraphMiddleware } from './GraphMiddleware';
@@ -1,4 +1,4 @@
1
- import { Constructable, Scope } from '@Obsidian';
1
+ import { Constructable, Scope } from '../../types';
2
2
  import Graph from '../Graph';
3
3
  import { GraphMiddleware } from './GraphMiddleware';
4
4
  import GraphMiddlewareChain from './GraphMiddlewareChain';
package/src/index.ts CHANGED
@@ -1,12 +1,14 @@
1
1
  import React from 'react';
2
- import { Constructable } from '@Obsidian';
3
2
  import _Graph from './decorators/Graph';
4
3
  import _ObjectGraph from './graph/ObjectGraph';
5
4
  import ComponentInjector from './injectors/components/ComponentInjector';
6
- import _Provides from './Provides';
5
+ import _Provides from './decorators/provides/Provides';
7
6
  import { Inject as _Inject, Injectable as _Injectable } from './decorators/injectClass';
8
7
  import _obsidian from './Obsidian';
9
8
  import HookInjector from './injectors/hooks/HookInjector';
9
+ import { Constructable } from './types';
10
+
11
+ export * from './types';
10
12
 
11
13
  export const Graph = _Graph;
12
14
  export const ObjectGraph = _ObjectGraph;
@@ -1,10 +1,10 @@
1
1
  import React, { useState } from 'react';
2
- import { Constructable } from '@Obsidian';
3
2
  import hoistNonReactStatics from 'hoist-non-react-statics';
4
3
  import 'reflect-metadata';
5
4
  import ObjectGraph from '../../graph/ObjectGraph';
6
5
  import PropsInjector from './PropsInjector';
7
6
  import useGraph from './useGraph';
7
+ import { Constructable } from '../../types';
8
8
 
9
9
  export default class ComponentInjector {
10
10
  inject<P>(
@@ -1,4 +1,4 @@
1
- import ObjectGraph from 'src/graph/ObjectGraph';
1
+ import ObjectGraph from '../../graph/ObjectGraph';
2
2
 
3
3
  export default class PropsInjector<Props> {
4
4
  constructor(private graph: ObjectGraph) {}
@@ -1,6 +1,6 @@
1
- import { Constructable } from '@Obsidian';
2
1
  import { useEffect, useState } from 'react';
3
- import ObjectGraph from 'src/graph/ObjectGraph';
2
+ import { Constructable } from '../../types';
3
+ import ObjectGraph from '../../graph/ObjectGraph';
4
4
  import graphRegistry from '../../graph/registry/GraphRegistry';
5
5
  import referenceCounter from '../../ReferenceCounter';
6
6
 
@@ -1,6 +1,7 @@
1
- import { Constructable } from '@Obsidian';
2
- import ObjectGraph from 'src/graph/ObjectGraph';
1
+ import ObjectGraph from '../../graph/ObjectGraph';
2
+ import Graph from '../../graph/Graph';
3
3
  import useGraph from '../components/useGraph';
4
+ import { Constructable } from '../../types';
4
5
 
5
6
  export default class HookInjector {
6
7
  inject<Args, Result>(
@@ -15,7 +16,7 @@ export default class HookInjector {
15
16
  }
16
17
 
17
18
  class Injector implements ProxyHandler<any> {
18
- constructor(private graph: ObjectGraph) {}
19
+ constructor(private graph: Graph) {}
19
20
 
20
21
  get(obj: any, property: string, receiver: any): any {
21
22
  return property in obj ? obj[property] : this.graph.retrieve(property, receiver);
@@ -0,0 +1,13 @@
1
+ export type Constructable<T> = {
2
+ new(...args: any): T;
3
+ };
4
+
5
+ export type Scope = string | number | symbol;
6
+
7
+ export type Constructor = { new(...args: any[]): any };
8
+
9
+ export type ServiceLocator<Clazz> = {
10
+ [Key in keyof Clazz]: Function
11
+ };
12
+
13
+ export type GraphInternals = 'retrieve' | 'name' | 'scope';
package/testkit/index.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { GraphMiddleware, ResolveChain } from '../src/graph/registry/GraphMiddleware';
2
2
  import ObjectGraph from '../src/graph/Graph';
3
- import { Constructable } from '../src/@types/obsidian';
4
- import { Obsidian } from '../src';
3
+ import { Constructable, Obsidian } from '../src';
5
4
 
6
5
  beforeEach(() => {
7
6
  Obsidian.clearGraphMiddlewares();
@@ -30,7 +30,10 @@ const internalVisitor = {
30
30
  };
31
31
 
32
32
  function convertProviderParamsToDestructuringAssignment(node: ClassMethod) {
33
- node.params.fill(paramsToDestructuringAssignment(node.params));
33
+ if (node.params.length === 0) return;
34
+ const destructuredParams = paramsToDestructuringAssignment(node.params);
35
+ node.params.length = 0;
36
+ node.params.push(destructuredParams);
34
37
  }
35
38
 
36
39
  function saveUnmangledMethodNameInProviderArguments(node: ClassMethod, decorator: Decorator) {
@@ -35,9 +35,6 @@
35
35
  "experimentalDecorators": true,
36
36
  "emitDecoratorMetadata": true,
37
37
  "types": ["reflect-metadata", "jest"],
38
- "baseUrl": "./",
39
- "paths": {
40
- "@Obsidian": ["./src/@types/obsidian.d.ts"]
41
- },
38
+ "baseUrl": "./"
42
39
  }
43
40
  }
package/.nvmrc DELETED
@@ -1 +0,0 @@
1
- 12
@@ -1 +0,0 @@
1
- {"version":3,"file":"Provides.d.ts","sourceRoot":"","sources":["../../src/Provides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,eAAe,CAAC;AAGlC,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iBAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAE,OAAO,CAAC,cAAc,CAAM,WACvB,KAAK,eAAe,MAAM,cAAc,kBAAkB,wBAI1F;AACD,eAAe,QAAQ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Provides.js","sourceRoot":"","sources":["../../src/Provides.ts"],"names":[],"mappings":";;;;;AAEA,sFAAgE;AAOhE,SAAS,QAAQ,CAAC,EAAsC;QAAtC,qBAAoC,EAAE,KAAA,EAApC,IAAI,UAAA;IACtB,OAAO,SAAS,OAAO,CAAC,KAAY,EAAE,WAAmB,EAAE,UAA8B;QACvF,iCAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,IAAK,CAAC,CAAC;QACvD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AACD,kBAAe,QAAQ,CAAC"}
@@ -1,19 +0,0 @@
1
- import ObjectGraph from '../graph/ObjectGraph';
2
-
3
- type Constructable<T> = {
4
- new(...args: any): T;
5
- };
6
-
7
- type GraphClass<T extends ObjectGraph<P>, P> = {
8
- new(props?: P): T;
9
- };
10
-
11
- type Scope = string | number | symbol;
12
-
13
- type Constructor = { new(...args: any[]): any };
14
-
15
- type GraphType = { new(...args: any[]): ObjectGraph };
16
-
17
- type ServiceLocator<Clazz> = {
18
- [Key in keyof Clazz]: Function
19
- };