react-obsidian 3.0.0-alpha.3 → 3.0.0-alpha.7

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 (107) hide show
  1. package/dist/src/Obsidian.d.ts +4 -3
  2. package/dist/src/Obsidian.d.ts.map +1 -1
  3. package/dist/src/Obsidian.js +7 -4
  4. package/dist/src/Obsidian.js.map +1 -1
  5. package/dist/src/decorators/LifecycleBound.d.ts +1 -1
  6. package/dist/src/decorators/LifecycleBound.d.ts.map +1 -1
  7. package/dist/src/decorators/inject/Inject.d.ts.map +1 -1
  8. package/dist/src/decorators/inject/Inject.js.map +1 -1
  9. package/dist/src/decorators/inject/Injectable.d.ts +1 -1
  10. package/dist/src/decorators/inject/Injectable.d.ts.map +1 -1
  11. package/dist/src/decorators/inject/Injectable.js +2 -2
  12. package/dist/src/decorators/inject/Injectable.js.map +1 -1
  13. package/dist/src/graph/ObjectGraph.d.ts.map +1 -1
  14. package/dist/src/graph/ObjectGraph.js +7 -3
  15. package/dist/src/graph/ObjectGraph.js.map +1 -1
  16. package/dist/src/graph/ServiceLocatorFactory.d.ts +1 -1
  17. package/dist/src/graph/ServiceLocatorFactory.d.ts.map +1 -1
  18. package/dist/src/graph/ServiceLocatorFactory.js +2 -2
  19. package/dist/src/graph/ServiceLocatorFactory.js.map +1 -1
  20. package/dist/src/graph/registry/GraphRegistry.d.ts +15 -2
  21. package/dist/src/graph/registry/GraphRegistry.d.ts.map +1 -1
  22. package/dist/src/graph/registry/GraphRegistry.js +108 -9
  23. package/dist/src/graph/registry/GraphRegistry.js.map +1 -1
  24. package/dist/src/injectors/class/ClassInjector.d.ts +1 -1
  25. package/dist/src/injectors/class/ClassInjector.d.ts.map +1 -1
  26. package/dist/src/injectors/class/ClassInjector.js +5 -14
  27. package/dist/src/injectors/class/ClassInjector.js.map +1 -1
  28. package/dist/src/injectors/class/LateInjector.d.ts +2 -1
  29. package/dist/src/injectors/class/LateInjector.d.ts.map +1 -1
  30. package/dist/src/injectors/class/LateInjector.js +13 -4
  31. package/dist/src/injectors/class/LateInjector.js.map +1 -1
  32. package/dist/src/injectors/components/ComponentInjector.d.ts +1 -1
  33. package/dist/src/injectors/components/ComponentInjector.d.ts.map +1 -1
  34. package/dist/src/injectors/components/ComponentInjector.js +5 -5
  35. package/dist/src/injectors/components/ComponentInjector.js.map +1 -1
  36. package/dist/src/injectors/components/InjectComponent.d.ts +1 -1
  37. package/dist/src/injectors/components/InjectComponent.d.ts.map +1 -1
  38. package/dist/src/injectors/components/InjectComponent.js +6 -5
  39. package/dist/src/injectors/components/InjectComponent.js.map +1 -1
  40. package/dist/src/injectors/components/useGraph.d.ts +1 -1
  41. package/dist/src/injectors/components/useGraph.d.ts.map +1 -1
  42. package/dist/src/injectors/components/useGraph.js +2 -2
  43. package/dist/src/injectors/components/useGraph.js.map +1 -1
  44. package/dist/src/injectors/components/useInjectionToken.d.ts +1 -1
  45. package/dist/src/injectors/components/useInjectionToken.d.ts.map +1 -1
  46. package/dist/src/injectors/components/useInjectionToken.js +5 -2
  47. package/dist/src/injectors/components/useInjectionToken.js.map +1 -1
  48. package/dist/src/injectors/hooks/HookInjector.d.ts +1 -1
  49. package/dist/src/injectors/hooks/HookInjector.d.ts.map +1 -1
  50. package/dist/src/injectors/hooks/HookInjector.js +2 -2
  51. package/dist/src/injectors/hooks/HookInjector.js.map +1 -1
  52. package/dist/src/injectors/hooks/InjectHook.d.ts +2 -2
  53. package/dist/src/injectors/hooks/InjectHook.d.ts.map +1 -1
  54. package/dist/src/injectors/hooks/InjectHook.js +4 -4
  55. package/dist/src/injectors/hooks/InjectHook.js.map +1 -1
  56. package/dist/src/utils/getGlobal.d.ts +2 -0
  57. package/dist/src/utils/getGlobal.d.ts.map +1 -0
  58. package/dist/src/utils/getGlobal.js +7 -0
  59. package/dist/src/utils/getGlobal.js.map +1 -0
  60. package/dist/src/utils/isString.d.ts +2 -0
  61. package/dist/src/utils/isString.d.ts.map +1 -0
  62. package/dist/src/utils/isString.js +7 -0
  63. package/dist/src/utils/isString.js.map +1 -0
  64. package/dist/src/utils/reflect.d.ts +1 -0
  65. package/dist/src/utils/reflect.d.ts.map +1 -1
  66. package/dist/src/utils/reflect.js +12 -1
  67. package/dist/src/utils/reflect.js.map +1 -1
  68. package/dist/test/fixtures/LifecycleBoundGraph.js +3 -3
  69. package/dist/test/fixtures/LifecycleBoundGraph.js.map +1 -1
  70. package/dist/transformers/babel-plugin-obsidian/helpers/index.d.ts +3 -2
  71. package/dist/transformers/babel-plugin-obsidian/helpers/index.d.ts.map +1 -1
  72. package/dist/transformers/babel-plugin-obsidian/helpers/index.js +11 -4
  73. package/dist/transformers/babel-plugin-obsidian/helpers/index.js.map +1 -1
  74. package/dist/transformers/babel-plugin-obsidian/index.d.ts.map +1 -1
  75. package/dist/transformers/babel-plugin-obsidian/index.js +5 -0
  76. package/dist/transformers/babel-plugin-obsidian/index.js.map +1 -1
  77. package/dist/transformers/babel-plugin-obsidian/unmagler/property.d.ts.map +1 -1
  78. package/dist/transformers/babel-plugin-obsidian/unmagler/property.js +2 -2
  79. package/dist/transformers/babel-plugin-obsidian/unmagler/property.js.map +1 -1
  80. package/eslint.config.mjs +2 -1
  81. package/package.json +13 -10
  82. package/src/Obsidian.ts +10 -6
  83. package/src/decorators/LifecycleBound.ts +1 -1
  84. package/src/decorators/inject/Inject.ts +1 -4
  85. package/src/decorators/inject/Injectable.ts +2 -2
  86. package/src/graph/ObjectGraph.ts +7 -3
  87. package/src/graph/ServiceLocatorFactory.ts +2 -2
  88. package/src/graph/registry/GraphRegistry.ts +120 -9
  89. package/src/injectors/class/ClassInjector.ts +6 -14
  90. package/src/injectors/class/LateInjector.ts +10 -3
  91. package/src/injectors/components/ComponentInjector.tsx +5 -5
  92. package/src/injectors/components/InjectComponent.ts +6 -5
  93. package/src/injectors/components/useGraph.ts +2 -2
  94. package/src/injectors/components/useInjectionToken.ts +5 -2
  95. package/src/injectors/hooks/HookInjector.ts +2 -2
  96. package/src/injectors/hooks/InjectHook.ts +4 -4
  97. package/src/utils/getGlobal.ts +3 -0
  98. package/src/utils/isString.ts +3 -0
  99. package/src/utils/reflect.ts +14 -1
  100. package/transformers/babel-plugin-obsidian/helpers/index.ts +11 -3
  101. package/transformers/babel-plugin-obsidian/index.ts +5 -0
  102. package/transformers/babel-plugin-obsidian/unmagler/property.ts +3 -3
  103. package/dist/src/decorators/Memoize.d.ts +0 -2
  104. package/dist/src/decorators/Memoize.d.ts.map +0 -1
  105. package/dist/src/decorators/Memoize.js +0 -12
  106. package/dist/src/decorators/Memoize.js.map +0 -1
  107. package/src/decorators/Memoize.ts +0 -11
@@ -11,18 +11,18 @@ const React_1 = require("../../utils/React");
11
11
  const graphContext_1 = require("./graphContext");
12
12
  const useInjectionToken_1 = require("./useInjectionToken");
13
13
  class ComponentInjector {
14
- inject(Target, Graph) {
15
- const Wrapped = this.wrapComponent(Target, Graph);
14
+ inject(Target, keyOrGraph) {
15
+ const Wrapped = this.wrapComponent(Target, keyOrGraph);
16
16
  (0, hoist_non_react_statics_1.default)(Wrapped, Target);
17
17
  return Wrapped;
18
18
  }
19
- wrapComponent(InjectionCandidate, Graph) {
19
+ wrapComponent(InjectionCandidate, keyOrGraph) {
20
20
  const isMemoized = (0, React_1.isMemoizedComponent)(InjectionCandidate);
21
21
  const Target = isMemoized ? InjectionCandidate.type : InjectionCandidate;
22
22
  const compare = isMemoized ? InjectionCandidate.compare : undefined;
23
23
  return (0, React_1.genericMemo)((passedProps) => {
24
- const injectionToken = (0, useInjectionToken_1.useInjectionToken)(Graph);
25
- const graph = (0, useGraph_1.default)(Graph, Target, passedProps, injectionToken);
24
+ const injectionToken = (0, useInjectionToken_1.useInjectionToken)(keyOrGraph);
25
+ const graph = (0, useGraph_1.default)(keyOrGraph, Target, passedProps, injectionToken);
26
26
  const proxiedProps = new PropsInjector_1.default(graph).inject(passedProps);
27
27
  return (react_1.default.createElement(graphContext_1.GraphContext.Provider, { value: { injectionToken } }, Target(proxiedProps)));
28
28
  }, compare);
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAiD;AACjD,sFAA2D;AAE3D,oEAA4C;AAC5C,0DAAkC;AAElC,6CAAqE;AACrE,iDAA8C;AAC9C,2DAAwD;AAExD,MAAqB,iBAAiB;IACpC,MAAM,CACJ,MAAkC,EAClC,KAAiC;QAEjC,MAAM,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,aAAa,CACnB,kBAA8C,EAC9C,KAAiC;QAEjC,MAAM,UAAU,GAAG,IAAA,2BAAmB,EAAC,kBAAkB,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACzE,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,OAAO,IAAA,mBAAW,EAAC,CAAC,WAAc,EAAE,EAAE;YACpC,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,KAAK,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAI,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;YACtE,MAAM,YAAY,GAAG,IAAI,uBAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAElE,OAAO,CACL,8BAAC,2BAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,cAAc,EAAE,IAC7C,MAAM,CAAC,YAA+C,CAAC,CAClC,CACzB,CAAC;QACJ,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;CACF;AA9BD,oCA8BC"}
1
+ {"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAiD;AACjD,sFAA2D;AAE3D,oEAA4C;AAC5C,0DAAkC;AAElC,6CAAqE;AACrE,iDAA8C;AAC9C,2DAAwD;AAExD,MAAqB,iBAAiB;IACpC,MAAM,CACJ,MAAkC,EAClC,UAA+C;QAE/C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACvD,IAAA,iCAAoB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,aAAa,CACnB,kBAA8C,EAC9C,UAA+C;QAE/C,MAAM,UAAU,GAAG,IAAA,2BAAmB,EAAC,kBAAkB,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACzE,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,OAAO,IAAA,mBAAW,EAAC,CAAC,WAAc,EAAE,EAAE;YACpC,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,UAAU,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAI,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;YAC3E,MAAM,YAAY,GAAG,IAAI,uBAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAElE,OAAO,CACL,8BAAC,2BAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,cAAc,EAAE,IAC7C,MAAM,CAAC,YAA+C,CAAC,CAClC,CACzB,CAAC;QACJ,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;CACF;AA9BD,oCA8BC"}
@@ -4,6 +4,6 @@ import { Constructable } from '../../types';
4
4
  interface Discriminator {
5
5
  obsidianDiscriminator: never;
6
6
  }
7
- export declare const injectComponent: <OwnProps = Discriminator, InjectedProps = Discriminator>(Target: React.FunctionComponent<(OwnProps extends infer P ? OwnProps extends Discriminator ? P : OwnProps : never) & (InjectedProps extends Discriminator ? any : InjectedProps)>, Graph: Constructable<ObjectGraph>) => React.FunctionComponent<InjectedProps extends Discriminator ? OwnProps extends Discriminator ? Partial<OwnProps> : OwnProps : OwnProps extends InjectedProps ? Partial<OwnProps> : OwnProps & Partial<InjectedProps>>;
7
+ export declare const injectComponent: <OwnProps = Discriminator, InjectedProps = Discriminator>(Target: React.FunctionComponent<(OwnProps extends infer P ? OwnProps extends Discriminator ? P : OwnProps : never) & (InjectedProps extends Discriminator ? any : InjectedProps)>, keyOrGraph: string | Constructable<ObjectGraph>) => React.FunctionComponent<InjectedProps extends Discriminator ? OwnProps extends Discriminator ? Partial<OwnProps> : OwnProps : OwnProps extends InjectedProps ? Partial<OwnProps> : OwnProps & Partial<InjectedProps>>;
8
8
  export {};
9
9
  //# sourceMappingURL=InjectComponent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InjectComponent.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/InjectComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,UAAU,aAAa;IACrB,qBAAqB,EAAE,KAAK,CAAC;CAC9B;AAID,eAAO,MAAM,eAAe,GAAI,QAAQ,kBAAkB,aAAa,0BAC7D,KAAK,CAAC,iBAAiB,CAC/B,CAAC,QAAQ,SAAS,MAAM,CAAC,GAAG,QAAQ,SAAS,aAAa,GAAG,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC,GAClF,CAAC,aAAa,SAAS,aAAa,GAAG,GAAG,GAAG,aAAa,CAAC,CAC1D,SACM,aAAa,CAAC,WAAW,CAAC,KAIiB,KAAK,CAAC,iBAAiB,CACvE,aAAa,SAAS,aAAa,GACjC,QAAQ,SAAS,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAC7D,QAAQ,SAAS,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAE3F,CAAC"}
1
+ {"version":3,"file":"InjectComponent.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/InjectComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,UAAU,aAAa;IACrB,qBAAqB,EAAE,KAAK,CAAC;CAC9B;AAID,eAAO,MAAM,eAAe,GAAI,QAAQ,kBAAkB,aAAa,0BAC7D,KAAK,CAAC,iBAAiB,CAC/B,CAAC,QAAQ,SAAS,MAAM,CAAC,GAAG,QAAQ,SAAS,aAAa,GAAG,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC,GAClF,CAAC,aAAa,SAAS,aAAa,GAAG,GAAG,GAAG,aAAa,CAAC,CAC1D,cACW,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,KAIQ,KAAK,CAAC,iBAAiB,CAC5E,aAAa,SAAS,aAAa,GACjC,QAAQ,SAAS,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAC7D,QAAQ,SAAS,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAE3F,CAAC"}
@@ -4,15 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.injectComponent = void 0;
7
+ const isString_1 = require("../../utils/isString");
7
8
  const ComponentInjector_1 = __importDefault(require("./ComponentInjector"));
8
9
  const componentInjector = new ComponentInjector_1.default();
9
- const injectComponent = (Target, Graph) => {
10
- assertGraph(Graph, Target);
11
- return componentInjector.inject(Target, Graph);
10
+ const injectComponent = (Target, keyOrGraph) => {
11
+ assertGraph(keyOrGraph, Target);
12
+ return componentInjector.inject(Target, keyOrGraph);
12
13
  };
13
14
  exports.injectComponent = injectComponent;
14
- function assertGraph(Graph, Target) {
15
- if (!Graph) {
15
+ function assertGraph(keyOrGraph, Target) {
16
+ if (!(0, isString_1.isString)(keyOrGraph) && !keyOrGraph) {
16
17
  throw new Error(`injectComponent was called with an undefined Graph.`
17
18
  + `This is probably not an issue with Obsidian.`
18
19
  + `It's typically caused by circular dependencies.`
@@ -1 +1 @@
1
- {"version":3,"file":"InjectComponent.js","sourceRoot":"","sources":["../../../../src/injectors/components/InjectComponent.ts"],"names":[],"mappings":";;;;;;AAGA,4EAAoD;AAMpD,MAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;AAE3C,MAAM,eAAe,GAAG,CAC7B,MAGC,EACD,KAAiC,EACjC,EAAE;IACF,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE3B,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAI5C,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,eAAe,mBAc1B;AACF,SAAS,WAAW,CAAC,KAA0C,EAAE,MAAW;IAC1E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,qDAAqD;cACnD,8CAA8C;cAC9C,iDAAiD;cACjD,gCAAgC,MAAM,CAAC,IAAI,GAAG,CACjD,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"InjectComponent.js","sourceRoot":"","sources":["../../../../src/injectors/components/InjectComponent.ts"],"names":[],"mappings":";;;;;;AAGA,mDAAgD;AAChD,4EAAoD;AAMpD,MAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;AAE3C,MAAM,eAAe,GAAG,CAC7B,MAGC,EACD,UAA+C,EAC/C,EAAE;IACF,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEhC,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAIjD,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,eAAe,mBAc1B;AACF,SAAS,WAAW,CAAC,UAA+C,EAAE,MAAW;IAC/E,IAAI,CAAC,IAAA,mBAAQ,EAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,qDAAqD;cACnD,8CAA8C;cAC9C,iDAAiD;cACjD,gCAAgC,MAAM,CAAC,IAAI,GAAG,CACjD,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Constructable } from '../../types';
2
2
  import { ObjectGraph } from '../../graph/ObjectGraph';
3
- declare const _default: <P>(Graph: Constructable<ObjectGraph>, target: any, props?: Partial<P>, injectionToken?: string) => ObjectGraph<unknown>;
3
+ declare const _default: <P>(keyOrGraph: string | Constructable<ObjectGraph>, target: any, props?: Partial<P>, injectionToken?: string) => ObjectGraph<unknown>;
4
4
  export default _default;
5
5
  //# sourceMappingURL=useGraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGraph.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;yBAItC,CAAC,SACR,aAAa,CAAC,WAAW,CAAC,UACzB,GAAG,UACH,OAAO,CAAC,CAAC,CAAC,mBACD,MAAM;AAJzB,wBAgBE"}
1
+ {"version":3,"file":"useGraph.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;yBAItC,CAAC,cACH,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,UACvC,GAAG,UACH,OAAO,CAAC,CAAC,CAAC,mBACD,MAAM;AAJzB,wBAgBE"}
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = require("react");
7
7
  const GraphRegistry_1 = __importDefault(require("../../graph/registry/GraphRegistry"));
8
8
  const ReferenceCounter_1 = __importDefault(require("../../ReferenceCounter"));
9
- exports.default = (Graph, target, props, injectionToken) => {
9
+ exports.default = (keyOrGraph, target, props, injectionToken) => {
10
10
  const [graph] = (0, react_1.useState)(() => {
11
- const resolvedGraph = GraphRegistry_1.default.resolve(Graph, 'lifecycleOwner', props, injectionToken);
11
+ const resolvedGraph = GraphRegistry_1.default.resolve(keyOrGraph, 'lifecycleOwner', props, injectionToken);
12
12
  resolvedGraph.onBind(target);
13
13
  return resolvedGraph;
14
14
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useGraph.js","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":";;;;;AAAA,iCAA4C;AAG5C,uFAA+D;AAC/D,8EAAsD;AAEtD,kBAAe,CACb,KAAiC,EACjC,MAAW,EACX,KAAkB,EAClB,cAAuB,EACvB,EAAE;IACF,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE;QAC5B,MAAM,aAAa,GAAG,uBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAC5F,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,0BAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,0BAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
1
+ {"version":3,"file":"useGraph.js","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":";;;;;AAAA,iCAA4C;AAG5C,uFAA+D;AAC/D,8EAAsD;AAEtD,kBAAe,CACb,UAA+C,EAC/C,MAAW,EACX,KAAkB,EAClB,cAAuB,EACvB,EAAE;IACF,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE;QAC5B,MAAM,aAAa,GAAG,uBAAa,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACjG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,0BAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,0BAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { Constructable, ObjectGraph } from '../..';
2
- export declare const useInjectionToken: (Graph: Constructable<ObjectGraph>) => string;
2
+ export declare const useInjectionToken: (keyOrGraph: string | Constructable<ObjectGraph>) => string;
3
3
  //# sourceMappingURL=useInjectionToken.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInjectionToken.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useInjectionToken.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGxD,eAAO,MAAM,iBAAiB,UAAW,aAAa,CAAC,WAAW,CAAC,WAIlE,CAAC"}
1
+ {"version":3,"file":"useInjectionToken.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useInjectionToken.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAIxD,eAAO,MAAM,iBAAiB,eAAgB,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,WAMhF,CAAC"}
@@ -4,9 +4,12 @@ exports.useInjectionToken = void 0;
4
4
  const react_1 = require("react");
5
5
  const graphContext_1 = require("./graphContext");
6
6
  const uniqueId_1 = require("../../utils/uniqueId");
7
- const useInjectionToken = (Graph) => {
7
+ const isString_1 = require("../../utils/isString");
8
+ const useInjectionToken = (keyOrGraph) => {
8
9
  const ctx = (0, react_1.useContext)(graphContext_1.GraphContext);
9
- const [injectionToken] = (0, react_1.useState)(() => ctx?.injectionToken ?? (0, uniqueId_1.uniqueId)(Graph.name));
10
+ const [injectionToken] = (0, react_1.useState)(() => {
11
+ return ctx?.injectionToken ?? (0, uniqueId_1.uniqueId)((0, isString_1.isString)(keyOrGraph) ? keyOrGraph : keyOrGraph.name);
12
+ });
10
13
  return injectionToken;
11
14
  };
12
15
  exports.useInjectionToken = useInjectionToken;
@@ -1 +1 @@
1
- {"version":3,"file":"useInjectionToken.js","sourceRoot":"","sources":["../../../../src/injectors/components/useInjectionToken.ts"],"names":[],"mappings":";;;AAAA,iCAA6C;AAC7C,iDAA8C;AAE9C,mDAAgD;AAEzC,MAAM,iBAAiB,GAAG,CAAC,KAAiC,EAAE,EAAE;IACrE,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,2BAAY,CAAC,CAAC;IACrC,MAAM,CAAC,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,GAAG,EAAE,cAAc,IAAI,IAAA,mBAAQ,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACrF,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAJW,QAAA,iBAAiB,qBAI5B"}
1
+ {"version":3,"file":"useInjectionToken.js","sourceRoot":"","sources":["../../../../src/injectors/components/useInjectionToken.ts"],"names":[],"mappings":";;;AAAA,iCAA6C;AAC7C,iDAA8C;AAE9C,mDAAgD;AAChD,mDAAgD;AAEzC,MAAM,iBAAiB,GAAG,CAAC,UAA+C,EAAE,EAAE;IACnF,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,2BAAY,CAAC,CAAC;IACrC,MAAM,CAAC,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE;QACrC,OAAO,GAAG,EAAE,cAAc,IAAI,IAAA,mBAAQ,EAAC,IAAA,mBAAQ,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IACH,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B"}
@@ -1,6 +1,6 @@
1
1
  import { ObjectGraph } from '../../graph/ObjectGraph';
2
2
  import { Constructable } from '../../types';
3
3
  export default class HookInjector {
4
- inject<Args, Result>(hook: (args: Args) => Result, Graph: Constructable<ObjectGraph>): (args?: Partial<Args>) => Result;
4
+ inject<Args, Result>(hook: (args: Args) => Result, keyOrGraph: string | Constructable<ObjectGraph>): (args?: Partial<Args>) => Result;
5
5
  }
6
6
  //# sourceMappingURL=HookInjector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HookInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,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
+ {"version":3,"file":"HookInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,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,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,GAC9C,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM;CAMpC"}
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const useGraph_1 = __importDefault(require("../components/useGraph"));
7
7
  class HookInjector {
8
- inject(hook, Graph) {
8
+ inject(hook, keyOrGraph) {
9
9
  return (args) => {
10
- const graph = (0, useGraph_1.default)(Graph, hook, args);
10
+ const graph = (0, useGraph_1.default)(keyOrGraph, hook, args);
11
11
  return hook(new Proxy(args ?? {}, new Injector(graph)));
12
12
  };
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HookInjector.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":";;;;;AAEA,sEAA8C;AAG9C,MAAqB,YAAY;IAC/B,MAAM,CACJ,IAA4B,EAC5B,KAAiC;QAEjC,OAAO,CAAC,IAAoB,EAAU,EAAE;YACtC,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC;CACF;AAVD,+BAUC;AAED,MAAM,QAAQ;IACQ;IAApB,YAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAEpC,GAAG,CAAC,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;CACF"}
1
+ {"version":3,"file":"HookInjector.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":";;;;;AAEA,sEAA8C;AAG9C,MAAqB,YAAY;IAC/B,MAAM,CACJ,IAA4B,EAC5B,UAA+C;QAE/C,OAAO,CAAC,IAAoB,EAAU,EAAE;YACtC,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC;CACF;AAVD,+BAUC;AAED,MAAM,QAAQ;IACQ;IAApB,YAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAEpC,GAAG,CAAC,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;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { ObjectGraph } from '../../graph/ObjectGraph';
2
2
  import { Constructable } from '../../types';
3
- export declare function injectHookWithArguments<Injected, Own, Result = {}>(hook: (args: Injected & Own) => Result, Graph: Constructable<ObjectGraph>): (props: Own & Partial<Injected>) => Result;
4
- export declare function injectHook<Injected, Result = {}>(hook: (args: Injected) => Result, Graph: Constructable<ObjectGraph>): (props?: Partial<Injected>) => Result;
3
+ export declare function injectHookWithArguments<Injected, Own, Result = {}>(hook: (args: Injected & Own) => Result, keyOrGraph: string | Constructable<ObjectGraph>): (props: Own & Partial<Injected>) => Result;
4
+ export declare function injectHook<Injected, Result = {}>(hook: (args: Injected) => Result, keyOrGraph: string | Constructable<ObjectGraph>): (props?: Partial<Injected>) => Result;
5
5
  //# sourceMappingURL=InjectHook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InjectHook.d.ts","sourceRoot":"","sources":["../../../../src/injectors/hooks/InjectHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAU5C,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAChE,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,GAAG,KAAK,MAAM,EACtC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAChC,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,MAAM,CAE5C;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,EAC9C,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM,EAChC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAChC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,MAAM,CAEvC"}
1
+ {"version":3,"file":"InjectHook.d.ts","sourceRoot":"","sources":["../../../../src/injectors/hooks/InjectHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAU5C,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAChE,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,GAAG,KAAK,MAAM,EACtC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,GAC9C,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,MAAM,CAE5C;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,EAC9C,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM,EAChC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,GAC9C,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,MAAM,CAEvC"}
@@ -11,10 +11,10 @@ const hookInjector = new HookInjector_1.default();
11
11
  // As a workaround, we provide two injection functions with an almost identical signature.
12
12
  // 1. injectHookWithArguments: Should be used when a hook requires parameters in addition to the injected dependencies.
13
13
  // 2. injectHook: Should be used when a hook does not require parameters.
14
- function injectHookWithArguments(hook, Graph) {
15
- return hookInjector.inject(hook, Graph);
14
+ function injectHookWithArguments(hook, keyOrGraph) {
15
+ return hookInjector.inject(hook, keyOrGraph);
16
16
  }
17
- function injectHook(hook, Graph) {
18
- return hookInjector.inject(hook, Graph);
17
+ function injectHook(hook, keyOrGraph) {
18
+ return hookInjector.inject(hook, keyOrGraph);
19
19
  }
20
20
  //# sourceMappingURL=InjectHook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InjectHook.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/InjectHook.ts"],"names":[],"mappings":";;;;;AAWA,0DAKC;AAED,gCAKC;AArBD,kEAA0C;AAE1C,MAAM,YAAY,GAAG,IAAI,sBAAY,EAAE,CAAC;AAExC,6HAA6H;AAC7H,0FAA0F;AAC1F,uHAAuH;AACvH,yEAAyE;AAEzE,SAAgB,uBAAuB,CACrC,IAAsC,EACtC,KAAiC;IAEjC,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAA+C,CAAC;AACxF,CAAC;AAED,SAAgB,UAAU,CACxB,IAAgC,EAChC,KAAiC;IAEjC,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"InjectHook.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/InjectHook.ts"],"names":[],"mappings":";;;;;AAWA,0DAKC;AAED,gCAKC;AArBD,kEAA0C;AAE1C,MAAM,YAAY,GAAG,IAAI,sBAAY,EAAE,CAAC;AAExC,6HAA6H;AAC7H,0FAA0F;AAC1F,uHAAuH;AACvH,yEAAyE;AAEzE,SAAgB,uBAAuB,CACrC,IAAsC,EACtC,UAA+C;IAE/C,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAA+C,CAAC;AAC7F,CAAC;AAED,SAAgB,UAAU,CACxB,IAAgC,EAChC,UAA+C;IAE/C,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function getGlobal(): any;
2
+ //# sourceMappingURL=getGlobal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGlobal.d.ts","sourceRoot":"","sources":["../../../src/utils/getGlobal.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,IAAI,GAAG,CAE/B"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGlobal = getGlobal;
4
+ function getGlobal() {
5
+ return typeof window !== 'undefined' ? window : global;
6
+ }
7
+ //# sourceMappingURL=getGlobal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGlobal.js","sourceRoot":"","sources":["../../../src/utils/getGlobal.ts"],"names":[],"mappings":";;AAAA,8BAEC;AAFD,SAAgB,SAAS;IACvB,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AACzD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function isString(value: any): value is string;
2
+ //# sourceMappingURL=isString.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isString.d.ts","sourceRoot":"","sources":["../../../src/utils/isString.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAEpD"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isString = isString;
4
+ function isString(value) {
5
+ return typeof value === 'string';
6
+ }
7
+ //# sourceMappingURL=isString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isString.js","sourceRoot":"","sources":["../../../src/utils/isString.ts"],"names":[],"mappings":";;AAAA,4BAEC;AAFD,SAAgB,QAAQ,CAAC,KAAU;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export declare function defineMetadata(target: any, key: string, value: any): void;
2
2
  export declare function getMetadata(target: any, key: string): any;
3
+ export declare function hasMetadata(target: any, key: string): boolean;
3
4
  //# sourceMappingURL=reflect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reflect.d.ts","sourceRoot":"","sources":["../../../src/utils/reflect.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,QASlE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,OAGnD"}
1
+ {"version":3,"file":"reflect.d.ts","sourceRoot":"","sources":["../../../src/utils/reflect.ts"],"names":[],"mappings":"AAUA,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,QASlE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,OAGnD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,WAGnD"}
@@ -2,7 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defineMetadata = defineMetadata;
4
4
  exports.getMetadata = getMetadata;
5
- const metadataStore = new WeakMap();
5
+ exports.hasMetadata = hasMetadata;
6
+ const getGlobal_1 = require("./getGlobal");
7
+ function getStore() {
8
+ const global = (0, getGlobal_1.getGlobal)();
9
+ global.__metadataStore = global.__metadataStore || new WeakMap();
10
+ return global.__metadataStore;
11
+ }
12
+ const metadataStore = getStore();
6
13
  function defineMetadata(target, key, value) {
7
14
  let metadata = metadataStore.get(target);
8
15
  if (!metadata) {
@@ -15,4 +22,8 @@ function getMetadata(target, key) {
15
22
  const metadata = metadataStore.get(target);
16
23
  return metadata ? metadata[key] : undefined;
17
24
  }
25
+ function hasMetadata(target, key) {
26
+ const metadata = metadataStore.get(target);
27
+ return metadata ? metadata[key] !== undefined : false;
28
+ }
18
29
  //# sourceMappingURL=reflect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reflect.js","sourceRoot":"","sources":["../../../src/utils/reflect.ts"],"names":[],"mappings":";;AAEA,wCASC;AAED,kCAGC;AAhBD,MAAM,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;AAEpC,SAAgB,cAAc,CAAC,MAAW,EAAE,GAAW,EAAE,KAAU;IACjE,IAAI,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,EAAE,CAAC;QACd,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACxB,CAAC;AAED,SAAgB,WAAW,CAAC,MAAW,EAAE,GAAW;IAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"reflect.js","sourceRoot":"","sources":["../../../src/utils/reflect.ts"],"names":[],"mappings":";;AAUA,wCASC;AAED,kCAGC;AAED,kCAGC;AA7BD,2CAAwC;AAExC,SAAS,QAAQ;IACf,MAAM,MAAM,GAAG,IAAA,qBAAS,GAAE,CAAC;IAC3B,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,IAAI,OAAO,EAAE,CAAC;IACjE,OAAO,MAAM,CAAC,eAAe,CAAC;AAChC,CAAC;AAED,MAAM,aAAa,GAAG,QAAQ,EAAE,CAAC;AAEjC,SAAgB,cAAc,CAAC,MAAW,EAAE,GAAW,EAAE,KAAU;IACjE,IAAI,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,EAAE,CAAC;QACd,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACxB,CAAC;AAED,SAAgB,WAAW,CAAC,MAAW,EAAE,GAAW;IAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,SAAgB,WAAW,CAAC,MAAW,EAAE,GAAW;IAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACxD,CAAC"}
@@ -15,9 +15,9 @@ class LifecycleBoundGraph extends src_1.ObjectGraph {
15
15
  }
16
16
  @(0, src_1.provides)()
17
17
  computedFromProps() {
18
- return this.props.stringFromProps
19
- ? `A string passed via props: ${this.props.stringFromProps}`
20
- : 'stringFromProps does not exist';
18
+ return this.props.stringFromProps ?
19
+ `A string passed via props: ${this.props.stringFromProps}` :
20
+ 'stringFromProps does not exist';
21
21
  }
22
22
  @(0, src_1.provides)()
23
23
  doesNotRequireProps() {
@@ -1 +1 @@
1
- {"version":3,"file":"LifecycleBoundGraph.js","sourceRoot":"","sources":["../../../test/fixtures/LifecycleBoundGraph.ts"],"names":[],"mappings":";;;AAAA,mCAAyD;AACzD,wEAAqE;AAIrE,CAAC,IAAA,+BAAc,GAAE;AAAC,CAAC,IAAA,WAAK,GAAE;MACb,mBAAoB,SAAQ,iBAAkB;IACzD,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;IAChB,KAAK,CAAQ;IAErB,YAAY,KAAY;QACtB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,mBAAmB,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,CAAC,IAAA,cAAQ,GAAE;IACX,iBAAiB;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe;YAC/B,CAAC,CAAC,8BAA8B,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;YAC5D,CAAC,CAAC,gCAAgC,CAAC;IACvC,CAAC;IAED,CAAC,IAAA,cAAQ,GAAE;IACX,mBAAmB;QACjB,OAAO,sCAAsC,CAAC;IAChD,CAAC;;AArBH,kDAsBC"}
1
+ {"version":3,"file":"LifecycleBoundGraph.js","sourceRoot":"","sources":["../../../test/fixtures/LifecycleBoundGraph.ts"],"names":[],"mappings":";;;AAAA,mCAAyD;AACzD,wEAAqE;AAIrE,CAAC,IAAA,+BAAc,GAAE;AAAC,CAAC,IAAA,WAAK,GAAE;MACb,mBAAoB,SAAQ,iBAAkB;IACzD,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;IAChB,KAAK,CAAQ;IAErB,YAAY,KAAY;QACtB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,mBAAmB,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,CAAC,IAAA,cAAQ,GAAE;IACX,iBAAiB;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACjC,8BAA8B,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;YAC5D,gCAAgC,CAAC;IACrC,CAAC;IAED,CAAC,IAAA,cAAQ,GAAE;IACX,mBAAmB;QACjB,OAAO,sCAAsC,CAAC;IAChD,CAAC;;AArBH,kDAsBC"}
@@ -1,8 +1,9 @@
1
- import { ClassMethod, ClassProperty, Decorator, Identifier, ObjectExpression, ObjectPattern, TSParameterProperty, Node } from '@babel/types';
1
+ import { ClassMethod, ClassProperty, Decorator, Identifier, ObjectExpression, ObjectPattern, TSParameterProperty, Node, type StringLiteral } from '@babel/types';
2
2
  export type AcceptedNodeType = Identifier | TSParameterProperty | ClassProperty;
3
3
  export declare function providerIsNotNamed(decorator: Decorator): boolean;
4
4
  export declare function addNameToProviderArguments(node: ClassMethod, decorator: Decorator): void;
5
- export declare function getDecoratorArgument(decorator: Decorator): ObjectExpression | undefined;
5
+ export declare function getDecoratorObjectArgument(decorator: Decorator): ObjectExpression | undefined;
6
+ export declare function getDecoratorStringArgument(decorator: Decorator): StringLiteral | undefined;
6
7
  export declare function getMethodName(node: ClassMethod): string;
7
8
  export declare function getDecoratorByName(decorators: Array<Decorator> | undefined | null, decoratorName: string): Decorator | undefined;
8
9
  export declare function getDecoratorName(decorator?: Decorator): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/helpers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EACX,aAAa,EACb,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,IAAI,EACL,MAAM,cAAc,CAAC;AAItB,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,mBAAmB,GAAG,aAAa,CAAC;AAEhF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAWhE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,QAOjF;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAKvF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAGvD;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,EAC/C,aAAa,EAAE,MAAM,GACpB,SAAS,GAAG,SAAS,CAEvB;AAED,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAI7E;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,SAAS,QAOrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/helpers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EACX,aAAa,EACb,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,IAAI,EACJ,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAItB,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,mBAAmB,GAAG,aAAa,CAAC;AAEhF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAWhE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,QAOjF;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAK7F;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,CAK1F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAGvD;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,EAC/C,aAAa,EAAE,MAAM,GACpB,SAAS,GAAG,SAAS,CAEvB;AAED,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAI7E;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,SAAS,QAOrB"}
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.providerIsNotNamed = providerIsNotNamed;
4
4
  exports.addNameToProviderArguments = addNameToProviderArguments;
5
- exports.getDecoratorArgument = getDecoratorArgument;
5
+ exports.getDecoratorObjectArgument = getDecoratorObjectArgument;
6
+ exports.getDecoratorStringArgument = getDecoratorStringArgument;
6
7
  exports.getMethodName = getMethodName;
7
8
  exports.getDecoratorByName = getDecoratorByName;
8
9
  exports.getDecoratorName = getDecoratorName;
@@ -11,7 +12,7 @@ exports.passParamNameAsInjectArgument = passParamNameAsInjectArgument;
11
12
  const core_1 = require("@babel/core");
12
13
  const never = '';
13
14
  function providerIsNotNamed(decorator) {
14
- const argument = getDecoratorArgument(decorator);
15
+ const argument = getDecoratorObjectArgument(decorator);
15
16
  if (core_1.types.isObjectExpression(argument)) {
16
17
  return argument.properties.find((p) => {
17
18
  if (core_1.types.isObjectProperty(p)) {
@@ -23,16 +24,22 @@ function providerIsNotNamed(decorator) {
23
24
  return true;
24
25
  }
25
26
  function addNameToProviderArguments(node, decorator) {
26
- const argument = getDecoratorArgument(decorator) ?? core_1.types.objectExpression([]);
27
+ const argument = getDecoratorObjectArgument(decorator) ?? core_1.types.objectExpression([]);
27
28
  argument.properties.push(core_1.types.objectProperty(core_1.types.identifier('name'), core_1.types.stringLiteral(getMethodName(node))));
28
29
  decorator.expression.arguments = [argument];
29
30
  }
30
- function getDecoratorArgument(decorator) {
31
+ function getDecoratorObjectArgument(decorator) {
31
32
  if (core_1.types.isCallExpression(decorator.expression)) {
32
33
  return decorator.expression.arguments.find(a => core_1.types.isObjectExpression(a));
33
34
  }
34
35
  return undefined;
35
36
  }
37
+ function getDecoratorStringArgument(decorator) {
38
+ if (core_1.types.isCallExpression(decorator.expression)) {
39
+ return decorator.expression.arguments.find(a => core_1.types.isStringLiteral(a));
40
+ }
41
+ return undefined;
42
+ }
36
43
  function getMethodName(node) {
37
44
  if (core_1.types.isIdentifier(node.key))
38
45
  return node.key.name;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/helpers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/helpers/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AAmClD,MAAM,CAAC,OAAO,UAAU,MAAM,gDAE7B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AAwClD,MAAM,CAAC,OAAO,UAAU,MAAM,gDAE7B"}
@@ -16,22 +16,27 @@ const internalVisitor = {
16
16
  ClassMethod: {
17
17
  enter({ node }) {
18
18
  unmagler_1.default.saveClassMethod('provides', node);
19
+ unmagler_1.default.saveClassMethod('Provides', node);
19
20
  },
20
21
  },
21
22
  ClassProperty: {
22
23
  enter({ node }) {
23
24
  unmagler_1.default.saveClassProperty('inject', node);
24
25
  unmagler_1.default.saveClassProperty('lateInject', node);
26
+ unmagler_1.default.saveClassProperty('Inject', node);
27
+ unmagler_1.default.saveClassProperty('LateInject', node);
25
28
  },
26
29
  },
27
30
  Identifier: {
28
31
  enter({ node }) {
29
32
  unmagler_1.default.saveIdentifier('inject', node);
33
+ unmagler_1.default.saveIdentifier('Inject', node);
30
34
  },
31
35
  },
32
36
  TSParameterProperty: {
33
37
  enter({ node }) {
34
38
  unmagler_1.default.saveTSParameterProperty('inject', node);
39
+ unmagler_1.default.saveTSParameterProperty('Inject', node);
35
40
  },
36
41
  },
37
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian/index.ts"],"names":[],"mappings":";;;;;AA0CA,yBAEC;AApCD,0DAAkC;AAElC,MAAM,4BAA4B,GAAc;IAC9C,OAAO,EAAE;QACP,OAAO,CAAC,IAAuB;YAC7B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACjC,CAAC;KACF;CACF,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,WAAW,EAAE;QACX,KAAK,CAAC,EAAE,IAAI,EAAyB;YACnC,kBAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;KACF;IACD,aAAa,EAAE;QACb,KAAK,CAAC,EAAE,IAAI,EAA2B;YACrC,kBAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3C,kBAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;KACF;IACD,UAAU,EAAE;QACV,KAAK,CAAC,EAAE,IAAI,EAAwB;YAClC,kBAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;KACF;IACD,mBAAmB,EAAE;QACnB,KAAK,CAAC,EAAE,IAAI,EAAiC;YAC3C,kBAAQ,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;KACF;CACF,CAAC;AAEF,SAAwB,MAAM;IAC5B,OAAO,4BAA4B,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian/index.ts"],"names":[],"mappings":";;;;;AA+CA,yBAEC;AAzCD,0DAAkC;AAElC,MAAM,4BAA4B,GAAc;IAC9C,OAAO,EAAE;QACP,OAAO,CAAC,IAAuB;YAC7B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACjC,CAAC;KACF;CACF,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,WAAW,EAAE;QACX,KAAK,CAAC,EAAE,IAAI,EAAyB;YACnC,kBAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC3C,kBAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;KACF;IACD,aAAa,EAAE;QACb,KAAK,CAAC,EAAE,IAAI,EAA2B;YACrC,kBAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3C,kBAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC/C,kBAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3C,kBAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;KACF;IACD,UAAU,EAAE;QACV,KAAK,CAAC,EAAE,IAAI,EAAwB;YAClC,kBAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACxC,kBAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;KACF;IACD,mBAAmB,EAAE;QACnB,KAAK,CAAC,EAAE,IAAI,EAAiC;YAC3C,kBAAQ,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACjD,kBAAQ,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;KACF;CACF,CAAC;AAEF,SAAwB,MAAM;IAC5B,OAAO,4BAA4B,CAAC;AACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/unmagler/property.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,iBAAS,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,QAK7D;AAMD,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/unmagler/property.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAEpB,iBAAS,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,QAK7D;AAMD,eAAe,gBAAgB,CAAC"}
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const helpers_1 = require("../helpers");
4
4
  function savePropertyName(name, node) {
5
5
  const decorator = (0, helpers_1.getDecoratorByName)(node.decorators, name);
6
- if ((0, helpers_1.getDecoratorName)(decorator) === name && injectIsNotNamed(decorator)) {
6
+ if (((0, helpers_1.getDecoratorName)(decorator) === name) && injectIsNotNamed(decorator)) {
7
7
  (0, helpers_1.passParamNameAsInjectArgument)(node, decorator);
8
8
  }
9
9
  }
10
10
  function injectIsNotNamed(decorator) {
11
- return (0, helpers_1.getDecoratorArgument)(decorator) === undefined;
11
+ return (0, helpers_1.getDecoratorStringArgument)(decorator) === undefined;
12
12
  }
13
13
  exports.default = savePropertyName;
14
14
  //# sourceMappingURL=property.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"property.js","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/unmagler/property.ts"],"names":[],"mappings":";;AACA,wCAMoB;AAEpB,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAsB;IAC5D,MAAM,SAAS,GAAG,IAAA,4BAAkB,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,IAAA,0BAAgB,EAAC,SAAS,CAAC,KAAK,IAAI,IAAI,gBAAgB,CAAC,SAAU,CAAC,EAAE,CAAC;QACzE,IAAA,uCAA6B,EAAC,IAAI,EAAE,SAAU,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAoB;IAC5C,OAAO,IAAA,8BAAoB,EAAC,SAAS,CAAC,KAAK,SAAS,CAAC;AACvD,CAAC;AAED,kBAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"property.js","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/unmagler/property.ts"],"names":[],"mappings":";;AACA,wCAMoB;AAEpB,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAsB;IAC5D,MAAM,SAAS,GAAG,IAAA,4BAAkB,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAA,0BAAgB,EAAC,SAAS,CAAC,KAAK,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAU,CAAC,EAAE,CAAC;QAC3E,IAAA,uCAA6B,EAAC,IAAI,EAAE,SAAU,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAoB;IAC5C,OAAO,IAAA,oCAA0B,EAAC,SAAS,CAAC,KAAK,SAAS,CAAC;AAC7D,CAAC;AAED,kBAAe,gBAAgB,CAAC"}
package/eslint.config.mjs CHANGED
@@ -48,6 +48,7 @@ export default eslintTs.config(
48
48
  "@typescript-eslint/no-explicit-any": "off",
49
49
  "@typescript-eslint/no-unsafe-member-access": "off",
50
50
  "@typescript-eslint/no-empty-object-type": "off",
51
+ "@typescript-eslint/no-require-imports": "off",
51
52
  "@typescript-eslint/no-unsafe-assignment": "off",
52
53
  "@typescript-eslint/no-unsafe-argument": "off",
53
54
  "@typescript-eslint/no-unsafe-return": "off",
@@ -86,7 +87,7 @@ export default eslintTs.config(
86
87
  }],
87
88
  "@stylistic/max-statements-per-line": ["error", { "max": 2 }],
88
89
  "@stylistic/no-extra-semi": "error",
89
-
90
+ "@stylistic/operator-linebreak": ["error", "before", { "overrides": { "?": "after", ":": "after" } }],
90
91
  "@stylistic/lines-between-class-members": ["error", "always", {
91
92
  exceptAfterSingleLine: true,
92
93
  }],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-obsidian",
3
- "version": "3.0.0-alpha.3",
3
+ "version": "3.0.0-alpha.7",
4
4
  "description": "Dependency injection framework for React and React Native applications",
5
5
  "scripts": {
6
6
  "prepack": "npm run lint && tsc --project tsconfig.prod.json",
@@ -21,14 +21,14 @@
21
21
  "react": "*"
22
22
  },
23
23
  "devDependencies": {
24
- "@babel/core": "^7.25.2",
25
- "@babel/eslint-parser": "^7.25.1",
26
- "@babel/plugin-proposal-decorators": "^7.24.7",
27
- "@babel/plugin-transform-class-properties": "^7.25.4",
28
- "@babel/preset-env": "^7.25.4",
29
- "@babel/preset-react": "^7.24.7",
30
- "@babel/preset-typescript": "^7.24.7",
31
- "@babel/types": "^7.25.6",
24
+ "@babel/core": "^7.25.8",
25
+ "@babel/eslint-parser": "^7.25.8",
26
+ "@babel/plugin-proposal-decorators": "^7.25.7",
27
+ "@babel/plugin-transform-class-properties": "^7.25.7",
28
+ "@babel/preset-env": "^7.25.8",
29
+ "@babel/preset-react": "^7.25.7",
30
+ "@babel/preset-typescript": "^7.25.7",
31
+ "@babel/types": "^7.25.8",
32
32
  "@eslint/compat": "^1.1.1",
33
33
  "@eslint/eslintrc": "^3.1.0",
34
34
  "@eslint/js": "^9.9.1",
@@ -44,8 +44,11 @@
44
44
  "@typescript-eslint/parser": "^8.4.0",
45
45
  "cross-env": "^7.0.3",
46
46
  "eslint": "^9.9.1",
47
+ "eslint-plugin-import": "^2.25.2",
48
+ "eslint-plugin-import-newlines": "^1.1.5",
47
49
  "eslint-plugin-jest": "^28.8.3",
48
- "eslint-plugin-obsidian": "3.0.0-alpha.3",
50
+ "eslint-plugin-jest-formatting": "^3.1.0",
51
+ "eslint-plugin-obsidian": "3.0.0-alpha.7",
49
52
  "eslint-plugin-react": "^7.35.0",
50
53
  "eslint-plugin-react-hooks": "^4.6.2",
51
54
  "eslint-plugin-unused-imports": "^4.1.3",
package/src/Obsidian.ts CHANGED
@@ -1,20 +1,24 @@
1
1
  import graphRegistry from './graph/registry/GraphRegistry';
2
2
  import { ObjectGraph } from './graph/ObjectGraph';
3
- import { GraphInternals, ServiceLocator } from './types';
3
+ import { GraphInternals, ServiceLocator, type Constructable } from './types';
4
4
  import { GraphMiddleware } from './graph/registry/GraphMiddleware';
5
5
  import lateInjector from './injectors/class/LateInjector';
6
6
  import serviceLocatorFactory from './graph/ServiceLocatorFactory';
7
7
 
8
8
  export default class Obsidian {
9
- obtain<T extends ObjectGraph<P>, P>(
10
- Graph: new(...args: P[]) => T,
9
+ registerGraph(key: string, generator: () => Constructable<ObjectGraph>) {
10
+ graphRegistry.registerGraphGenerator(key, generator);
11
+ }
12
+
13
+ obtain<T extends ObjectGraph<P>, P = unknown>(
14
+ keyOrGraph: string | (new(...args: P[]) => T),
11
15
  props?: P,
12
16
  ): ServiceLocator<Omit<T, GraphInternals>> {
13
- return serviceLocatorFactory.fromGraph(Graph, props);
17
+ return serviceLocatorFactory.fromGraph(keyOrGraph, props);
14
18
  }
15
19
 
16
- inject<T extends object>(target: T, graph?: ObjectGraph) {
17
- return lateInjector.inject(target, graph);
20
+ inject<T extends object>(target: T, keyOrGraph?: string | ObjectGraph) {
21
+ return lateInjector.inject(target, keyOrGraph);
18
22
  }
19
23
 
20
24
  addGraphMiddleware(middleware: GraphMiddleware) {
@@ -1,7 +1,7 @@
1
1
  import { defineMetadata } from '../utils/reflect';
2
2
 
3
3
  type Options = {
4
- scope?: 'component' | 'feature';
4
+ scope?: 'component' | 'feature' | (string & {});
5
5
  };
6
6
 
7
7
  export function lifecycleBound(options?: Options) {