react-obsidian 2.10.2 → 2.11.0-alpha.1

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 (193) hide show
  1. package/dist/src/GraphProperties.js +1 -3
  2. package/dist/src/GraphProperties.js.map +1 -1
  3. package/dist/src/ProvidedPropertiesStore.js +4 -9
  4. package/dist/src/ProvidedPropertiesStore.js.map +1 -1
  5. package/dist/src/ReferenceCounter.js +2 -5
  6. package/dist/src/ReferenceCounter.js.map +1 -1
  7. package/dist/src/decorators/Graph.js +1 -2
  8. package/dist/src/decorators/Graph.js.map +1 -1
  9. package/dist/src/decorators/LifecycleBound.js +2 -4
  10. package/dist/src/decorators/LifecycleBound.js.map +1 -1
  11. package/dist/src/decorators/Memoize.d.ts.map +1 -1
  12. package/dist/src/decorators/Memoize.js +1 -2
  13. package/dist/src/decorators/Memoize.js.map +1 -1
  14. package/dist/src/decorators/Singleton.d.ts.map +1 -1
  15. package/dist/src/decorators/Singleton.js +1 -2
  16. package/dist/src/decorators/Singleton.js.map +1 -1
  17. package/dist/src/decorators/inject/Inject.d.ts +1 -1
  18. package/dist/src/decorators/inject/Inject.d.ts.map +1 -1
  19. package/dist/src/decorators/inject/Inject.js +1 -2
  20. package/dist/src/decorators/inject/Inject.js.map +1 -1
  21. package/dist/src/decorators/inject/Injectable.js +1 -2
  22. package/dist/src/decorators/inject/Injectable.js.map +1 -1
  23. package/dist/src/decorators/inject/LateInject.js +1 -2
  24. package/dist/src/decorators/inject/LateInject.js.map +1 -1
  25. package/dist/src/decorators/provides/MemoizeDescriptor.d.ts.map +1 -1
  26. package/dist/src/decorators/provides/MemoizeDescriptor.js +1 -3
  27. package/dist/src/decorators/provides/MemoizeDescriptor.js.map +1 -1
  28. package/dist/src/decorators/provides/Provides.js +1 -2
  29. package/dist/src/decorators/provides/Provides.js.map +1 -1
  30. package/dist/src/graph/CircularDependenciesDetector.js +2 -1
  31. package/dist/src/graph/CircularDependenciesDetector.js.map +1 -1
  32. package/dist/src/graph/ObjectGraph.d.ts +1 -1
  33. package/dist/src/graph/ObjectGraph.d.ts.map +1 -1
  34. package/dist/src/graph/ObjectGraph.js +6 -6
  35. package/dist/src/graph/ObjectGraph.js.map +1 -1
  36. package/dist/src/graph/PropertyRetriever.d.ts +1 -1
  37. package/dist/src/graph/PropertyRetriever.d.ts.map +1 -1
  38. package/dist/src/graph/PropertyRetriever.js +3 -2
  39. package/dist/src/graph/PropertyRetriever.js.map +1 -1
  40. package/dist/src/graph/PropertyRetrieverDelegate.d.ts +1 -1
  41. package/dist/src/graph/PropertyRetrieverDelegate.d.ts.map +1 -1
  42. package/dist/src/graph/ProviderBinder.d.ts.map +1 -1
  43. package/dist/src/graph/ProviderBinder.js +2 -4
  44. package/dist/src/graph/ProviderBinder.js.map +1 -1
  45. package/dist/src/graph/ServiceLocatorFactory.d.ts.map +1 -1
  46. package/dist/src/graph/VisitedNodes.js +2 -4
  47. package/dist/src/graph/VisitedNodes.js.map +1 -1
  48. package/dist/src/graph/registry/GraphMiddlewareChain.js +1 -0
  49. package/dist/src/graph/registry/GraphMiddlewareChain.js.map +1 -1
  50. package/dist/src/graph/registry/GraphRegistry.d.ts.map +1 -1
  51. package/dist/src/graph/registry/GraphRegistry.js +19 -26
  52. package/dist/src/graph/registry/GraphRegistry.js.map +1 -1
  53. package/dist/src/graph/registry/Middleware.js +1 -0
  54. package/dist/src/graph/registry/Middleware.js.map +1 -1
  55. package/dist/src/graph/registry/ObtainLifecycleBoundGraphException.js.map +1 -1
  56. package/dist/src/injectors/class/ClassInjector.d.ts.map +1 -1
  57. package/dist/src/injectors/class/ClassInjector.js +6 -5
  58. package/dist/src/injectors/class/ClassInjector.js.map +1 -1
  59. package/dist/src/injectors/class/ConstructorArgs.js +1 -3
  60. package/dist/src/injectors/class/ConstructorArgs.js.map +1 -1
  61. package/dist/src/injectors/class/InjectionMetadata.js +5 -9
  62. package/dist/src/injectors/class/InjectionMetadata.js.map +1 -1
  63. package/dist/src/injectors/class/LateInjector.js +1 -1
  64. package/dist/src/injectors/class/LateInjector.js.map +1 -1
  65. package/dist/src/injectors/components/ComponentInjector.js.map +1 -1
  66. package/dist/src/injectors/components/InjectComponent.d.ts +1 -1
  67. package/dist/src/injectors/components/InjectComponent.d.ts.map +1 -1
  68. package/dist/src/injectors/components/InjectComponent.js.map +1 -1
  69. package/dist/src/injectors/components/PropsInjector.d.ts.map +1 -1
  70. package/dist/src/injectors/components/PropsInjector.js +1 -1
  71. package/dist/src/injectors/components/PropsInjector.js.map +1 -1
  72. package/dist/src/injectors/components/useGraph.d.ts +1 -1
  73. package/dist/src/injectors/components/useGraph.d.ts.map +1 -1
  74. package/dist/src/injectors/components/useGraph.js +1 -1
  75. package/dist/src/injectors/components/useGraph.js.map +1 -1
  76. package/dist/src/injectors/components/useInjectionToken.d.ts.map +1 -1
  77. package/dist/src/injectors/components/useInjectionToken.js +1 -1
  78. package/dist/src/injectors/components/useInjectionToken.js.map +1 -1
  79. package/dist/src/injectors/hooks/HookInjector.js +2 -1
  80. package/dist/src/injectors/hooks/HookInjector.js.map +1 -1
  81. package/dist/src/injectors/hooks/InjectHook.d.ts.map +1 -1
  82. package/dist/src/injectors/hooks/InjectHook.js +2 -3
  83. package/dist/src/injectors/hooks/InjectHook.js.map +1 -1
  84. package/dist/src/model/Model.js.map +1 -1
  85. package/dist/src/observable/Observable.d.ts.map +1 -1
  86. package/dist/src/observable/Observable.js +3 -2
  87. package/dist/src/observable/Observable.js.map +1 -1
  88. package/dist/src/observable/cold/ColdMediatorObservable.d.ts.map +1 -1
  89. package/dist/src/observable/cold/ColdMediatorObservable.js +3 -4
  90. package/dist/src/observable/cold/ColdMediatorObservable.js.map +1 -1
  91. package/dist/src/observable/cold/useColdObservers.js +1 -2
  92. package/dist/src/observable/cold/useColdObservers.js.map +1 -1
  93. package/dist/src/observable/mapObservablesToValues.js +1 -2
  94. package/dist/src/observable/mapObservablesToValues.js.map +1 -1
  95. package/dist/src/observable/mediator/MediatorObservable.js.map +1 -1
  96. package/dist/src/observable/useObserver.d.ts.map +1 -1
  97. package/dist/src/observable/useObserver.js +1 -3
  98. package/dist/src/observable/useObserver.js.map +1 -1
  99. package/dist/src/observable/useObservers.d.ts +2 -1
  100. package/dist/src/observable/useObservers.d.ts.map +1 -1
  101. package/dist/src/observable/useObservers.js +2 -3
  102. package/dist/src/observable/useObservers.js.map +1 -1
  103. package/dist/src/utils/React.d.ts.map +1 -1
  104. package/dist/src/utils/React.js +2 -3
  105. package/dist/src/utils/React.js.map +1 -1
  106. package/dist/src/utils/isDev.js +4 -8
  107. package/dist/src/utils/isDev.js.map +1 -1
  108. package/dist/src/utils/isNumber.js +1 -2
  109. package/dist/src/utils/isNumber.js.map +1 -1
  110. package/dist/src/utils/uniqueId.js +2 -3
  111. package/dist/src/utils/uniqueId.js.map +1 -1
  112. package/dist/test/fixtures/CircularDependencyFromSubgraph.d.ts +1 -1
  113. package/dist/test/fixtures/CircularDependencyFromSubgraph.d.ts.map +1 -1
  114. package/dist/test/fixtures/CircularDependencyFromSubgraph.js +2 -2
  115. package/dist/test/fixtures/CircularDependencyFromSubgraph.js.map +1 -1
  116. package/dist/test/fixtures/CircularDependencyGraph.d.ts.map +1 -1
  117. package/dist/test/fixtures/CircularDependencyGraph.js +3 -2
  118. package/dist/test/fixtures/CircularDependencyGraph.js.map +1 -1
  119. package/dist/test/fixtures/CircularDependencyGraph2.d.ts.map +1 -1
  120. package/dist/test/fixtures/CircularDependencyGraph2.js +3 -2
  121. package/dist/test/fixtures/CircularDependencyGraph2.js.map +1 -1
  122. package/dist/test/fixtures/GraphWithMultipleDependencies.js +2 -2
  123. package/dist/test/fixtures/GraphWithMultipleDependencies.js.map +1 -1
  124. package/dist/test/fixtures/GraphWithOnBind.d.ts +1 -1
  125. package/dist/test/fixtures/GraphWithOnBind.d.ts.map +1 -1
  126. package/dist/test/fixtures/GraphWithOnBind.js +3 -2
  127. package/dist/test/fixtures/GraphWithOnBind.js.map +1 -1
  128. package/dist/test/fixtures/LifecycleBoundGraph.js +6 -4
  129. package/dist/test/fixtures/LifecycleBoundGraph.js.map +1 -1
  130. package/dist/test/fixtures/LifecycleBoundWithLifecycleBoundSubgraph.d.ts.map +1 -1
  131. package/dist/test/fixtures/LifecycleBoundWithLifecycleBoundSubgraph.js +2 -2
  132. package/dist/test/fixtures/LifecycleBoundWithLifecycleBoundSubgraph.js.map +1 -1
  133. package/dist/test/fixtures/MainGraph.js.map +1 -1
  134. package/dist/test/fixtures/ScopedLifecycleBoundGraph.js +2 -2
  135. package/dist/test/fixtures/ScopedLifecycleBoundGraph.js.map +1 -1
  136. package/dist/test/fixtures/SingletonGraph.js +1 -4
  137. package/dist/test/fixtures/SingletonGraph.js.map +1 -1
  138. package/dist/test/fixtures/StringProvider.js +1 -0
  139. package/dist/test/fixtures/StringProvider.js.map +1 -1
  140. package/dist/test/fixtures/Subgraph.js.map +1 -1
  141. package/dist/test/fixtures/SubgraphWithCircularDependency.d.ts.map +1 -1
  142. package/dist/test/fixtures/SubgraphWithCircularDependency.js +3 -2
  143. package/dist/test/fixtures/SubgraphWithCircularDependency.js.map +1 -1
  144. package/dist/test/fixtures/ThrowingMainGraph.js.map +1 -1
  145. package/dist/test/fixtures/UniqueNumberGraph.d.ts.map +1 -1
  146. package/dist/test/fixtures/UniqueNumberGraph.js +3 -3
  147. package/dist/test/fixtures/UniqueNumberGraph.js.map +1 -1
  148. package/dist/testkit/index.d.ts.map +1 -1
  149. package/dist/testkit/index.js +0 -1
  150. package/dist/testkit/index.js.map +1 -1
  151. package/dist/testkit/mockGraphs.js +1 -2
  152. package/dist/testkit/mockGraphs.js.map +1 -1
  153. package/dist/testkit/mockModel.js +1 -2
  154. package/dist/testkit/mockModel.js.map +1 -1
  155. package/dist/transformers/babel-plugin-obsidian/helpers/index.d.ts +2 -2
  156. package/dist/transformers/babel-plugin-obsidian/helpers/index.d.ts.map +1 -1
  157. package/dist/transformers/babel-plugin-obsidian/helpers/index.js +13 -16
  158. package/dist/transformers/babel-plugin-obsidian/helpers/index.js.map +1 -1
  159. package/dist/transformers/babel-plugin-obsidian/index.d.ts.map +1 -1
  160. package/dist/transformers/babel-plugin-obsidian/index.js +1 -1
  161. package/dist/transformers/babel-plugin-obsidian/index.js.map +1 -1
  162. package/dist/transformers/babel-plugin-obsidian/unmagler/method.d.ts.map +1 -1
  163. package/dist/transformers/babel-plugin-obsidian/unmagler/method.js +1 -3
  164. package/dist/transformers/babel-plugin-obsidian/unmagler/method.js.map +1 -1
  165. package/dist/transformers/babel-plugin-obsidian/unmagler/property.js.map +1 -1
  166. package/eslint.config.mjs +140 -0
  167. package/package.json +27 -25
  168. package/src/decorators/Memoize.ts +0 -1
  169. package/src/decorators/inject/Inject.ts +1 -1
  170. package/src/decorators/provides/MemoizeDescriptor.ts +0 -1
  171. package/src/graph/ObjectGraph.ts +2 -4
  172. package/src/graph/PropertyRetriever.ts +4 -4
  173. package/src/graph/PropertyRetrieverDelegate.ts +1 -1
  174. package/src/graph/ProviderBinder.ts +1 -2
  175. package/src/graph/registry/GraphRegistry.ts +7 -7
  176. package/src/graph/registry/ObtainLifecycleBoundGraphException.ts +1 -1
  177. package/src/injectors/class/ClassInjector.ts +2 -2
  178. package/src/injectors/components/ComponentInjector.tsx +1 -1
  179. package/src/injectors/components/InjectComponent.ts +3 -3
  180. package/src/injectors/components/PropsInjector.ts +0 -1
  181. package/src/injectors/components/useGraph.ts +1 -2
  182. package/src/injectors/hooks/InjectHook.ts +0 -1
  183. package/src/observable/Observable.ts +2 -2
  184. package/src/observable/cold/ColdMediatorObservable.ts +0 -1
  185. package/src/observable/cold/useColdObservers.ts +1 -1
  186. package/src/observable/mediator/MediatorObservable.ts +1 -1
  187. package/src/observable/useObserver.ts +1 -2
  188. package/src/observable/useObservers.ts +4 -3
  189. package/src/utils/isDev.ts +1 -2
  190. package/testkit/index.ts +0 -1
  191. package/transformers/babel-plugin-obsidian/helpers/index.ts +8 -8
  192. package/transformers/babel-plugin-obsidian/index.ts +0 -1
  193. package/transformers/babel-plugin-obsidian/unmagler/method.ts +1 -2
@@ -32,7 +32,7 @@ export default class ComponentInjector {
32
32
  const proxiedProps = new PropsInjector(graph).inject(passedProps);
33
33
 
34
34
  return (
35
- <GraphContext.Provider value={{injectionToken}}>
35
+ <GraphContext.Provider value={{ injectionToken }}>
36
36
  {Target(proxiedProps as unknown as PropsWithChildren<P>)}
37
37
  </GraphContext.Provider>
38
38
  );
@@ -18,9 +18,9 @@ export const injectComponent = <OwnProps = Discriminator, InjectedProps = Discri
18
18
  assertGraph(Graph, Target);
19
19
 
20
20
  return componentInjector.inject(Target, Graph) as React.FunctionComponent<
21
- InjectedProps extends Discriminator ?
22
- OwnProps extends Discriminator ? Partial<OwnProps> : OwnProps :
23
- OwnProps extends InjectedProps ? Partial<OwnProps> : OwnProps & Partial<InjectedProps>
21
+ InjectedProps extends Discriminator ?
22
+ OwnProps extends Discriminator ? Partial<OwnProps> : OwnProps :
23
+ OwnProps extends InjectedProps ? Partial<OwnProps> : OwnProps & Partial<InjectedProps>
24
24
  >;
25
25
  };
26
26
  function assertGraph(Graph: Constructable<ObjectGraph<unknown>>, Target: any) {
@@ -4,7 +4,6 @@ export default class PropsInjector<Props> {
4
4
  constructor(private graph: ObjectGraph) {}
5
5
 
6
6
  inject(passedProps: Props): Partial<Props> {
7
- // eslint-disable-next-line prefer-object-spread
8
7
  return new Proxy(Object.assign({}, passedProps), {
9
8
  get: (target: object, p: string, receiver: any): any => {
10
9
  return p in target ? Reflect.get(target, p, receiver) : this.graph.retrieve(p, receiver);
@@ -10,7 +10,6 @@ export default <P>(
10
10
  props?: Partial<P>,
11
11
  injectionToken?: string,
12
12
  ) => {
13
-
14
13
  const [graph] = useState(() => {
15
14
  const resolvedGraph = graphRegistry.resolve(Graph, 'lifecycleOwner', props, injectionToken);
16
15
  resolvedGraph.onBind(target);
@@ -18,7 +17,7 @@ export default <P>(
18
17
  });
19
18
  useEffect(() => {
20
19
  referenceCounter.retain(graph);
21
- return () => referenceCounter.release(graph, (g) => graphRegistry.clear(g));
20
+ return () => referenceCounter.release(graph, g => graphRegistry.clear(g));
22
21
  }, [graph]);
23
22
  return graph;
24
23
  };
@@ -1,4 +1,3 @@
1
- /* eslint-disable max-len */
2
1
  import { ObjectGraph } from '../../graph/ObjectGraph';
3
2
  import { Constructable } from '../../types';
4
3
  import HookInjector from './HookInjector';
@@ -14,7 +14,7 @@ export class Observable<T> implements IObservable<T> {
14
14
 
15
15
  public set value(value: T) {
16
16
  this.currentValue = value;
17
- this.subscribers.forEach((subscriber) => subscriber(value));
17
+ this.subscribers.forEach(subscriber => subscriber(value));
18
18
  }
19
19
 
20
20
  async first(): Promise<T> {
@@ -35,7 +35,7 @@ export class Observable<T> implements IObservable<T> {
35
35
  return () => this.subscribers.delete(onNext);
36
36
  }
37
37
 
38
- public unsubscribe(onNext:OnNext<T>) {
38
+ public unsubscribe(onNext: OnNext<T>) {
39
39
  if (!this.subscribers.has(onNext)) {
40
40
  throw new Error(`Can't unsubscribe, subscriber doesn't exist`);
41
41
  }
@@ -1,7 +1,6 @@
1
1
  import { Observable } from '../Observable';
2
2
  import { MediatorObservable } from '../mediator/MediatorObservable';
3
3
  import { OnNext } from '../types';
4
-
5
4
  export class ColdMediatorObservable<T extends object> extends MediatorObservable<T> {
6
5
  constructor(obj: T, private readonly handler = new PropertyAccessTrackingProxy<T>()) {
7
6
  super(new Proxy(obj, handler));
@@ -10,7 +10,7 @@ export function useColdObservables<T extends Record<string, any>>(observables: T
10
10
  const [values, setValues] = useState(() => mediator.value as ObservedValues<T>);
11
11
 
12
12
  useEffect(() => {
13
- Object.keys(observables as {}).forEach((key) => {
13
+ Object.keys(observables).forEach((key) => {
14
14
  mediator.addSource(observables[key], (value) => {
15
15
  mediator.setValue(key, value);
16
16
  });
@@ -67,7 +67,7 @@ export class MediatorObservable<T> extends Observable<T> {
67
67
  values[index] = next;
68
68
  } else {
69
69
  values[index] = next;
70
- this.value = mapNext(values, this.value) as T;
70
+ this.value = mapNext(values, this.value);
71
71
  }
72
72
  });
73
73
  });
@@ -1,4 +1,3 @@
1
- /* eslint-disable no-param-reassign */
2
1
  import {
3
2
  useCallback,
4
3
  useEffect,
@@ -26,6 +25,6 @@ export function useObserver<T>(observableOrGenerator: ObservableOrGenerator<T>):
26
25
  return [value, onNext];
27
26
  }
28
27
 
29
- function getOrGenerateObservable(observableOrGenerator: ObservableOrGenerator<any>) {
28
+ function getOrGenerateObservable<T>(observableOrGenerator: ObservableOrGenerator<T>): Observable<T> {
30
29
  return observableOrGenerator instanceof Observable ? observableOrGenerator : observableOrGenerator();
31
30
  }
@@ -2,15 +2,16 @@ import { useEffect, useState } from 'react';
2
2
  import { MediatorObservable } from './mediator/MediatorObservable';
3
3
  import { ObservedValues, Unsubscribe } from './types';
4
4
  import { mapObservablesToValues } from './mapObservablesToValues';
5
+ import type { Observable } from './Observable';
5
6
 
6
- export function useObservers<T extends Record<string, any>>(observables: T): ObservedValues<T> {
7
+ export function useObservers<T extends Record<string, Observable<any>>>(observables: T): ObservedValues<T> {
7
8
  const [values, setValues] = useState(() => mapObservablesToValues(observables));
8
9
 
9
10
  useEffect(() => {
10
11
  const mediator = new MediatorObservable();
11
12
  const unsubscribers: Unsubscribe[] = [];
12
13
 
13
- Object.keys(observables as {}).forEach((key) => {
14
+ Object.keys(observables).forEach((key) => {
14
15
  const onNext = (value: any) => setValues({ ...values, [key]: value });
15
16
  mediator.addSource(observables[key], onNext);
16
17
 
@@ -19,7 +20,7 @@ export function useObservers<T extends Record<string, any>>(observables: T): Obs
19
20
  });
20
21
  });
21
22
 
22
- return () => unsubscribers.forEach((unsubscribe) => unsubscribe());
23
+ return () => unsubscribers.forEach(unsubscribe => unsubscribe());
23
24
  }, []);
24
25
 
25
26
  return values;
@@ -3,11 +3,10 @@ export function isDev(): boolean {
3
3
  }
4
4
 
5
5
  function isNodeDev(): boolean {
6
- // eslint-disable-next-line @typescript-eslint/dot-notation
7
6
  return ['test', 'development'].includes(process.env['NODE_ENV'] ?? '');
8
7
  }
9
8
 
10
9
  function isReactNativeDev(): boolean {
11
- // @ts-ignore
10
+ // @ts-expect-error __DEV__ is a global variable in React Native
12
11
  return __DEV__ as boolean ?? false;
13
12
  }
package/testkit/index.ts CHANGED
@@ -7,7 +7,6 @@ class TestKit {
7
7
  * @deprecated testKit.mockGraphs is deprecated, use mockGraphs instead
8
8
  */
9
9
  public mockGraphs(graphNameToGraph: Record<string, Constructable<ObjectGraph> | ((props: any) => ObjectGraph)>) {
10
- // eslint-disable-next-line no-console
11
10
  console.warn('testKit.mockGraphs is deprecated, use mockGraphs instead');
12
11
  return mockGraphs(graphNameToGraph);
13
12
  }
@@ -1,4 +1,3 @@
1
- /* eslint-disable no-param-reassign */
2
1
  import { types as t } from '@babel/core';
3
2
  import {
4
3
  CallExpression,
@@ -9,6 +8,7 @@ import {
9
8
  ObjectExpression,
10
9
  ObjectPattern,
11
10
  TSParameterProperty,
11
+ Node,
12
12
  } from '@babel/types';
13
13
 
14
14
  const never = '';
@@ -39,7 +39,7 @@ export function addNameToProviderArguments(node: ClassMethod, decorator: Decorat
39
39
 
40
40
  export function getDecoratorArgument(decorator: Decorator): ObjectExpression | undefined {
41
41
  if (t.isCallExpression(decorator.expression)) {
42
- return decorator.expression.arguments.find((a) => t.isObjectExpression(a)) as ObjectExpression;
42
+ return decorator.expression.arguments.find(a => t.isObjectExpression(a)) as ObjectExpression;
43
43
  }
44
44
  return undefined;
45
45
  }
@@ -53,17 +53,17 @@ export function getDecoratorByName(
53
53
  decorators: Array<Decorator> | undefined | null,
54
54
  decoratorName: string,
55
55
  ): Decorator | undefined {
56
- return decorators?.find((decorator) => get(decorator, 'expression.callee.name') === decoratorName);
56
+ return decorators?.find(decorator => get(decorator, 'expression.callee.name') === decoratorName);
57
57
  }
58
58
 
59
59
  export function getDecoratorName(decorator?: Decorator): string | undefined {
60
60
  return get(decorator, 'expression.callee.name');
61
61
  }
62
62
 
63
- export function paramsToDestructuringAssignment(params: (Identifier | any)[]): ObjectPattern {
63
+ export function paramsToDestructuringAssignment(params: Node[]): ObjectPattern {
64
64
  return t.objectPattern(params
65
- .filter((p) => t.isIdentifier(p))
66
- .map((p) => t.objectProperty(t.identifier(p.name), t.identifier(p.name))));
65
+ .filter(p => t.isIdentifier(p))
66
+ .map(p => t.objectProperty(t.identifier(p.name), t.identifier(p.name))));
67
67
  }
68
68
 
69
69
  export function passParamNameAsInjectArgument(
@@ -93,9 +93,9 @@ function getNodeName(node: AcceptedNodeType): string {
93
93
  return node.name;
94
94
  }
95
95
 
96
- function get(node: any, path: string): any {
96
+ function get<T>(node: any, path: string): T | undefined {
97
97
  if (node === undefined || node === null) return undefined;
98
98
  const [key, ...rest] = path.split('.');
99
- if (rest.length === 0) return node[key];
99
+ if (rest.length === 0) return node[key] as T;
100
100
  return get(node[key], rest.join('.'));
101
101
  }
@@ -1,4 +1,3 @@
1
- /* eslint-disable no-param-reassign */
2
1
  import {
3
2
  ClassMethod,
4
3
  ClassProperty,
@@ -16,9 +16,8 @@ function saveMethod(name: string, node: ClassMethod) {
16
16
  }
17
17
 
18
18
  function convertProviderParamsToDestructuringAssignment(node: ClassMethod) {
19
- if (node.params.length === 0) { return; }
19
+ if (node.params.length === 0) return;
20
20
  const destructuredParams = paramsToDestructuringAssignment(node.params);
21
- // eslint-disable-next-line no-param-reassign
22
21
  node.params.length = 0;
23
22
  node.params.push(destructuredParams);
24
23
  }