react-obsidian 0.0.15 → 0.0.18

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 (36) hide show
  1. package/.eslintrc.json +9 -3
  2. package/README.md +7 -1
  3. package/babel.config.js +2 -2
  4. package/dist/src/Obsidian.d.ts +1 -1
  5. package/dist/src/Obsidian.d.ts.map +1 -1
  6. package/dist/src/Obsidian.js +2 -2
  7. package/dist/src/Obsidian.js.map +1 -1
  8. package/dist/src/graph/ObjectGraph.d.ts +2 -0
  9. package/dist/src/graph/ObjectGraph.d.ts.map +1 -1
  10. package/dist/src/graph/ObjectGraph.js +6 -1
  11. package/dist/src/graph/ObjectGraph.js.map +1 -1
  12. package/dist/src/graph/registry/GraphRegistry.d.ts +1 -0
  13. package/dist/src/graph/registry/GraphRegistry.d.ts.map +1 -1
  14. package/dist/src/graph/registry/GraphRegistry.js +5 -0
  15. package/dist/src/graph/registry/GraphRegistry.js.map +1 -1
  16. package/dist/src/index.d.ts +1 -0
  17. package/dist/src/index.d.ts.map +1 -1
  18. package/dist/src/index.js +8 -2
  19. package/dist/src/index.js.map +1 -1
  20. package/dist/src/injectors/class/LazyInjector.d.ts +2 -1
  21. package/dist/src/injectors/class/LazyInjector.d.ts.map +1 -1
  22. package/dist/src/injectors/class/LazyInjector.js +2 -2
  23. package/dist/src/injectors/class/LazyInjector.js.map +1 -1
  24. package/dist/src/injectors/components/ComponentInjector.js +5 -1
  25. package/dist/src/injectors/components/ComponentInjector.js.map +1 -1
  26. package/dist/testkit/index.d.ts +6 -5
  27. package/dist/testkit/index.d.ts.map +1 -1
  28. package/dist/testkit/index.js +18 -11
  29. package/dist/testkit/index.js.map +1 -1
  30. package/package.json +11 -10
  31. package/src/Obsidian.ts +2 -2
  32. package/src/graph/ObjectGraph.ts +7 -0
  33. package/src/graph/registry/GraphRegistry.ts +6 -0
  34. package/src/index.ts +2 -0
  35. package/src/injectors/class/LazyInjector.ts +3 -2
  36. package/testkit/index.ts +12 -13
package/.eslintrc.json CHANGED
@@ -24,7 +24,8 @@
24
24
  "plugins": [
25
25
  "react",
26
26
  "@typescript-eslint",
27
- "import-newlines"
27
+ "import-newlines",
28
+ "unused-imports"
28
29
  ],
29
30
  "rules": {
30
31
  "max-len": ["error", {"code": 115}],
@@ -82,8 +83,13 @@
82
83
  "@typescript-eslint/quotes": ["error", "single", {"avoidEscape": true, "allowTemplateLiterals": true}],
83
84
  "@typescript-eslint/lines-between-class-members": "off",
84
85
  "@typescript-eslint/no-explicit-any": "off",
85
- "@typescript-eslint/no-unused-vars": "error",
86
- "import/prefer-default-export": "off"
86
+ "import/prefer-default-export": "off",
87
+ "@typescript-eslint/no-unused-vars": "off",
88
+ "unused-imports/no-unused-imports": "error",
89
+ "unused-imports/no-unused-vars": [
90
+ "error",
91
+ { "vars": "all", "varsIgnorePattern": "^_", "args": "after-used", "argsIgnorePattern": "^_" }
92
+ ]
87
93
  },
88
94
  "settings": {
89
95
  "import/resolver": {
package/README.md CHANGED
@@ -139,7 +139,7 @@ class Presenter {
139
139
  }
140
140
  ```
141
141
 
142
- TypeScript's compiler won't let you construct the class without providing the argument `anotherString` as it's not optional.
142
+ TypeScript's compiler won't let you construct the class without providing the argument `biLogger` as it's not optional.
143
143
  If you want to be able to instantiate the class yourself without providing arguments, you'll also need to declare a constructor overload that receives optional arguments.
144
144
 
145
145
  ```typescript
@@ -148,6 +148,9 @@ class Presenter {
148
148
  constructor(biLogger?: BiLogger);
149
149
  constructor(@Inject() public biLogger: BiLogger) { }
150
150
  }
151
+
152
+ // Now you can instantiate the class without providing it's constructor dependencies
153
+ const presenter = new Presenter();
151
154
  ```
152
155
 
153
156
  ### Obtaining dependencies from a graph
@@ -282,6 +285,9 @@ module.exports = {
282
285
  ### Jest
283
286
  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.
284
287
 
288
+ ### Peer Dependencies
289
+ Obsidian has a peer dependency on `lodash`.
290
+
285
291
  ## Related
286
292
 
287
293
  * [InversifyJS](https://github.com/inversify/InversifyJS)
package/babel.config.js CHANGED
@@ -1,13 +1,13 @@
1
1
  module.exports = {
2
2
  presets: [
3
- ['@babel/preset-env', { targets: { node: 'current' } }],
3
+ ['@babel/preset-env', { targets: { node: 'current' }}],
4
4
  ['@babel/preset-typescript', {'onlyRemoveTypeImports': true}],
5
5
  '@babel/preset-react',
6
6
  ],
7
7
  plugins: [
8
8
  `${__dirname}/dist/transformers/babel-plugin-obsidian`,
9
9
  ['@babel/plugin-proposal-decorators', { legacy: true }],
10
- ['@babel/plugin-proposal-class-properties', { loose: true }],
10
+ '@babel/plugin-proposal-class-properties',
11
11
  'babel-plugin-parameter-decorator'
12
12
  ],
13
13
  };
@@ -3,7 +3,7 @@ import { Constructable, GraphInternals, ServiceLocator } from './types';
3
3
  import { GraphMiddleware } from './graph/registry/GraphMiddleware';
4
4
  export default class Obsidian {
5
5
  obtain<T extends ObjectGraph<P>, P = any>(Graph: Constructable<T>, props?: P): ServiceLocator<Omit<T, GraphInternals>>;
6
- inject<T extends object>(target: T): object;
6
+ inject<T extends object>(target: T, graph?: ObjectGraph): object;
7
7
  addGraphMiddleware(middleware: GraphMiddleware): void;
8
8
  clearGraphMiddlewares(): void;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Obsidian.d.ts","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,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,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC;IAIlC,kBAAkB,CAAC,UAAU,EAAE,eAAe;IAI9C,qBAAqB;CAGtB"}
1
+ {"version":3,"file":"Obsidian.d.ts","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,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,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,WAAW;IAIvD,kBAAkB,CAAC,UAAU,EAAE,eAAe;IAI9C,qBAAqB;CAGtB"}
@@ -11,8 +11,8 @@ var Obsidian = /** @class */ (function () {
11
11
  Obsidian.prototype.obtain = function (Graph, props) {
12
12
  return GraphRegistry_1.default.resolve(Graph, props);
13
13
  };
14
- Obsidian.prototype.inject = function (target) {
15
- return LazyInjector_1.default.inject(target);
14
+ Obsidian.prototype.inject = function (target, graph) {
15
+ return LazyInjector_1.default.inject(target, graph);
16
16
  };
17
17
  Obsidian.prototype.addGraphMiddleware = function (middleware) {
18
18
  GraphRegistry_1.default.addGraphMiddleware(middleware);
@@ -1 +1 @@
1
- {"version":3,"file":"Obsidian.js","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":";;;;;AAAA,iFAA2D;AAI3D,gFAA0D;AAE1D;IAAA;IAmBA,CAAC;IAlBC,yBAAM,GAAN,UACE,KAAuB,EACvB,KAAS;QAET,OAAO,uBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAiC,CAAC;IAC7E,CAAC;IAED,yBAAM,GAAN,UAAyB,MAAS;QAChC,OAAO,sBAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,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,AAnBD,IAmBC"}
1
+ {"version":3,"file":"Obsidian.js","sourceRoot":"","sources":["../../src/Obsidian.ts"],"names":[],"mappings":";;;;;AAAA,iFAA2D;AAI3D,gFAA0D;AAE1D;IAAA;IAmBA,CAAC;IAlBC,yBAAM,GAAN,UACE,KAAuB,EACvB,KAAS;QAET,OAAO,uBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAiC,CAAC;IAC7E,CAAC;IAED,yBAAM,GAAN,UAAyB,MAAS,EAAE,KAAmB;QACrD,OAAO,sBAAY,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,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,AAnBD,IAmBC"}
@@ -1,4 +1,5 @@
1
1
  import { Graph } from './Graph';
2
+ import { Constructable } from '../types';
2
3
  export declare abstract class ObjectGraph<T = unknown> implements Graph {
3
4
  protected _props?: T | undefined;
4
5
  private propertyRetriever;
@@ -6,4 +7,5 @@ export declare abstract class ObjectGraph<T = unknown> implements Graph {
6
7
  constructor(_props?: T | undefined);
7
8
  retrieve<Dependency>(property: string, receiver?: unknown): Dependency | undefined;
8
9
  }
10
+ export declare function isGraph(object: Constructable<ObjectGraph> | any): object is Constructable<ObjectGraph>;
9
11
  //# sourceMappingURL=ObjectGraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IAQjD,SAAS,CAAC,MAAM,CAAC;IAP7B,OAAO,CAAC,iBAAiB,CAA+B;IAExD,IACI,IAAI,IAAI,MAAM,CAEjB;gBAEqB,MAAM,CAAC,eAAG;IAIhC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS;CAGnF"}
1
+ {"version":3,"file":"ObjectGraph.d.ts","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,8BAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,KAAK;IAQjD,SAAS,CAAC,MAAM,CAAC;IAP7B,OAAO,CAAC,iBAAiB,CAA+B;IAExD,IACI,IAAI,IAAI,MAAM,CAEjB;gBAEqB,MAAM,CAAC,eAAG;IAIhC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS;CAGnF;AAID,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,CAEtG"}
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.ObjectGraph = void 0;
15
+ exports.isGraph = exports.ObjectGraph = void 0;
16
16
  var lodash_1 = require("lodash");
17
17
  var Memoize_1 = __importDefault(require("../decorators/Memoize"));
18
18
  var ProviderBinder_1 = require("./ProviderBinder");
@@ -41,4 +41,9 @@ var ObjectGraph = /** @class */ (function () {
41
41
  return ObjectGraph;
42
42
  }());
43
43
  exports.ObjectGraph = ObjectGraph;
44
+ Reflect.set(ObjectGraph, 'typeDiscriminator', 'ObjectGraph');
45
+ function isGraph(object) {
46
+ return Reflect.get(object, 'typeDiscriminator') === 'ObjectGraph';
47
+ }
48
+ exports.isGraph = isGraph;
44
49
  //# sourceMappingURL=ObjectGraph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,kEAA4C;AAC5C,mDAAiD;AAEjD,0EAAoD;AAEpD;IAQE,qBAAsB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAPxB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;QAQtD,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAND,sBAAI,6BAAI;aAAR;YACE,OAAO,IAAA,iBAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;;;OAAA;IAMD,8BAAQ,GAAR,UAAqB,QAAgB,EAAE,QAAkB;QACvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAA2B,CAAC;IACvF,CAAC;IAVD;QADC,IAAA,iBAAO,GAAE;;;2CAGT;IASH,kBAAC;CAAA,AAfD,IAeC;AAfqB,kCAAW"}
1
+ {"version":3,"file":"ObjectGraph.js","sourceRoot":"","sources":["../../../src/graph/ObjectGraph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,kEAA4C;AAC5C,mDAAiD;AAEjD,0EAAoD;AAGpD;IAQE,qBAAsB,MAAU;QAAV,WAAM,GAAN,MAAM,CAAI;QAPxB,sBAAiB,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,CAAC;QAQtD,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAND,sBAAI,6BAAI;aAAR;YACE,OAAO,IAAA,iBAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;;;OAAA;IAMD,8BAAQ,GAAR,UAAqB,QAAgB,EAAE,QAAkB;QACvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAA2B,CAAC;IACvF,CAAC;IAVD;QADC,IAAA,iBAAO,GAAE;;;2CAGT;IASH,kBAAC;CAAA,AAfD,IAeC;AAfqB,kCAAW;AAiBjC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;AAE7D,SAAgB,OAAO,CAAC,MAAwC;IAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,aAAa,CAAC;AACpE,CAAC;AAFD,0BAEC"}
@@ -18,6 +18,7 @@ export declare class GraphRegistry {
18
18
  clear(graph: Graph): void;
19
19
  addGraphMiddleware(middleware: Middleware<Graph>): void;
20
20
  clearGraphMiddlewares(): void;
21
+ reset(): void;
21
22
  }
22
23
  declare const _default: GraphRegistry;
23
24
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"GraphRegistry.d.ts","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA+C;IACrF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAChF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8D;IAC/F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAE/D,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,GAAE,aAAa,CAAC,KAAK,CAAC,EAAO;IAIlF,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE;IAMnC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAIrC,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;IASjE,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,WAAW;IAInB,KAAK,CAAC,KAAK,EAAE,KAAK;IAOlB,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;IAIhD,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,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA+C;IACrF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAChF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8D;IAC/F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAE/D,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,GAAE,aAAa,CAAC,KAAK,CAAC,EAAO;IAIlF,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE;IAMnC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAIrC,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;IASjE,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,WAAW;IAInB,KAAK,CAAC,KAAK,EAAE,KAAK;IAOlB,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;IAIhD,qBAAqB;IAIrB,KAAK;CAKN;;AAED,wBAAmC"}
@@ -65,6 +65,11 @@ var GraphRegistry = /** @class */ (function () {
65
65
  GraphRegistry.prototype.clearGraphMiddlewares = function () {
66
66
  this.graphMiddlewares.clear();
67
67
  };
68
+ GraphRegistry.prototype.reset = function () {
69
+ this.instanceToConstructor.clear();
70
+ this.constructorToInstance.clear();
71
+ this.nameToInstance.clear();
72
+ };
68
73
  return GraphRegistry;
69
74
  }());
70
75
  exports.GraphRegistry = GraphRegistry;
@@ -1 +1 @@
1
- {"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphRegistry.js","sourceRoot":"","sources":["../../../../src/graph/registry/GraphRegistry.ts"],"names":[],"mappings":"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"}
@@ -16,4 +16,5 @@ export { GraphResolveChain as ResolveChain } from './graph/registry/GraphResolve
16
16
  export declare const Obsidian: _Obsidian;
17
17
  export declare const injectComponent: <P>(Target: React.FunctionComponent<P>, Graph: Constructable<_ObjectGraph>) => React.FunctionComponent<Partial<P>>;
18
18
  export declare const injectHook: <Args, Result>(hook: (args: Args) => Result, Graph: Constructable<_ObjectGraph>) => (args?: Partial<Args> | undefined) => Result;
19
+ export { testKit } from '../testkit';
19
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,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"}
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
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -13,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
14
18
  };
15
19
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.injectHook = exports.injectComponent = exports.Obsidian = exports.GraphMiddleware = exports.LazyInject = exports.Inject = exports.Injectable = exports.Provides = exports.ObjectGraph = exports.Singleton = exports.Graph = void 0;
20
+ 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
21
  var ComponentInjector_1 = __importDefault(require("./injectors/components/ComponentInjector"));
18
22
  var Obsidian_1 = __importDefault(require("./Obsidian"));
19
23
  var HookInjector_1 = __importDefault(require("./injectors/hooks/HookInjector"));
@@ -41,4 +45,6 @@ exports.injectComponent = injectComponent;
41
45
  var hookInjector = new HookInjector_1.default();
42
46
  var injectHook = function (hook, Graph) { return hookInjector.inject(hook, Graph); };
43
47
  exports.injectHook = injectHook;
48
+ var testkit_1 = require("../testkit");
49
+ Object.defineProperty(exports, "testKit", { enumerable: true, get: function () { return testkit_1.testKit; } });
44
50
  //# 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,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"}
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"}
@@ -1,6 +1,7 @@
1
+ import { ObjectGraph } from '../../graph/ObjectGraph';
1
2
  export declare const GRAPH_INSTANCE_NAME_KEY = "GRAPH_INSTANCE_NAME";
2
3
  declare class LazyInjector<T extends object> {
3
- inject(target: T): T;
4
+ inject(target: T, sourceGraph?: ObjectGraph): T;
4
5
  private getGraphInstance;
5
6
  }
6
7
  declare const _default: LazyInjector<object>;
@@ -1 +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"}
1
+ {"version":3,"file":"LazyInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/class/LazyInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAItD,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAE7D,cAAM,YAAY,CAAC,CAAC,SAAS,MAAM;IACjC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,CAAC;IAS/C,OAAO,CAAC,gBAAgB;CAIzB;;AAED,wBAAkC"}
@@ -10,9 +10,9 @@ exports.GRAPH_INSTANCE_NAME_KEY = 'GRAPH_INSTANCE_NAME';
10
10
  var LazyInjector = /** @class */ (function () {
11
11
  function LazyInjector() {
12
12
  }
13
- LazyInjector.prototype.inject = function (target) {
13
+ LazyInjector.prototype.inject = function (target, sourceGraph) {
14
14
  var injectionMetadata = new InjectionMetadata_1.default();
15
- var graph = this.getGraphInstance(target);
15
+ var graph = sourceGraph !== null && sourceGraph !== void 0 ? sourceGraph : this.getGraphInstance(target);
16
16
  injectionMetadata.getLazyPropertiesToInject(target.constructor).forEach(function (key) {
17
17
  Reflect.set(target, key, graph.retrieve(key));
18
18
  });
@@ -1 +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
+ {"version":3,"file":"LazyInjector.js","sourceRoot":"","sources":["../../../../src/injectors/class/LazyInjector.ts"],"names":[],"mappings":";;;;;;AACA,qFAA+D;AAC/D,0EAAoD;AAEvC,QAAA,uBAAuB,GAAG,qBAAqB,CAAC;AAE7D;IAAA;IAcA,CAAC;IAbC,6BAAM,GAAN,UAAO,MAAS,EAAE,WAAyB;QACzC,IAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;QAClD,IAAM,KAAK,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3D,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,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
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
+ {"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,8 @@
1
- import { ObjectGraph, Constructable } from '../src';
2
- declare class Index {
3
- mockGraphs(graphNameToGraph: Record<string, Constructable<ObjectGraph>>): void;
1
+ import { ObjectGraph } from '../src/graph/ObjectGraph';
2
+ import { Constructable } from '../src/types';
3
+ declare class TestKit {
4
+ mockGraphs(graphNameToGraph: Record<string, Constructable<ObjectGraph> | ((props: any) => ObjectGraph)>): void;
4
5
  }
5
- declare const _default: Index;
6
- export default _default;
6
+ export declare const testKit: TestKit;
7
+ export {};
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../testkit/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,aAAa,EAGd,MAAM,QAAQ,CAAC;AAMhB,cAAM,KAAK;IACT,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CAYxE;;AAED,wBAA2B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../testkit/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAQ7C,cAAM,OAAO;IACJ,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,WAAW,CAAC,CAAC;CAY/G;AAED,eAAO,MAAM,OAAO,SAAgB,CAAC"}
@@ -14,15 +14,22 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
17
20
  Object.defineProperty(exports, "__esModule", { value: true });
18
- var src_1 = require("../src");
21
+ exports.testKit = void 0;
22
+ var ObjectGraph_1 = require("../src/graph/ObjectGraph");
23
+ var GraphMiddleware_1 = require("../src/graph/registry/GraphMiddleware");
24
+ var GraphRegistry_1 = __importDefault(require("../src/graph/registry/GraphRegistry"));
19
25
  beforeEach(function () {
20
- src_1.Obsidian.clearGraphMiddlewares();
26
+ GraphRegistry_1.default.clearGraphMiddlewares();
27
+ GraphRegistry_1.default.reset();
21
28
  });
22
- var Index = /** @class */ (function () {
23
- function Index() {
29
+ var TestKit = /** @class */ (function () {
30
+ function TestKit() {
24
31
  }
25
- Index.prototype.mockGraphs = function (graphNameToGraph) {
32
+ TestKit.prototype.mockGraphs = function (graphNameToGraph) {
26
33
  var graphMiddleware = new /** @class */ (function (_super) {
27
34
  __extends(class_1, _super);
28
35
  function class_1() {
@@ -30,16 +37,16 @@ var Index = /** @class */ (function () {
30
37
  }
31
38
  class_1.prototype.resolve = function (resolveChain, Graph, props) {
32
39
  if (graphNameToGraph[Graph.name]) {
33
- var TheGraph = graphNameToGraph[Graph.name];
34
- return new TheGraph(props);
40
+ var GraphOrGenerator = graphNameToGraph[Graph.name];
41
+ return (0, ObjectGraph_1.isGraph)(GraphOrGenerator) ? new GraphOrGenerator(props) : GraphOrGenerator(props);
35
42
  }
36
43
  return resolveChain.proceed(Graph, props);
37
44
  };
38
45
  return class_1;
39
- }(src_1.GraphMiddleware))();
40
- src_1.Obsidian.addGraphMiddleware(graphMiddleware);
46
+ }(GraphMiddleware_1.GraphMiddleware))();
47
+ GraphRegistry_1.default.addGraphMiddleware(graphMiddleware);
41
48
  };
42
- return Index;
49
+ return TestKit;
43
50
  }());
44
- exports.default = new Index();
51
+ exports.testKit = new TestKit();
45
52
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../testkit/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,8BAKgB;AAEhB,UAAU,CAAC;IACT,cAAQ,CAAC,qBAAqB,EAAE,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH;IAAA;IAaA,CAAC;IAZC,0BAAU,GAAV,UAAW,gBAA4D;QACrE,IAAM,eAAe,GAAG;YAAkB,2BAAe;YAA7B;;YAQ5B,CAAC;YAPC,yBAAO,GAAP,UAAe,YAA+B,EAAE,KAAiC,EAAE,KAAa;gBAC9F,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;oBAChC,IAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC9C,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC5B;gBACD,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACH,cAAC;QAAD,CAAC,AAR2B,CAAc,qBAAe,IAQtD,CAAC;QACJ,cAAQ,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IACH,YAAC;AAAD,CAAC,AAbD,IAaC;AAED,kBAAe,IAAI,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../testkit/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,wDAAgE;AAChE,yEAAwE;AAExE,sFAAgE;AAEhE,UAAU,CAAC;IACT,uBAAa,CAAC,qBAAqB,EAAE,CAAC;IACtC,uBAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH;IAAA;IAaA,CAAC;IAZQ,4BAAU,GAAjB,UAAkB,gBAA4F;QAC5G,IAAM,eAAe,GAAG;YAAkB,2BAAe;YAA7B;;YAQ5B,CAAC;YAPC,yBAAO,GAAP,UAAe,YAA+B,EAAE,KAAiC,EAAE,KAAa;gBAC9F,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;oBAChC,IAAM,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtD,OAAO,IAAA,qBAAO,EAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;iBAC1F;gBACD,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACH,cAAC;QAAD,CAAC,AAR2B,CAAc,iCAAe,IAQtD,CAAC;QACJ,uBAAa,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;IACH,cAAC;AAAD,CAAC,AAbD,IAaC;AAEY,QAAA,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,13 @@
1
1
  {
2
2
  "name": "react-obsidian",
3
- "version": "0.0.15",
3
+ "version": "0.0.18",
4
4
  "description": "Dependency injection framework for React and React Native applications",
5
+ "scripts": {
6
+ "prepack": "npm run lint && tsc --project tsconfig.prod.json",
7
+ "lint": "npx eslint src transformers test --ignore-pattern '*.d.ts' --ext .ts,.tsx,.js",
8
+ "pretest": "tsc",
9
+ "test": "npx jest"
10
+ },
5
11
  "main": "src/index.ts",
6
12
  "directories": {
7
13
  "test": "test"
@@ -11,18 +17,18 @@
11
17
  "reflect-metadata": "~0.1.13"
12
18
  },
13
19
  "peerDependencies": {
14
- "react": "*"
20
+ "react": "*",
21
+ "lodash": "*"
15
22
  },
16
23
  "devDependencies": {
17
24
  "@babel/core": "7.16.x",
18
- "@babel/generator": "7.16.x",
19
- "@babel/plugin-proposal-class-properties": "7.16.x",
20
25
  "@babel/plugin-proposal-decorators": "7.16.x",
21
26
  "@babel/preset-env": "7.16.x",
22
27
  "babel-plugin-parameter-decorator": "1.x.x",
23
28
  "@babel/preset-react": "7.16.x",
24
29
  "@babel/preset-typescript": "7.16.x",
25
30
  "@babel/types": "7.16.x",
31
+ "@babel/traverse": "7.16.x",
26
32
  "@johanblumenberg/ts-mockito": "1.x.x",
27
33
  "@testing-library/react": "^12.1.2",
28
34
  "@testing-library/react-hooks": "^7.0.2",
@@ -41,6 +47,7 @@
41
47
  "eslint-plugin-jsx-a11y": "^6.4.1",
42
48
  "eslint-plugin-react": "^7.26.1",
43
49
  "eslint-plugin-react-hooks": "^4.2.0",
50
+ "eslint-plugin-unused-imports": "1.x.x",
44
51
  "jest": "27.x.x",
45
52
  "lodash": "^4.17.21",
46
53
  "react": "17.0.2",
@@ -48,12 +55,6 @@
48
55
  "typescript": "^4.5.4",
49
56
  "setimmediate": "^1.0.5"
50
57
  },
51
- "scripts": {
52
- "prepack": "npm run lint && tsc --project tsconfig.prod.json",
53
- "lint": "npx eslint src transformers test --ignore-pattern '*.d.ts' --ext .ts,.tsx,.js",
54
- "pretest": "tsc",
55
- "test": "npx jest"
56
- },
57
58
  "repository": {
58
59
  "type": "git",
59
60
  "url": "git+https://github.com/wix-incubator/react-obsidian.git"
package/src/Obsidian.ts CHANGED
@@ -12,8 +12,8 @@ export default class Obsidian {
12
12
  return graphRegistry.resolve(Graph, props) as unknown as ServiceLocator<T>;
13
13
  }
14
14
 
15
- inject<T extends object>(target: T) {
16
- return lazyInjector.inject(target);
15
+ inject<T extends object>(target: T, graph?: ObjectGraph) {
16
+ return lazyInjector.inject(target, graph);
17
17
  }
18
18
 
19
19
  addGraphMiddleware(middleware: GraphMiddleware) {
@@ -3,6 +3,7 @@ import Memoize from '../decorators/Memoize';
3
3
  import { bindProviders } from './ProviderBinder';
4
4
  import { Graph } from './Graph';
5
5
  import PropertyRetriever from './PropertyRetriever';
6
+ import { Constructable } from '../types';
6
7
 
7
8
  export abstract class ObjectGraph<T = unknown> implements Graph {
8
9
  private propertyRetriever = new PropertyRetriever(this);
@@ -20,3 +21,9 @@ export abstract class ObjectGraph<T = unknown> implements Graph {
20
21
  return this.propertyRetriever.retrieve(property, receiver) as Dependency | undefined;
21
22
  }
22
23
  }
24
+
25
+ Reflect.set(ObjectGraph, 'typeDiscriminator', 'ObjectGraph');
26
+
27
+ export function isGraph(object: Constructable<ObjectGraph> | any): object is Constructable<ObjectGraph> {
28
+ return Reflect.get(object, 'typeDiscriminator') === 'ObjectGraph';
29
+ }
@@ -67,6 +67,12 @@ export class GraphRegistry {
67
67
  clearGraphMiddlewares() {
68
68
  this.graphMiddlewares.clear();
69
69
  }
70
+
71
+ reset() {
72
+ this.instanceToConstructor.clear();
73
+ this.constructorToInstance.clear();
74
+ this.nameToInstance.clear();
75
+ }
70
76
  }
71
77
 
72
78
  export default new GraphRegistry();
package/src/index.ts CHANGED
@@ -30,3 +30,5 @@ export const injectHook = <Args, Result> (
30
30
  hook: (args: Args) => Result,
31
31
  Graph: Constructable<_ObjectGraph>,
32
32
  ) => hookInjector.inject(hook, Graph);
33
+
34
+ export { testKit } from '../testkit';
@@ -1,12 +1,13 @@
1
+ import { ObjectGraph } from '../../graph/ObjectGraph';
1
2
  import graphRegistry from '../../graph/registry/GraphRegistry';
2
3
  import InjectionMetadata from './InjectionMetadata';
3
4
 
4
5
  export const GRAPH_INSTANCE_NAME_KEY = 'GRAPH_INSTANCE_NAME';
5
6
 
6
7
  class LazyInjector<T extends object> {
7
- inject(target: T): T {
8
+ inject(target: T, sourceGraph?: ObjectGraph): T {
8
9
  const injectionMetadata = new InjectionMetadata();
9
- const graph = this.getGraphInstance(target);
10
+ const graph = sourceGraph ?? this.getGraphInstance(target);
10
11
  injectionMetadata.getLazyPropertiesToInject(target.constructor).forEach((key) => {
11
12
  Reflect.set(target, key, graph.retrieve(key));
12
13
  });
package/testkit/index.ts CHANGED
@@ -1,28 +1,27 @@
1
1
  import { GraphResolveChain } from '../src/graph/registry/GraphResolveChain';
2
- import {
3
- ObjectGraph,
4
- Constructable,
5
- GraphMiddleware,
6
- Obsidian,
7
- } from '../src';
2
+ import { isGraph, ObjectGraph } from '../src/graph/ObjectGraph';
3
+ import { GraphMiddleware } from '../src/graph/registry/GraphMiddleware';
4
+ import { Constructable } from '../src/types';
5
+ import graphRegistry from '../src/graph/registry/GraphRegistry';
8
6
 
9
7
  beforeEach(() => {
10
- Obsidian.clearGraphMiddlewares();
8
+ graphRegistry.clearGraphMiddlewares();
9
+ graphRegistry.reset();
11
10
  });
12
11
 
13
- class Index {
14
- mockGraphs(graphNameToGraph: Record<string, Constructable<ObjectGraph>>) {
12
+ class TestKit {
13
+ public mockGraphs(graphNameToGraph: Record<string, Constructable<ObjectGraph> | ((props: any) => ObjectGraph)>) {
15
14
  const graphMiddleware = new class extends GraphMiddleware {
16
15
  resolve<Props>(resolveChain: GraphResolveChain, Graph: Constructable<ObjectGraph>, props?: Props) {
17
16
  if (graphNameToGraph[Graph.name]) {
18
- const TheGraph = graphNameToGraph[Graph.name];
19
- return new TheGraph(props);
17
+ const GraphOrGenerator = graphNameToGraph[Graph.name];
18
+ return isGraph(GraphOrGenerator) ? new GraphOrGenerator(props) : GraphOrGenerator(props);
20
19
  }
21
20
  return resolveChain.proceed(Graph, props);
22
21
  }
23
22
  }();
24
- Obsidian.addGraphMiddleware(graphMiddleware);
23
+ graphRegistry.addGraphMiddleware(graphMiddleware);
25
24
  }
26
25
  }
27
26
 
28
- export default new Index();
27
+ export const testKit = new TestKit();