@servicetitan/react-ioc 23.0.0 → 23.2.0

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.
package/dist/await.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { FC, ReactNode } from 'react';
2
- export interface AwaitProps {
1
+ import { FC, PropsWithChildren, ReactNode } from 'react';
2
+ export declare type AwaitProps = PropsWithChildren<{
3
3
  promises: Promise<void>[];
4
4
  fallback?: NonNullable<ReactNode> | null;
5
- }
5
+ }>;
6
6
  export declare const Await: FC<AwaitProps>;
7
7
  //# sourceMappingURL=await.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"await.d.ts","sourceRoot":"","sources":["../src/await.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAsB,SAAS,EAAqB,MAAM,OAAO,CAAC;AAG7E,MAAM,WAAW,UAAU;IACvB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,UAAU,CAsBhC,CAAC"}
1
+ {"version":3,"file":"await.d.ts","sourceRoot":"","sources":["../src/await.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAQ,iBAAiB,EAAgB,SAAS,EAAqB,MAAM,OAAO,CAAC;AAGhG,oBAAY,UAAU,GAAG,iBAAiB,CAAC;IACvC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;CAC5C,CAAC,CAAC;AAEH,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,UAAU,CAsBhC,CAAC"}
package/dist/await.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"await.js","sourceRoot":"","sources":["../src/await.tsx"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAM,IAAI,EAA2B,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAOrD,MAAM,CAAC,MAAM,KAAK,GAAmB,CAAC,EAClC,QAAQ,EACR,QAAQ,GAAG,sBAAsB,EACjC,QAAQ,GACX,EAAE,EAAE;IACD,MAAM,IAAI,GAAG,OAAO,CAChB,GAAG,EAAE,CACD,IAAI,CAAK,GAAS,EAAE;QAChB,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5B,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAwB;SACtD,CAAC;IACN,CAAC,CAAA,CAAC,EACN,CAAC,QAAQ,CAAC,CACb,CAAC;IAEF,OAAO,CACH,KAAC,QAAQ,kBAAC,QAAQ,EAAE,QAAQ,gBACxB,KAAC,IAAI,cAAE,QAAQ,GAAQ,IAChB,CACd,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"await.js","sourceRoot":"","sources":["../src/await.tsx"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAM,IAAI,EAA8C,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAOrD,MAAM,CAAC,MAAM,KAAK,GAAmB,CAAC,EAClC,QAAQ,EACR,QAAQ,GAAG,sBAAsB,EACjC,QAAQ,GACX,EAAE,EAAE;IACD,MAAM,IAAI,GAAG,OAAO,CAChB,GAAG,EAAE,CACD,IAAI,CAA4B,GAAS,EAAE;QACvC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5B,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAwB;SACtD,CAAC;IACN,CAAC,CAAA,CAAC,EACN,CAAC,QAAQ,CAAC,CACb,CAAC;IAEF,OAAO,CACH,KAAC,QAAQ,kBAAC,QAAQ,EAAE,QAAQ,gBACxB,KAAC,IAAI,cAAE,QAAQ,GAAQ,IAChB,CACd,CAAC;AACN,CAAC,CAAC"}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
- export declare const defaultLoadingFallback: JSX.Element;
3
- export declare const defaultErrorFallback: JSX.Element;
1
+ export declare const defaultLoadingFallback: import("react/jsx-runtime").JSX.Element;
2
+ export declare const defaultErrorFallback: import("react/jsx-runtime").JSX.Element;
4
3
  //# sourceMappingURL=fallbacks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fallbacks.d.ts","sourceRoot":"","sources":["../src/fallbacks.tsx"],"names":[],"mappings":";AAAA,eAAO,MAAM,sBAAsB,aAAsB,CAAC;AAC1D,eAAO,MAAM,oBAAoB,aAAuC,CAAC"}
1
+ {"version":3,"file":"fallbacks.d.ts","sourceRoot":"","sources":["../src/fallbacks.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,yCAAsB,CAAC;AAC1D,eAAO,MAAM,oBAAoB,yCAAuC,CAAC"}
package/dist/provide.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ReactInstance, ComponentType } from 'react';
1
+ import { ComponentType, ReactInstance } from 'react';
2
2
  import { ProviderConfigEntrySingletons, ProviderConfigEntryInstances } from './provider';
3
3
  export interface WrappedComponent<P> {
4
4
  wrappedComponent: ComponentType<P>;
@@ -1,4 +1,4 @@
1
- import { FC, ReactElement } from 'react';
1
+ import { FC, PropsWithChildren, ReactElement } from 'react';
2
2
  import { interfaces } from 'inversify';
3
3
  import { Token, SymbolToken } from './common';
4
4
  export declare type ProviderConfigEntrySingletons<T> = ClassProviderConfigEntry<T> | ValueProviderConfigEntry<T>;
@@ -20,12 +20,12 @@ interface ValueProviderConfigEntry<T> {
20
20
  useValue: T;
21
21
  inherit?: true;
22
22
  }
23
- export interface ProviderProps {
23
+ export declare type ProviderProps = PropsWithChildren<{
24
24
  singletons?: ProviderConfigEntrySingletons<any>[];
25
25
  instances?: ProviderConfigEntryInstances<any>[];
26
26
  loadingFallback?: ReactElement;
27
27
  errorFallback?: ReactElement;
28
- }
28
+ }>;
29
29
  export declare const Provider: FC<ProviderProps>;
30
30
  export {};
31
31
  //# sourceMappingURL=provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,YAAY,EAAyC,MAAM,OAAO,CAAC;AAEhF,OAAO,EAAa,UAAU,EAAE,MAAM,WAAW,CAAC;AAGlD,OAAO,EAAoB,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIhE,oBAAY,6BAA6B,CAAC,CAAC,IACrC,wBAAwB,CAAC,CAAC,CAAC,GAC3B,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAClC,oBAAY,4BAA4B,CAAC,CAAC,IAAI,iCAAiC,CAAC,CAAC,CAAC,CAAC;AACnF,oBAAY,mBAAmB,CAAC,CAAC,IAC3B,6BAA6B,CAAC,CAAC,CAAC,GAChC,4BAA4B,CAAC,CAAC,CAAC,CAAC;AAEtC,aAAK,wBAAwB,CAAC,CAAC,IACzB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GACrB,gCAAgC,CAAC,CAAC,CAAC,GACnC,6BAA6B,CAAC,CAAC,CAAC,CAAC;AAEvC,aAAK,iCAAiC,CAAC,CAAC,IAClC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GACrB,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAE3D,UAAU,gCAAgC,CAAC,CAAC;IACxC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,UAAU,6BAA6B,CAAC,CAAC;IACrC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,UAAU,wBAAwB,CAAC,CAAC;IAChC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC;IACZ,OAAO,CAAC,EAAE,IAAI,CAAC;CAClB;AA8GD,MAAM,WAAW,aAAa;IAC1B,UAAU,CAAC,EAAE,6BAA6B,CAAC,GAAG,CAAC,EAAE,CAAC;IAClD,SAAS,CAAC,EAAE,4BAA4B,CAAC,GAAG,CAAC,EAAE,CAAC;IAChD,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,aAAa,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAmFtC,CAAC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,EAAE,EACF,iBAAiB,EACjB,YAAY,EAKf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAa,UAAU,EAAE,MAAM,WAAW,CAAC;AAGlD,OAAO,EAAoB,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIhE,oBAAY,6BAA6B,CAAC,CAAC,IACrC,wBAAwB,CAAC,CAAC,CAAC,GAC3B,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAClC,oBAAY,4BAA4B,CAAC,CAAC,IAAI,iCAAiC,CAAC,CAAC,CAAC,CAAC;AACnF,oBAAY,mBAAmB,CAAC,CAAC,IAC3B,6BAA6B,CAAC,CAAC,CAAC,GAChC,4BAA4B,CAAC,CAAC,CAAC,CAAC;AAEtC,aAAK,wBAAwB,CAAC,CAAC,IACzB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GACrB,gCAAgC,CAAC,CAAC,CAAC,GACnC,6BAA6B,CAAC,CAAC,CAAC,CAAC;AAEvC,aAAK,iCAAiC,CAAC,CAAC,IAClC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GACrB,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAE3D,UAAU,gCAAgC,CAAC,CAAC;IACxC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,UAAU,6BAA6B,CAAC,CAAC;IACrC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,UAAU,wBAAwB,CAAC,CAAC;IAChC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC;IACZ,OAAO,CAAC,EAAE,IAAI,CAAC;CAClB;AA8GD,oBAAY,aAAa,GAAG,iBAAiB,CAAC;IAC1C,UAAU,CAAC,EAAE,6BAA6B,CAAC,GAAG,CAAC,EAAE,CAAC;IAClD,SAAS,CAAC,EAAE,4BAA4B,CAAC,GAAG,CAAC,EAAE,CAAC;IAChD,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,aAAa,CAAC,EAAE,YAAY,CAAC;CAChC,CAAC,CAAC;AAEH,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAuFtC,CAAC"}
package/dist/provider.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useState, useContext, useLayoutEffect } from 'react';
2
+ import { useState, useContext, useLayoutEffect, useRef, } from 'react';
3
3
  import { Container } from 'inversify';
4
4
  import { Await } from './await';
5
5
  import { ContainerContext } from './common';
@@ -71,7 +71,7 @@ const unbindEntry = (container) => (entry) => {
71
71
  };
72
72
  export const Provider = ({ singletons, instances, loadingFallback = defaultLoadingFallback, errorFallback = defaultErrorFallback, children, }) => {
73
73
  const parentContainer = useContext(ContainerContext);
74
- const [container, setContainer] = useState();
74
+ const containerRef = useRef();
75
75
  const [promises, setPromises] = useState([]);
76
76
  const [error, setError] = useState(false);
77
77
  useLayoutEffect(() => {
@@ -99,7 +99,7 @@ export const Provider = ({ singletons, instances, loadingFallback = defaultLoadi
99
99
  }
100
100
  }
101
101
  }
102
- setContainer(container);
102
+ containerRef.current = container;
103
103
  setPromises(promises);
104
104
  return () => {
105
105
  const unbind = unbindEntry(container);
@@ -112,7 +112,7 @@ export const Provider = ({ singletons, instances, loadingFallback = defaultLoadi
112
112
  }
113
113
  };
114
114
  }, []); // eslint-disable-line react-hooks/exhaustive-deps
115
- if (!container) {
115
+ if (!containerRef.current) {
116
116
  return null;
117
117
  }
118
118
  const getContent = () => {
@@ -124,6 +124,6 @@ export const Provider = ({ singletons, instances, loadingFallback = defaultLoadi
124
124
  }
125
125
  return children;
126
126
  };
127
- return _jsx(ContainerContext.Provider, Object.assign({ value: container }, { children: getContent() }));
127
+ return (_jsx(ContainerContext.Provider, Object.assign({ value: containerRef.current }, { children: getContent() })));
128
128
  };
129
129
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAoB,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAEhF,OAAO,EAAE,SAAS,EAAc,MAAM,WAAW,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAsB,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAU,MAAM,SAAS,CAAC;AAoC1C,SAAS,kCAAkC,CACvC,KAA6B;IAE7B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,0BAA0B,CAC/B,KAA6B;IAE7B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,+BAA+B,CACpC,KAA6B;IAE7B,OAAO,CACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC;QAC/B,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;QACjC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CACpC,CAAC;AACN,CAAC;AAED,SAAS,gCAAgC,CACrC,KAA6B;IAK7B,OAAO,CACH,kCAAkC,CAAC,KAAK,CAAC;QACzC,+BAA+B,CAAC,KAAK,CAAC;QACtC,0BAA0B,CAAC,KAAK,CAAC,CACpC,CAAC;AACN,CAAC;AAED,SAAS,wBAAwB,CAC7B,KAA6B;IAE7B,IAAI,kCAAkC,CAAC,KAAK,CAAC,EAAE;QAC3C,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;KAC1C;IAED,IAAI,+BAA+B,CAAC,KAAK,CAAC,EAAE;QACxC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;KACzC;IAED,IAAI,0BAA0B,CAAC,KAAK,CAAC,EAAE;QACnC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;KACjC;IAED,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB,CACtB,SAAoB,EACpB,aAAmD,EAAE,EACrD,YAAiD,EAAE;IAEnD,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACvD,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAE5D,IAAI,OAAO,IAAI,QAAQ,IAAI,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC/E,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;SACpC;QAED,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAc,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,SAAS,GACX,CAAC,SAAoB,EAAE,YAAqB,EAAE,EAAE,CAAC,CAAC,KAA+B,EAAE,EAAE;IACjF,IACI,YAAY;QACZ,gCAAgC,CAAC,KAAK,CAAC;QACvC,KAAK,CAAC,OAAO;QACb,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAClC;QACE,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,kCAAkC,CAAC,KAAK,CAAC,EAAE;QAC3C,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KAC3D;IAED,IAAI,+BAA+B,CAAC,KAAK,CAAC,EAAE;QACxC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAC1D;IAED,IAAI,0BAA0B,CAAC,KAAK,CAAC,EAAE;QACnC,iDAAiD;QACjD,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KAC7E;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEN,MAAM,WAAW,GAAG,CAAC,SAAoB,EAAE,EAAE,CAAC,CAAC,KAA+B,EAAE,EAAE;IAC9E,IACI,kCAAkC,CAAC,KAAK,CAAC;QACzC,0BAA0B,CAAC,KAAK,CAAC;QACjC,+BAA+B,CAAC,KAAK,CAAC,EACxC;QACE,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAC1C;IAED,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,QAAQ,GAAsB,CAAC,EACxC,UAAU,EACV,SAAS,EACT,eAAe,GAAG,sBAAsB,EACxC,aAAa,GAAG,oBAAoB,EACpC,QAAQ,GACX,EAAE,EAAE;IACD,MAAM,eAAe,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAErD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,EAAa,CAAC;IACxD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAkB,EAAE,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1C,eAAe,CAAC,GAAG,EAAE;QACjB,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QAClC,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC;QAEnC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1D,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QAEhD,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAE3E,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE;YACnC,IAAI,QAAQ,CAAC,UAAU,EAAE;gBACrB,IAAI,OAAO,CAAC;gBAEZ,IAAI;oBACA,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;iBACnC;gBAAC,WAAM;oBACJ,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAClB;gBAED,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;oBAChD,QAAQ,CAAC,IAAI,CACT,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;wBACf,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACnB,CAAC,CAAC,CACL,CAAC;iBACL;aACJ;SACJ;QAED,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEtB,OAAO,GAAG,EAAE;YACR,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;YAEtC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5B,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAE3B,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE;gBACnC,IAAI,QAAQ,CAAC,OAAO,EAAE;oBAClB,QAAQ,CAAC,OAAO,EAAE,CAAC;iBACtB;aACJ;QACL,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kDAAkD;IAE1D,IAAI,CAAC,SAAS,EAAE;QACZ,OAAO,IAAI,CAAC;KACf;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,IAAI,KAAK,EAAE;YACP,OAAO,aAAa,CAAC;SACxB;QAED,IAAI,QAAQ,CAAC,MAAM,EAAE;YACjB,OAAO,CACH,KAAC,KAAK,kBAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,gBAC/C,QAAQ,IACL,CACX,CAAC;SACL;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,KAAC,gBAAgB,CAAC,QAAQ,kBAAC,KAAK,EAAE,SAAS,gBAAG,UAAU,EAAE,IAA6B,CAAC;AACnG,CAAC,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -4,11 +4,9 @@ interface Identifier<T> extends interfaces.Newable<T> {
4
4
  [symbol]?: boolean;
5
5
  }
6
6
  export declare function isStore<T>(identifier: Identifier<T>): boolean | undefined;
7
- export declare abstract class Store implements IStore {
7
+ export declare abstract class Store {
8
8
  static [symbol]: boolean;
9
- }
10
- export interface IStore {
11
- initialize?(): Promise<void>;
9
+ initialize?(): Promise<void> | void;
12
10
  dispose?(): void;
13
11
  }
14
12
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,WAAW,CAAC;AAEnD,QAAA,MAAM,MAAM,eAAmC,CAAC;AAEhD,UAAU,UAAU,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,uBAEnD;AAED,8BACsB,KAAM,YAAW,MAAM;IACzC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAQ;CAC1B;AAED,MAAM,WAAW,MAAM;IACnB,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,IAAI,CAAC;CACpB"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,WAAW,CAAC;AAEnD,QAAA,MAAM,MAAM,eAAmC,CAAC;AAEhD,UAAU,UAAU,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,uBAEnD;AAED,8BACsB,KAAK;IACvB,MAAM,CAAC,CAAC,MAAM,CAAC,UAAQ;IAEvB,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IACnC,OAAO,CAAC,IAAI,IAAI;CACnB"}
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,UAAU,EAAc,MAAM,WAAW,CAAC;AAEnD,MAAM,MAAM,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAMhD,MAAM,UAAU,OAAO,CAAI,UAAyB;IAChD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAGD,IAAsB,KAAK,GAA3B,MAAsB,KAAK;CAE1B,CAAA;KADW,MAAM;AAAP;;;;WAAW,IAAI;GAAC;AADL,KAAK;IAD1B,UAAU,EAAE;GACS,KAAK,CAE1B;SAFqB,KAAK"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,UAAU,EAAc,MAAM,WAAW,CAAC;AAEnD,MAAM,MAAM,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAMhD,MAAM,UAAU,OAAO,CAAI,UAAyB;IAChD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAGD,IAAsB,KAAK,GAA3B,MAAsB,KAAK;CAK1B,CAAA;KAJW,MAAM;AAAP;;;;WAAW,IAAI;GAAC;AADL,KAAK;IAD1B,UAAU,EAAE;GACS,KAAK,CAK1B;SALqB,KAAK"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/react-ioc",
3
- "version": "23.0.0",
3
+ "version": "23.2.0",
4
4
  "description": "",
5
5
  "homepage": "https://docs.st.dev/docs/frontend/react-ioc",
6
6
  "repository": {
@@ -20,12 +20,14 @@
20
20
  },
21
21
  "devDependencies": {
22
22
  "@servicetitan/startup-jest": "^1.1.0",
23
- "@testing-library/react": "^12.0.0",
24
- "@types/react": "~17.0.38",
25
- "react": "~17.0.2"
23
+ "@testing-library/react": "^14.2.1",
24
+ "@types/react": "~18.2.55",
25
+ "@types/react-test-renderer": "~18.0.7",
26
+ "react": "~18.2.0",
27
+ "react-test-renderer": "~18.2.0"
26
28
  },
27
29
  "peerDependencies": {
28
- "react": "~17.0.2"
30
+ "react": ">=17.0.2"
29
31
  },
30
32
  "publishConfig": {
31
33
  "access": "public"
@@ -33,5 +35,5 @@
33
35
  "cli": {
34
36
  "webpack": false
35
37
  },
36
- "gitHead": "45876ed36415ad78d3ec4ef3783d6df1430504d3"
38
+ "gitHead": "4b72bab5ab6cb52a688d9329c7fbaa702ae6780c"
37
39
  }
@@ -75,7 +75,7 @@ function TestProvider(props: PropsWithChildren<ProviderStoreProps & { store: Tes
75
75
  describe(`[react-ioc] ${provide.name}`, () => {
76
76
  let stat!: StatStore;
77
77
 
78
- const Stat = provide({ singletons: [StatStore] })(({ children }) => {
78
+ const Stat = provide({ singletons: [StatStore] })(({ children }: PropsWithChildren<{}>) => {
79
79
  const [statStore] = useDependencies(StatStore);
80
80
  stat = statStore;
81
81
  return <div>{children}</div>;
@@ -1,4 +1,4 @@
1
- import { Component, createContext, useRef, FC } from 'react';
1
+ import { Component, createContext, useRef, FC, PropsWithChildren } from 'react';
2
2
  import {
3
3
  provide,
4
4
  injectDependency,
@@ -33,9 +33,9 @@ abstract class SampleConfig {
33
33
  title!: string;
34
34
  }
35
35
 
36
- const SampleConsumer: FC<{
37
- setContainer(container: Container): void;
38
- }> = props => (
36
+ const SampleConsumer: FC<
37
+ PropsWithChildren<{ setContainer(container: Container): void }>
38
+ > = props => (
39
39
  <ContainerContext.Consumer>
40
40
  {container => {
41
41
  props.setContainer(container);
package/src/await.tsx CHANGED
@@ -1,10 +1,10 @@
1
- import { FC, lazy, ReactElement, ReactNode, Suspense, useMemo } from 'react';
1
+ import { FC, lazy, PropsWithChildren, ReactElement, ReactNode, Suspense, useMemo } from 'react';
2
2
  import { defaultLoadingFallback } from './fallbacks';
3
3
 
4
- export interface AwaitProps {
4
+ export type AwaitProps = PropsWithChildren<{
5
5
  promises: Promise<void>[];
6
6
  fallback?: NonNullable<ReactNode> | null;
7
- }
7
+ }>;
8
8
 
9
9
  export const Await: FC<AwaitProps> = ({
10
10
  promises,
@@ -13,7 +13,7 @@ export const Await: FC<AwaitProps> = ({
13
13
  }) => {
14
14
  const Lazy = useMemo(
15
15
  () =>
16
- lazy<FC>(async () => {
16
+ lazy<FC<PropsWithChildren<{}>>>(async () => {
17
17
  await Promise.all(promises);
18
18
 
19
19
  return {
package/src/provide.tsx CHANGED
@@ -1,4 +1,4 @@
1
- import { ReactInstance, ComponentType } from 'react';
1
+ import { ComponentType, ReactInstance } from 'react';
2
2
 
3
3
  import { Provider, ProviderConfigEntrySingletons, ProviderConfigEntryInstances } from './provider';
4
4
 
package/src/provider.tsx CHANGED
@@ -1,11 +1,19 @@
1
- import { FC, ReactElement, useState, useContext, useLayoutEffect } from 'react';
1
+ import {
2
+ FC,
3
+ PropsWithChildren,
4
+ ReactElement,
5
+ useState,
6
+ useContext,
7
+ useLayoutEffect,
8
+ useRef,
9
+ } from 'react';
2
10
 
3
11
  import { Container, interfaces } from 'inversify';
4
12
 
5
13
  import { Await } from './await';
6
14
  import { ContainerContext, Token, SymbolToken } from './common';
7
15
  import { defaultErrorFallback, defaultLoadingFallback } from './fallbacks';
8
- import { isStore, IStore } from './store';
16
+ import { isStore, Store } from './store';
9
17
 
10
18
  export type ProviderConfigEntrySingletons<T> =
11
19
  | ClassProviderConfigEntry<T>
@@ -98,7 +106,7 @@ function getStoreInstances(
98
106
  container: Container,
99
107
  singletons: ProviderConfigEntrySingletons<any>[] = [],
100
108
  instances: ProviderConfigEntryInstances<any>[] = []
101
- ): IStore[] {
109
+ ): Store[] {
102
110
  return [...singletons, ...instances].reduce((out, entry) => {
103
111
  const [provide, useClass] = getProvideTokenWithClass(entry);
104
112
 
@@ -107,7 +115,7 @@ function getStoreInstances(
107
115
  }
108
116
 
109
117
  return out;
110
- }, [] as IStore[]);
118
+ }, [] as Store[]);
111
119
  }
112
120
 
113
121
  const bindEntry =
@@ -149,12 +157,12 @@ const unbindEntry = (container: Container) => (entry: ProviderConfigEntry<any>)
149
157
  return container.unbind(entry);
150
158
  };
151
159
 
152
- export interface ProviderProps {
160
+ export type ProviderProps = PropsWithChildren<{
153
161
  singletons?: ProviderConfigEntrySingletons<any>[];
154
162
  instances?: ProviderConfigEntryInstances<any>[];
155
163
  loadingFallback?: ReactElement;
156
164
  errorFallback?: ReactElement;
157
- }
165
+ }>;
158
166
 
159
167
  export const Provider: FC<ProviderProps> = ({
160
168
  singletons,
@@ -165,7 +173,7 @@ export const Provider: FC<ProviderProps> = ({
165
173
  }) => {
166
174
  const parentContainer = useContext(ContainerContext);
167
175
 
168
- const [container, setContainer] = useState<Container>();
176
+ const containerRef = useRef<Container>();
169
177
  const [promises, setPromises] = useState<Promise<void>[]>([]);
170
178
  const [error, setError] = useState(false);
171
179
 
@@ -201,7 +209,7 @@ export const Provider: FC<ProviderProps> = ({
201
209
  }
202
210
  }
203
211
 
204
- setContainer(container);
212
+ containerRef.current = container;
205
213
  setPromises(promises);
206
214
 
207
215
  return () => {
@@ -218,7 +226,7 @@ export const Provider: FC<ProviderProps> = ({
218
226
  };
219
227
  }, []); // eslint-disable-line react-hooks/exhaustive-deps
220
228
 
221
- if (!container) {
229
+ if (!containerRef.current) {
222
230
  return null;
223
231
  }
224
232
 
@@ -238,5 +246,9 @@ export const Provider: FC<ProviderProps> = ({
238
246
  return children;
239
247
  };
240
248
 
241
- return <ContainerContext.Provider value={container}>{getContent()}</ContainerContext.Provider>;
249
+ return (
250
+ <ContainerContext.Provider value={containerRef.current}>
251
+ {getContent()}
252
+ </ContainerContext.Provider>
253
+ );
242
254
  };
package/src/store.ts CHANGED
@@ -11,11 +11,9 @@ export function isStore<T>(identifier: Identifier<T>) {
11
11
  }
12
12
 
13
13
  @injectable()
14
- export abstract class Store implements IStore {
14
+ export abstract class Store {
15
15
  static [symbol] = true;
16
- }
17
16
 
18
- export interface IStore {
19
- initialize?(): Promise<void>;
17
+ initialize?(): Promise<void> | void;
20
18
  dispose?(): void;
21
19
  }