@servicetitan/react-ioc 30.3.1 → 31.0.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.js +16 -8
- package/dist/await.js.map +1 -1
- package/dist/common.js +2 -1
- package/dist/common.js.map +1 -1
- package/dist/fallbacks.js +8 -2
- package/dist/fallbacks.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/inject-dependency.js +9 -11
- package/dist/inject-dependency.js.map +1 -1
- package/dist/provide.js +12 -6
- package/dist/provide.js.map +1 -1
- package/dist/provider.js +91 -63
- package/dist/provider.js.map +1 -1
- package/dist/store.js +21 -15
- package/dist/store.js.map +1 -1
- package/dist/use-dependencies.js +5 -3
- package/dist/use-dependencies.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +6 -3
package/dist/await.js
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { lazy, Suspense, useMemo } from 'react';
|
|
3
3
|
import { defaultLoadingFallback } from './fallbacks';
|
|
4
|
-
export const Await = ({ promises, fallback = defaultLoadingFallback, children
|
|
5
|
-
const Lazy = useMemo(()
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
export const Await = ({ promises, fallback = defaultLoadingFallback, children })=>{
|
|
5
|
+
const Lazy = useMemo(()=>/*#__PURE__*/ lazy(async ()=>{
|
|
6
|
+
await Promise.all(promises);
|
|
7
|
+
return {
|
|
8
|
+
default: ({ children })=>children
|
|
9
|
+
};
|
|
10
|
+
}), [
|
|
11
|
+
promises
|
|
12
|
+
]);
|
|
13
|
+
return /*#__PURE__*/ _jsx(Suspense, {
|
|
14
|
+
fallback: fallback,
|
|
15
|
+
children: /*#__PURE__*/ _jsx(Lazy, {
|
|
16
|
+
children: children
|
|
17
|
+
})
|
|
18
|
+
});
|
|
12
19
|
};
|
|
20
|
+
|
|
13
21
|
//# sourceMappingURL=await.js.map
|
package/dist/await.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/await.tsx"],"sourcesContent":["import { FC, lazy, PropsWithChildren, ReactElement, ReactNode, Suspense, useMemo } from 'react';\nimport { defaultLoadingFallback } from './fallbacks';\n\nexport type AwaitProps = PropsWithChildren<{\n promises: Promise<void>[];\n fallback?: ReactNode;\n}>;\n\nexport const Await: FC<AwaitProps> = ({\n promises,\n fallback = defaultLoadingFallback,\n children,\n}) => {\n const Lazy = useMemo(\n () =>\n lazy<FC<PropsWithChildren>>(async () => {\n await Promise.all(promises);\n\n return {\n default: ({ children }) => children as ReactElement,\n };\n }),\n [promises]\n );\n\n return (\n <Suspense fallback={fallback}>\n <Lazy>{children}</Lazy>\n </Suspense>\n );\n};\n"],"names":["lazy","Suspense","useMemo","defaultLoadingFallback","Await","promises","fallback","children","Lazy","Promise","all","default"],"mappings":";AAAA,SAAaA,IAAI,EAA8CC,QAAQ,EAAEC,OAAO,QAAQ,QAAQ;AAChG,SAASC,sBAAsB,QAAQ,cAAc;AAOrD,OAAO,MAAMC,QAAwB,CAAC,EAClCC,QAAQ,EACRC,WAAWH,sBAAsB,EACjCI,QAAQ,EACX;IACG,MAAMC,OAAON,QACT,kBACIF,KAA4B;YACxB,MAAMS,QAAQC,GAAG,CAACL;YAElB,OAAO;gBACHM,SAAS,CAAC,EAAEJ,QAAQ,EAAE,GAAKA;YAC/B;QACJ,IACJ;QAACF;KAAS;IAGd,qBACI,KAACJ;QAASK,UAAUA;kBAChB,cAAA,KAACE;sBAAMD;;;AAGnB,EAAE"}
|
package/dist/common.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { createContext } from 'react';
|
|
2
2
|
import { Container } from 'inversify';
|
|
3
3
|
export const rootContainer = new Container();
|
|
4
|
-
export const ContainerContext = createContext(rootContainer);
|
|
4
|
+
export const ContainerContext = /*#__PURE__*/ createContext(rootContainer);
|
|
5
5
|
export function symbolToken(key, global = true) {
|
|
6
6
|
return global ? Symbol.for(key) : Symbol(key);
|
|
7
7
|
}
|
|
8
|
+
|
|
8
9
|
//# sourceMappingURL=common.js.map
|
package/dist/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/common.tsx"],"sourcesContent":["import { createContext } from 'react';\n\nimport { Container, interfaces } from 'inversify';\n\nexport const rootContainer = new Container();\n\nexport const ContainerContext = createContext(rootContainer);\n\nexport type Token<T> = SymbolToken<T> | interfaces.Newable<T> | Function;\n\nexport type SymbolToken<T> = symbol & { typeRef?: T };\nexport function symbolToken<T = any>(key: string, global = true): SymbolToken<T> {\n return global ? Symbol.for(key) : Symbol(key);\n}\n"],"names":["createContext","Container","rootContainer","ContainerContext","symbolToken","key","global","Symbol","for"],"mappings":"AAAA,SAASA,aAAa,QAAQ,QAAQ;AAEtC,SAASC,SAAS,QAAoB,YAAY;AAElD,OAAO,MAAMC,gBAAgB,IAAID,YAAY;AAE7C,OAAO,MAAME,iCAAmBH,cAAcE,eAAe;AAK7D,OAAO,SAASE,YAAqBC,GAAW,EAAEC,SAAS,IAAI;IAC3D,OAAOA,SAASC,OAAOC,GAAG,CAACH,OAAOE,OAAOF;AAC7C"}
|
package/dist/fallbacks.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
export const defaultLoadingFallback = _jsx("h2", {
|
|
3
|
-
|
|
2
|
+
export const defaultLoadingFallback = /*#__PURE__*/ _jsx("h2", {
|
|
3
|
+
children: "Loading..."
|
|
4
|
+
});
|
|
5
|
+
export const defaultErrorFallback = /*#__PURE__*/ _jsx("h2", {
|
|
6
|
+
className: "c-red-500",
|
|
7
|
+
children: "Error"
|
|
8
|
+
});
|
|
9
|
+
|
|
4
10
|
//# sourceMappingURL=fallbacks.js.map
|
package/dist/fallbacks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/fallbacks.tsx"],"sourcesContent":["export const defaultLoadingFallback = <h2>Loading...</h2>;\nexport const defaultErrorFallback = <h2 className=\"c-red-500\">Error</h2>;\n"],"names":["defaultLoadingFallback","h2","defaultErrorFallback","className"],"mappings":";AAAA,OAAO,MAAMA,uCAAyB,KAACC;cAAG;GAAgB;AAC1D,OAAO,MAAMC,qCAAuB,KAACD;IAAGE,WAAU;cAAY;GAAW"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
-
export {
|
|
2
|
+
export type { Token, SymbolToken } from './common';
|
|
3
|
+
export { rootContainer, symbolToken } from './common';
|
|
3
4
|
export { injectDependency } from './inject-dependency';
|
|
4
5
|
export { provide } from './provide';
|
|
5
|
-
export {
|
|
6
|
+
export type { ProviderProps } from './provider';
|
|
7
|
+
export { Provider } from './provider';
|
|
6
8
|
export { Store } from './store';
|
|
7
9
|
export { useDependencies, useOptionalDependencies } from './use-dependencies';
|
|
8
|
-
export {
|
|
10
|
+
export type { interfaces } from 'inversify';
|
|
11
|
+
export { Container, injectable, inject, optional, unmanaged } from 'inversify';
|
|
9
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,4 +6,5 @@ export { Provider } from './provider';
|
|
|
6
6
|
export { Store } from './store';
|
|
7
7
|
export { useDependencies, useOptionalDependencies } from './use-dependencies';
|
|
8
8
|
export { Container, injectable, inject, optional, unmanaged } from 'inversify';
|
|
9
|
+
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import 'reflect-metadata';\n\nexport type { Token, SymbolToken } from './common';\nexport { rootContainer, symbolToken } from './common';\nexport { injectDependency } from './inject-dependency';\nexport { provide } from './provide';\nexport type { ProviderProps } from './provider';\nexport { Provider } from './provider';\nexport { Store } from './store';\nexport { useDependencies, useOptionalDependencies } from './use-dependencies';\n\nexport type { interfaces } from 'inversify';\nexport { Container, injectable, inject, optional, unmanaged } from 'inversify';\n"],"names":["rootContainer","symbolToken","injectDependency","provide","Provider","Store","useDependencies","useOptionalDependencies","Container","injectable","inject","optional","unmanaged"],"mappings":"AAAA,OAAO,mBAAmB;AAG1B,SAASA,aAAa,EAAEC,WAAW,QAAQ,WAAW;AACtD,SAASC,gBAAgB,QAAQ,sBAAsB;AACvD,SAASC,OAAO,QAAQ,YAAY;AAEpC,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,KAAK,QAAQ,UAAU;AAChC,SAASC,eAAe,EAAEC,uBAAuB,QAAQ,qBAAqB;AAG9E,SAASC,SAAS,EAAEC,UAAU,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,YAAY"}
|
|
@@ -18,26 +18,23 @@ function proxyGetter(proto, key, resolve, doCache) {
|
|
|
18
18
|
configurable: true,
|
|
19
19
|
enumerable: true,
|
|
20
20
|
get: getter,
|
|
21
|
-
set: setter
|
|
21
|
+
set: setter
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
export function injectDependency(serviceIdentifier) {
|
|
25
|
-
return function
|
|
26
|
-
const resolve = (componentInstance)
|
|
27
|
-
var
|
|
25
|
+
return function(proto, key) {
|
|
26
|
+
const resolve = (componentInstance)=>{
|
|
27
|
+
var _metadata_key;
|
|
28
28
|
if (!componentInstance.context) {
|
|
29
|
-
throw new Error("Context doesn't exist on a target class. " +
|
|
30
|
-
'Please make sure to pass context object to super method if you access injectable stores in constructor.');
|
|
29
|
+
throw new Error("Context doesn't exist on a target class. " + 'Please make sure to pass context object to super method if you access injectable stores in constructor.');
|
|
31
30
|
}
|
|
32
|
-
const metadata =
|
|
33
|
-
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
31
|
+
const metadata = // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
34
32
|
Reflect.getMetadata(METADATA_KEY.TAGGED_PROP, proto.constructor) || {};
|
|
35
|
-
if ((
|
|
33
|
+
if ((_metadata_key = metadata[key]) === null || _metadata_key === void 0 ? void 0 : _metadata_key.some(({ key, value })=>key === METADATA_KEY.OPTIONAL_TAG && value)) {
|
|
36
34
|
if (componentInstance.context.isBound(serviceIdentifier)) {
|
|
37
35
|
return componentInstance.context.get(serviceIdentifier);
|
|
38
36
|
}
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
37
|
+
} else {
|
|
41
38
|
return componentInstance.context.get(serviceIdentifier);
|
|
42
39
|
}
|
|
43
40
|
};
|
|
@@ -48,4 +45,5 @@ export function injectDependency(serviceIdentifier) {
|
|
|
48
45
|
proxyGetter(proto, key, resolve, true);
|
|
49
46
|
};
|
|
50
47
|
}
|
|
48
|
+
|
|
51
49
|
//# sourceMappingURL=inject-dependency.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/inject-dependency.ts"],"sourcesContent":["import { interfaces, METADATA_KEY } from 'inversify';\n\nimport { ContainerContext } from './common';\n\nconst INJECTION = Symbol.for('INJECTION');\n\nfunction proxyGetter(\n proto: any,\n key: string,\n resolve: (componentInstance: any) => any,\n doCache: boolean\n) {\n function getter(this: any) {\n if (doCache && !Reflect.hasMetadata(INJECTION, this, key)) {\n Reflect.defineMetadata(INJECTION, resolve(this), this, key);\n }\n if (Reflect.hasMetadata(INJECTION, this, key)) {\n return Reflect.getMetadata(INJECTION, this, key);\n }\n return resolve(this);\n }\n function setter(this: any, newVal: any) {\n Reflect.defineMetadata(INJECTION, newVal, this, key);\n }\n Object.defineProperty(proto, key, {\n configurable: true,\n enumerable: true,\n get: getter,\n set: setter,\n });\n}\n\nexport function injectDependency(serviceIdentifier: interfaces.ServiceIdentifier<any>) {\n return function (proto: any, key: string): void {\n const resolve = (componentInstance: any) => {\n if (!componentInstance.context) {\n throw new Error(\n \"Context doesn't exist on a target class. \" +\n 'Please make sure to pass context object to super method if you access injectable stores in constructor.'\n );\n }\n\n const metadata: Partial<interfaces.MetadataMap> =\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n Reflect.getMetadata(METADATA_KEY.TAGGED_PROP, proto.constructor) || {};\n\n if (\n metadata[key]?.some(({ key, value }) => key === METADATA_KEY.OPTIONAL_TAG && value)\n ) {\n if (componentInstance.context.isBound(serviceIdentifier)) {\n return componentInstance.context.get(serviceIdentifier);\n }\n } else {\n return componentInstance.context.get(serviceIdentifier);\n }\n };\n\n if (proto.constructor.contextType && proto.constructor.contextType !== ContainerContext) {\n throw new Error(\n \"injectDependency can't be used together with contextType static property\"\n );\n }\n\n proto.constructor.contextType = ContainerContext;\n proxyGetter(proto, key, resolve, true);\n };\n}\n"],"names":["METADATA_KEY","ContainerContext","INJECTION","Symbol","for","proxyGetter","proto","key","resolve","doCache","getter","Reflect","hasMetadata","defineMetadata","getMetadata","setter","newVal","Object","defineProperty","configurable","enumerable","get","set","injectDependency","serviceIdentifier","componentInstance","metadata","context","Error","TAGGED_PROP","constructor","some","value","OPTIONAL_TAG","isBound","contextType"],"mappings":"AAAA,SAAqBA,YAAY,QAAQ,YAAY;AAErD,SAASC,gBAAgB,QAAQ,WAAW;AAE5C,MAAMC,YAAYC,OAAOC,GAAG,CAAC;AAE7B,SAASC,YACLC,KAAU,EACVC,GAAW,EACXC,OAAwC,EACxCC,OAAgB;IAEhB,SAASC;QACL,IAAID,WAAW,CAACE,QAAQC,WAAW,CAACV,WAAW,IAAI,EAAEK,MAAM;YACvDI,QAAQE,cAAc,CAACX,WAAWM,QAAQ,IAAI,GAAG,IAAI,EAAED;QAC3D;QACA,IAAII,QAAQC,WAAW,CAACV,WAAW,IAAI,EAAEK,MAAM;YAC3C,OAAOI,QAAQG,WAAW,CAACZ,WAAW,IAAI,EAAEK;QAChD;QACA,OAAOC,QAAQ,IAAI;IACvB;IACA,SAASO,OAAkBC,MAAW;QAClCL,QAAQE,cAAc,CAACX,WAAWc,QAAQ,IAAI,EAAET;IACpD;IACAU,OAAOC,cAAc,CAACZ,OAAOC,KAAK;QAC9BY,cAAc;QACdC,YAAY;QACZC,KAAKX;QACLY,KAAKP;IACT;AACJ;AAEA,OAAO,SAASQ,iBAAiBC,iBAAoD;IACjF,OAAO,SAAUlB,KAAU,EAAEC,GAAW;QACpC,MAAMC,UAAU,CAACiB;gBAaTC;YAZJ,IAAI,CAACD,kBAAkBE,OAAO,EAAE;gBAC5B,MAAM,IAAIC,MACN,8CACI;YAEZ;YAEA,MAAMF,WACF,wEAAwE;YACxEf,QAAQG,WAAW,CAACd,aAAa6B,WAAW,EAAEvB,MAAMwB,WAAW,KAAK,CAAC;YAEzE,KACIJ,gBAAAA,QAAQ,CAACnB,IAAI,cAAbmB,oCAAAA,cAAeK,IAAI,CAAC,CAAC,EAAExB,GAAG,EAAEyB,KAAK,EAAE,GAAKzB,QAAQP,aAAaiC,YAAY,IAAID,QAC/E;gBACE,IAAIP,kBAAkBE,OAAO,CAACO,OAAO,CAACV,oBAAoB;oBACtD,OAAOC,kBAAkBE,OAAO,CAACN,GAAG,CAACG;gBACzC;YACJ,OAAO;gBACH,OAAOC,kBAAkBE,OAAO,CAACN,GAAG,CAACG;YACzC;QACJ;QAEA,IAAIlB,MAAMwB,WAAW,CAACK,WAAW,IAAI7B,MAAMwB,WAAW,CAACK,WAAW,KAAKlC,kBAAkB;YACrF,MAAM,IAAI2B,MACN;QAER;QAEAtB,MAAMwB,WAAW,CAACK,WAAW,GAAGlC;QAChCI,YAAYC,OAAOC,KAAKC,SAAS;IACrC;AACJ"}
|
package/dist/provide.js
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Provider } from './provider';
|
|
3
|
-
export const provide = (
|
|
3
|
+
export const provide = (stores, elementOrOptions)=>(Component)=>(props)=>/*#__PURE__*/ _jsx(Provider, {
|
|
4
|
+
...stores,
|
|
5
|
+
...getOptions(elementOrOptions),
|
|
6
|
+
children: /*#__PURE__*/ _jsx(Component, {
|
|
7
|
+
...props
|
|
8
|
+
})
|
|
9
|
+
});
|
|
4
10
|
function getOptions(arg) {
|
|
5
|
-
return arg && isOptionsObject(arg) ? arg : {
|
|
11
|
+
return arg && isOptionsObject(arg) ? arg : {
|
|
12
|
+
loadingFallback: arg
|
|
13
|
+
};
|
|
6
14
|
}
|
|
7
15
|
function isOptionsObject(arg) {
|
|
8
|
-
return
|
|
9
|
-
(Object.hasOwn(arg, 'loadingFallback') ||
|
|
10
|
-
Object.hasOwn(arg, 'errorFallback') ||
|
|
11
|
-
Object.keys(arg).length === 0));
|
|
16
|
+
return typeof arg === 'object' && (Object.hasOwn(arg, 'loadingFallback') || Object.hasOwn(arg, 'errorFallback') || Object.keys(arg).length === 0);
|
|
12
17
|
}
|
|
18
|
+
|
|
13
19
|
//# sourceMappingURL=provide.js.map
|
package/dist/provide.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/provide.tsx"],"sourcesContent":["import { ComponentType, ReactInstance, ReactNode } from 'react';\n\nimport { Provider, ProviderConfigEntrySingletons, ProviderConfigEntryInstances } from './provider';\n\nexport interface WrappedComponent<P> {\n wrappedComponent: ComponentType<P>;\n wrappedInstance: ReactInstance | undefined;\n}\n\nexport interface FallbackOptions {\n loadingFallback?: ReactNode;\n errorFallback?: ReactNode;\n}\n\nexport type ProvideDecorator = (\n stores: {\n singletons?: ProviderConfigEntrySingletons<any>[];\n instances?: ProviderConfigEntryInstances<any>[];\n },\n options?: ReactNode | FallbackOptions\n) => <T extends ComponentType<any>>(target: T) => T & WrappedComponent<T>;\n\nexport const provide = ((stores, elementOrOptions) => (Component: ComponentType) => props => (\n <Provider {...stores} {...getOptions(elementOrOptions)}>\n <Component {...props} />\n </Provider>\n)) as ProvideDecorator;\n\nfunction getOptions(arg?: FallbackOptions | ReactNode): FallbackOptions | undefined {\n return arg && isOptionsObject(arg) ? arg : { loadingFallback: arg };\n}\n\nfunction isOptionsObject(arg: FallbackOptions | NonNullable<ReactNode>): arg is FallbackOptions {\n return (\n typeof arg === 'object' &&\n (Object.hasOwn(arg, 'loadingFallback') ||\n Object.hasOwn(arg, 'errorFallback') ||\n Object.keys(arg).length === 0)\n );\n}\n"],"names":["Provider","provide","stores","elementOrOptions","Component","props","getOptions","arg","isOptionsObject","loadingFallback","Object","hasOwn","keys","length"],"mappings":";AAEA,SAASA,QAAQ,QAAqE,aAAa;AAoBnG,OAAO,MAAMC,UAAW,CAACC,QAAQC,mBAAqB,CAACC,YAA6BC,CAAAA,sBAChF,KAACL;gBAAU,GAAGE,MAAM;gBAAG,GAAGI,WAAWH,iBAAiB;0BAClD,cAAA,KAACC;oBAAW,GAAGC,KAAK;;eAEL;AAEvB,SAASC,WAAWC,GAAiC;IACjD,OAAOA,OAAOC,gBAAgBD,OAAOA,MAAM;QAAEE,iBAAiBF;IAAI;AACtE;AAEA,SAASC,gBAAgBD,GAA6C;IAClE,OACI,OAAOA,QAAQ,YACdG,CAAAA,OAAOC,MAAM,CAACJ,KAAK,sBAChBG,OAAOC,MAAM,CAACJ,KAAK,oBACnBG,OAAOE,IAAI,CAACL,KAAKM,MAAM,KAAK,CAAA;AAExC"}
|
package/dist/provider.js
CHANGED
|
@@ -12,29 +12,40 @@ function isValueProviderConfigEntry(entry) {
|
|
|
12
12
|
return Object.hasOwn(entry, 'provide') && Object.hasOwn(entry, 'useValue');
|
|
13
13
|
}
|
|
14
14
|
function isClassProviderConfigEntryToken(entry) {
|
|
15
|
-
return
|
|
16
|
-
!Object.hasOwn(entry, 'useClass') &&
|
|
17
|
-
!Object.hasOwn(entry, 'useValue'));
|
|
15
|
+
return Object.hasOwn(entry, 'provide') && !Object.hasOwn(entry, 'useClass') && !Object.hasOwn(entry, 'useValue');
|
|
18
16
|
}
|
|
19
17
|
function isProviderConfigEntryInheritable(entry) {
|
|
20
|
-
return
|
|
21
|
-
isClassProviderConfigEntryToken(entry) ||
|
|
22
|
-
isValueProviderConfigEntry(entry));
|
|
18
|
+
return isClassProviderConfigEntryUseClass(entry) || isClassProviderConfigEntryToken(entry) || isValueProviderConfigEntry(entry);
|
|
23
19
|
}
|
|
24
20
|
function getProvideTokenWithClass(entry) {
|
|
25
21
|
if (isClassProviderConfigEntryUseClass(entry)) {
|
|
26
|
-
return [
|
|
22
|
+
return [
|
|
23
|
+
entry.provide,
|
|
24
|
+
entry.useClass
|
|
25
|
+
];
|
|
27
26
|
}
|
|
28
27
|
if (isClassProviderConfigEntryToken(entry)) {
|
|
29
|
-
return [
|
|
28
|
+
return [
|
|
29
|
+
entry.provide,
|
|
30
|
+
entry.provide
|
|
31
|
+
];
|
|
30
32
|
}
|
|
31
33
|
if (isValueProviderConfigEntry(entry)) {
|
|
32
|
-
return [
|
|
34
|
+
return [
|
|
35
|
+
undefined,
|
|
36
|
+
undefined
|
|
37
|
+
];
|
|
33
38
|
}
|
|
34
|
-
return [
|
|
39
|
+
return [
|
|
40
|
+
entry,
|
|
41
|
+
entry
|
|
42
|
+
];
|
|
35
43
|
}
|
|
36
44
|
function getStoreInstances(container, { singletons = [], instances = [] }) {
|
|
37
|
-
return [
|
|
45
|
+
return [
|
|
46
|
+
...singletons,
|
|
47
|
+
...instances
|
|
48
|
+
].reduce((out, entry)=>{
|
|
38
49
|
const [provide, useClass] = getProvideTokenWithClass(entry);
|
|
39
50
|
if (provide && useClass && container.isCurrentBound(provide) && isStore(useClass)) {
|
|
40
51
|
out.push(container.get(provide));
|
|
@@ -42,54 +53,51 @@ function getStoreInstances(container, { singletons = [], instances = [] }) {
|
|
|
42
53
|
return out;
|
|
43
54
|
}, []);
|
|
44
55
|
}
|
|
45
|
-
const bindEntry = (container, checkInherit)
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
isClassProviderConfigEntryToken(entry)) {
|
|
71
|
-
return container.unbind(entry.provide);
|
|
72
|
-
}
|
|
73
|
-
return container.unbind(entry);
|
|
74
|
-
};
|
|
56
|
+
const bindEntry = (container, checkInherit)=>(entry)=>{
|
|
57
|
+
if (checkInherit && isProviderConfigEntryInheritable(entry) && entry.inherit && container.isBound(entry.provide)) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
if (isClassProviderConfigEntryUseClass(entry)) {
|
|
61
|
+
return container.bind(entry.provide).to(entry.useClass);
|
|
62
|
+
}
|
|
63
|
+
if (isClassProviderConfigEntryToken(entry)) {
|
|
64
|
+
return container.bind(entry.provide).to(entry.provide);
|
|
65
|
+
}
|
|
66
|
+
if (isValueProviderConfigEntry(entry)) {
|
|
67
|
+
// using toDynamicValue to return BindingInSyntax
|
|
68
|
+
return container.bind(entry.provide).toDynamicValue(()=>entry.useValue);
|
|
69
|
+
}
|
|
70
|
+
return container.bind(entry).to(entry);
|
|
71
|
+
};
|
|
72
|
+
const unbindEntry = (container)=>(entry)=>{
|
|
73
|
+
if (isProviderConfigEntryInheritable(entry) && !container.isBound(entry.provide)) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (isClassProviderConfigEntryUseClass(entry) || isValueProviderConfigEntry(entry) || isClassProviderConfigEntryToken(entry)) {
|
|
77
|
+
return container.unbind(entry.provide);
|
|
78
|
+
}
|
|
79
|
+
return container.unbind(entry);
|
|
80
|
+
};
|
|
75
81
|
function bindEntries(container, { singletons = [], instances = [] }) {
|
|
76
|
-
singletons.map(bindEntry(container, true)).forEach(binding
|
|
82
|
+
singletons.map(bindEntry(container, true)).forEach((binding)=>{
|
|
77
83
|
binding === null || binding === void 0 ? void 0 : binding.inSingletonScope();
|
|
78
84
|
});
|
|
79
85
|
instances.forEach(bindEntry(container, false));
|
|
80
86
|
}
|
|
81
87
|
function unbindEntries(container, { singletons = [], instances = [] }) {
|
|
82
|
-
[
|
|
88
|
+
[
|
|
89
|
+
...singletons,
|
|
90
|
+
...instances
|
|
91
|
+
].forEach(unbindEntry(container));
|
|
83
92
|
}
|
|
84
93
|
function initializeStores(stores, onError) {
|
|
85
|
-
var _a;
|
|
86
94
|
const promises = [];
|
|
87
|
-
for (const instance of stores)
|
|
95
|
+
for (const instance of stores){
|
|
88
96
|
let promise;
|
|
89
97
|
try {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
catch (e) {
|
|
98
|
+
var _instance_initialize;
|
|
99
|
+
promise = (_instance_initialize = instance.initialize) === null || _instance_initialize === void 0 ? void 0 : _instance_initialize.call(instance);
|
|
100
|
+
} catch (e) {
|
|
93
101
|
onError(e);
|
|
94
102
|
}
|
|
95
103
|
if (promise && typeof promise.catch === 'function') {
|
|
@@ -99,33 +107,45 @@ function initializeStores(stores, onError) {
|
|
|
99
107
|
return promises;
|
|
100
108
|
}
|
|
101
109
|
function disposeStores(stores) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
(
|
|
110
|
+
for (const instance of stores){
|
|
111
|
+
var _instance_dispose;
|
|
112
|
+
(_instance_dispose = instance.dispose) === null || _instance_dispose === void 0 ? void 0 : _instance_dispose.call(instance);
|
|
105
113
|
}
|
|
106
114
|
}
|
|
107
|
-
export const Provider = ({ singletons, instances, loadingFallback = defaultLoadingFallback, errorFallback = defaultErrorFallback, children
|
|
115
|
+
export const Provider = ({ singletons, instances, loadingFallback = defaultLoadingFallback, errorFallback = defaultErrorFallback, children })=>{
|
|
108
116
|
const parentContainer = useContext(ContainerContext);
|
|
109
117
|
const [container, setContainer] = useState();
|
|
110
118
|
const [promises, setPromises] = useState([]);
|
|
111
119
|
const [error, setError] = useState(false);
|
|
112
|
-
useEffect(()
|
|
120
|
+
useEffect(()=>{
|
|
113
121
|
const container = new Container();
|
|
114
122
|
container.parent = parentContainer;
|
|
115
123
|
setContainer(container);
|
|
116
|
-
const handleError = (e)
|
|
124
|
+
const handleError = (e)=>{
|
|
117
125
|
setError(true);
|
|
118
126
|
// Rethrow asynchronously for global error handler
|
|
119
|
-
setTimeout(()
|
|
127
|
+
setTimeout(()=>{
|
|
120
128
|
throw e;
|
|
121
129
|
});
|
|
122
130
|
};
|
|
123
|
-
bindEntries(container, {
|
|
124
|
-
|
|
131
|
+
bindEntries(container, {
|
|
132
|
+
singletons,
|
|
133
|
+
instances
|
|
134
|
+
});
|
|
135
|
+
const promises = initializeStores(getStoreInstances(container, {
|
|
136
|
+
singletons,
|
|
137
|
+
instances
|
|
138
|
+
}), handleError);
|
|
125
139
|
setPromises(promises);
|
|
126
|
-
return ()
|
|
127
|
-
const storeInstances = getStoreInstances(container, {
|
|
128
|
-
|
|
140
|
+
return ()=>{
|
|
141
|
+
const storeInstances = getStoreInstances(container, {
|
|
142
|
+
singletons,
|
|
143
|
+
instances
|
|
144
|
+
});
|
|
145
|
+
unbindEntries(container, {
|
|
146
|
+
singletons,
|
|
147
|
+
instances
|
|
148
|
+
});
|
|
129
149
|
disposeStores(storeInstances);
|
|
130
150
|
setContainer(undefined);
|
|
131
151
|
setPromises([]);
|
|
@@ -134,15 +154,23 @@ export const Provider = ({ singletons, instances, loadingFallback = defaultLoadi
|
|
|
134
154
|
if (!container) {
|
|
135
155
|
return null;
|
|
136
156
|
}
|
|
137
|
-
const getContent = ()
|
|
157
|
+
const getContent = ()=>{
|
|
138
158
|
if (error) {
|
|
139
159
|
return errorFallback;
|
|
140
160
|
}
|
|
141
161
|
if (promises.length) {
|
|
142
|
-
return
|
|
162
|
+
return /*#__PURE__*/ _jsx(Await, {
|
|
163
|
+
promises: promises,
|
|
164
|
+
fallback: loadingFallback,
|
|
165
|
+
children: children
|
|
166
|
+
});
|
|
143
167
|
}
|
|
144
168
|
return children;
|
|
145
169
|
};
|
|
146
|
-
return _jsx(ContainerContext.Provider, {
|
|
170
|
+
return /*#__PURE__*/ _jsx(ContainerContext.Provider, {
|
|
171
|
+
value: container,
|
|
172
|
+
children: getContent()
|
|
173
|
+
});
|
|
147
174
|
};
|
|
175
|
+
|
|
148
176
|
//# sourceMappingURL=provider.js.map
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/provider.tsx"],"sourcesContent":["import { FC, PropsWithChildren, ReactNode, useState, useContext, useEffect } from 'react';\n\nimport { Container, interfaces } from 'inversify';\n\nimport { Await } from './await';\nimport { ContainerContext, Token, SymbolToken } from './common';\nimport { defaultErrorFallback, defaultLoadingFallback } from './fallbacks';\nimport { isStore, Store } from './store';\n\nexport type ProviderConfigEntrySingletons<T> =\n | ClassProviderConfigEntry<T>\n | ValueProviderConfigEntry<T>;\nexport type ProviderConfigEntryInstances<T> = ClassProviderConfigEntryNoInherit<T>;\nexport type ProviderConfigEntry<T> =\n | ProviderConfigEntrySingletons<T>\n | ProviderConfigEntryInstances<T>;\n\ntype ClassProviderConfigEntry<T> =\n | interfaces.Newable<T>\n | ClassProviderConfigEntryUseClass<T>\n | ClassProviderConfigEntryToken<T>;\n\ntype ClassProviderConfigEntryNoInherit<T> =\n | interfaces.Newable<T>\n | Omit<ClassProviderConfigEntryUseClass<T>, 'inherit'>;\n\ninterface ClassProviderConfigEntryUseClass<T> {\n provide: Token<T>;\n useClass: interfaces.Newable<T>;\n inherit?: true;\n}\n\ninterface ClassProviderConfigEntryToken<T> {\n provide: interfaces.Newable<T>;\n inherit?: true;\n}\n\ninterface ValueProviderConfigEntry<T> {\n provide: SymbolToken<T> | Function;\n useValue: T;\n inherit?: true;\n}\n\nfunction isClassProviderConfigEntryUseClass<T>(\n entry: ProviderConfigEntry<T>\n): entry is Omit<ClassProviderConfigEntryUseClass<T>, 'inherit'> {\n return Object.hasOwn(entry, 'provide') && Object.hasOwn(entry, 'useClass');\n}\n\nfunction isValueProviderConfigEntry<T>(\n entry: ProviderConfigEntry<T>\n): entry is Omit<ValueProviderConfigEntry<T>, 'inherit'> {\n return Object.hasOwn(entry, 'provide') && Object.hasOwn(entry, 'useValue');\n}\n\nfunction isClassProviderConfigEntryToken<T>(\n entry: ProviderConfigEntry<T>\n): entry is Omit<ClassProviderConfigEntryToken<T>, 'inherit'> {\n return (\n Object.hasOwn(entry, 'provide') &&\n !Object.hasOwn(entry, 'useClass') &&\n !Object.hasOwn(entry, 'useValue')\n );\n}\n\nfunction isProviderConfigEntryInheritable<T>(\n entry: ProviderConfigEntry<T>\n): entry is\n | ClassProviderConfigEntryUseClass<T>\n | ClassProviderConfigEntryToken<T>\n | ValueProviderConfigEntry<T> {\n return (\n isClassProviderConfigEntryUseClass(entry) ||\n isClassProviderConfigEntryToken(entry) ||\n isValueProviderConfigEntry(entry)\n );\n}\n\nfunction getProvideTokenWithClass<T>(\n entry: ProviderConfigEntry<T>\n): [Token<T>, interfaces.Newable<T>] | [undefined, undefined] {\n if (isClassProviderConfigEntryUseClass(entry)) {\n return [entry.provide, entry.useClass];\n }\n\n if (isClassProviderConfigEntryToken(entry)) {\n return [entry.provide, entry.provide];\n }\n\n if (isValueProviderConfigEntry(entry)) {\n return [undefined, undefined];\n }\n\n return [entry, entry];\n}\n\nfunction getStoreInstances(\n container: Container,\n { singletons = [], instances = [] }: Pick<ProviderProps, 'singletons' | 'instances'>\n): Store[] {\n return [...singletons, ...instances].reduce((out, entry) => {\n const [provide, useClass] = getProvideTokenWithClass(entry);\n\n if (provide && useClass && container.isCurrentBound(provide) && isStore(useClass)) {\n out.push(container.get(provide));\n }\n\n return out;\n }, [] as Store[]);\n}\n\nconst bindEntry =\n (container: Container, checkInherit: boolean) => (entry: ProviderConfigEntry<any>) => {\n if (\n checkInherit &&\n isProviderConfigEntryInheritable(entry) &&\n entry.inherit &&\n container.isBound(entry.provide)\n ) {\n return undefined;\n }\n\n if (isClassProviderConfigEntryUseClass(entry)) {\n return container.bind(entry.provide).to(entry.useClass);\n }\n\n if (isClassProviderConfigEntryToken(entry)) {\n return container.bind(entry.provide).to(entry.provide);\n }\n\n if (isValueProviderConfigEntry(entry)) {\n // using toDynamicValue to return BindingInSyntax\n return container.bind(entry.provide).toDynamicValue(() => entry.useValue);\n }\n\n return container.bind(entry).to(entry);\n };\n\nconst unbindEntry = (container: Container) => (entry: ProviderConfigEntry<any>) => {\n if (isProviderConfigEntryInheritable(entry) && !container.isBound(entry.provide)) {\n return;\n }\n if (\n isClassProviderConfigEntryUseClass(entry) ||\n isValueProviderConfigEntry(entry) ||\n isClassProviderConfigEntryToken(entry)\n ) {\n return container.unbind(entry.provide);\n }\n\n return container.unbind(entry);\n};\n\nfunction bindEntries(\n container: Container,\n { singletons = [], instances = [] }: Pick<ProviderProps, 'singletons' | 'instances'>\n) {\n singletons.map(bindEntry(container, true)).forEach(binding => {\n binding?.inSingletonScope();\n });\n instances.forEach(bindEntry(container, false));\n}\n\nfunction unbindEntries(\n container: Container,\n { singletons = [], instances = [] }: Pick<ProviderProps, 'singletons' | 'instances'>\n) {\n [...singletons, ...instances].forEach(unbindEntry(container));\n}\n\nfunction initializeStores(stores: Store[], onError: (error: any) => void) {\n const promises: Promise<void>[] = [];\n\n for (const instance of stores) {\n let promise;\n\n try {\n promise = instance.initialize?.();\n } catch (e: any) {\n onError(e);\n }\n\n if (promise && typeof promise.catch === 'function') {\n promises.push(promise.catch(onError));\n }\n }\n\n return promises;\n}\n\nfunction disposeStores(stores: Store[]) {\n for (const instance of stores) {\n instance.dispose?.();\n }\n}\n\nexport type ProviderProps = PropsWithChildren<{\n singletons?: ProviderConfigEntrySingletons<any>[];\n instances?: ProviderConfigEntryInstances<any>[];\n loadingFallback?: ReactNode;\n errorFallback?: ReactNode;\n}>;\n\nexport const Provider: FC<ProviderProps> = ({\n singletons,\n instances,\n loadingFallback = defaultLoadingFallback,\n errorFallback = defaultErrorFallback,\n children,\n}) => {\n const parentContainer = useContext(ContainerContext);\n const [container, setContainer] = useState<Container>();\n const [promises, setPromises] = useState<Promise<void>[]>([]);\n const [error, setError] = useState(false);\n\n useEffect(() => {\n const container = new Container();\n container.parent = parentContainer;\n setContainer(container);\n\n const handleError = (e: any) => {\n setError(true);\n // Rethrow asynchronously for global error handler\n setTimeout(() => {\n throw e;\n });\n };\n\n bindEntries(container, { singletons, instances });\n const promises = initializeStores(\n getStoreInstances(container, { singletons, instances }),\n handleError\n );\n setPromises(promises);\n\n return () => {\n const storeInstances = getStoreInstances(container, { singletons, instances });\n\n unbindEntries(container, { singletons, instances });\n disposeStores(storeInstances);\n setContainer(undefined);\n setPromises([]);\n };\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n if (!container) {\n return null;\n }\n\n const getContent = () => {\n if (error) {\n return errorFallback;\n }\n\n if (promises.length) {\n return (\n <Await promises={promises} fallback={loadingFallback}>\n {children}\n </Await>\n );\n }\n\n return children;\n };\n\n return <ContainerContext.Provider value={container}>{getContent()}</ContainerContext.Provider>;\n};\n"],"names":["useState","useContext","useEffect","Container","Await","ContainerContext","defaultErrorFallback","defaultLoadingFallback","isStore","isClassProviderConfigEntryUseClass","entry","Object","hasOwn","isValueProviderConfigEntry","isClassProviderConfigEntryToken","isProviderConfigEntryInheritable","getProvideTokenWithClass","provide","useClass","undefined","getStoreInstances","container","singletons","instances","reduce","out","isCurrentBound","push","get","bindEntry","checkInherit","inherit","isBound","bind","to","toDynamicValue","useValue","unbindEntry","unbind","bindEntries","map","forEach","binding","inSingletonScope","unbindEntries","initializeStores","stores","onError","promises","instance","promise","initialize","e","catch","disposeStores","dispose","Provider","loadingFallback","errorFallback","children","parentContainer","setContainer","setPromises","error","setError","parent","handleError","setTimeout","storeInstances","getContent","length","fallback","value"],"mappings":"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"}
|
package/dist/store.js
CHANGED
|
@@ -1,26 +1,32 @@
|
|
|
1
|
-
|
|
1
|
+
function _define_property(obj, key, value) {
|
|
2
|
+
if (key in obj) {
|
|
3
|
+
Object.defineProperty(obj, key, {
|
|
4
|
+
value: value,
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true
|
|
8
|
+
});
|
|
9
|
+
} else {
|
|
10
|
+
obj[key] = value;
|
|
11
|
+
}
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
14
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
2
15
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
16
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for
|
|
17
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
}
|
|
7
|
-
var _a;
|
|
19
|
+
}
|
|
8
20
|
import { injectable } from 'inversify';
|
|
9
21
|
const symbol = Symbol('Inheritor Of The Store');
|
|
10
22
|
export function isStore(identifier) {
|
|
11
23
|
return identifier[symbol];
|
|
12
24
|
}
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
enumerable: true,
|
|
18
|
-
configurable: true,
|
|
19
|
-
writable: true,
|
|
20
|
-
value: true
|
|
21
|
-
});
|
|
22
|
-
Store = __decorate([
|
|
25
|
+
export class Store {
|
|
26
|
+
}
|
|
27
|
+
_define_property(Store, symbol, true);
|
|
28
|
+
Store = _ts_decorate([
|
|
23
29
|
injectable()
|
|
24
30
|
], Store);
|
|
25
|
-
|
|
31
|
+
|
|
26
32
|
//# sourceMappingURL=store.js.map
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/store.ts"],"sourcesContent":["import { injectable, interfaces } from 'inversify';\n\nconst symbol = Symbol('Inheritor Of The Store');\n\ninterface Identifier<T> extends interfaces.Newable<T> {\n [symbol]?: boolean;\n}\n\nexport function isStore<T>(identifier: Identifier<T>) {\n return identifier[symbol];\n}\n\n@injectable()\nexport abstract class Store {\n static [symbol] = true;\n\n initialize?(): Promise<void> | void;\n dispose?(): void;\n}\n"],"names":["injectable","symbol","Symbol","isStore","identifier","Store"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,SAASA,UAAU,QAAoB,YAAY;AAEnD,MAAMC,SAASC,OAAO;AAMtB,OAAO,SAASC,QAAWC,UAAyB;IAChD,OAAOA,UAAU,CAACH,OAAO;AAC7B;AAGA,OAAO,MAAeI;AAKtB;AAJI,iBADkBA,OACVJ,QAAU"}
|
package/dist/use-dependencies.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { useRef, useContext } from 'react';
|
|
2
2
|
import { ContainerContext } from './common';
|
|
3
3
|
function useDependenciesInternal(tokens, optional) {
|
|
4
|
-
var
|
|
4
|
+
var _ref;
|
|
5
5
|
const ref = useRef(null);
|
|
6
6
|
const container = useContext(ContainerContext);
|
|
7
|
-
|
|
7
|
+
var _current;
|
|
8
|
+
(_current = (_ref = ref).current) !== null && _current !== void 0 ? _current : _ref.current = tokens.map((s)=>{
|
|
8
9
|
if (optional) {
|
|
9
10
|
if (s && container.isBound(s)) {
|
|
10
11
|
return container.get(s);
|
|
@@ -12,7 +13,7 @@ function useDependenciesInternal(tokens, optional) {
|
|
|
12
13
|
return undefined;
|
|
13
14
|
}
|
|
14
15
|
return container.get(s);
|
|
15
|
-
})
|
|
16
|
+
});
|
|
16
17
|
return ref.current;
|
|
17
18
|
}
|
|
18
19
|
export function useDependencies(...tokens) {
|
|
@@ -21,4 +22,5 @@ export function useDependencies(...tokens) {
|
|
|
21
22
|
export function useOptionalDependencies(...tokens) {
|
|
22
23
|
return useDependenciesInternal(tokens, true);
|
|
23
24
|
}
|
|
25
|
+
|
|
24
26
|
//# sourceMappingURL=use-dependencies.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/use-dependencies.ts"],"sourcesContent":["import { useRef, useContext } from 'react';\n\nimport { ContainerContext, Token } from './common';\n\ntype Tokens<T> = {\n [P in keyof T]: Token<T[P]>;\n};\n\nfunction useDependenciesInternal<T extends any[], P extends boolean>(\n tokens: Tokens<T>,\n optional: P\n) {\n const ref = useRef<T | Partial<T> | null>(null);\n const container = useContext(ContainerContext);\n\n ref.current ??= tokens.map(s => {\n if (optional) {\n if (s && container.isBound(s)) {\n return container.get(s);\n }\n\n return undefined;\n }\n\n return container.get(s);\n }) as T;\n\n return ref.current as P extends true ? Partial<T> : T;\n}\n\nexport function useDependencies<T extends any[]>(...tokens: Tokens<T>) {\n return useDependenciesInternal(tokens, false);\n}\n\nexport function useOptionalDependencies<T extends any[]>(...tokens: Tokens<T>) {\n return useDependenciesInternal(tokens, true);\n}\n"],"names":["useRef","useContext","ContainerContext","useDependenciesInternal","tokens","optional","ref","container","current","map","s","isBound","get","undefined","useDependencies","useOptionalDependencies"],"mappings":"AAAA,SAASA,MAAM,EAAEC,UAAU,QAAQ,QAAQ;AAE3C,SAASC,gBAAgB,QAAe,WAAW;AAMnD,SAASC,wBACLC,MAAiB,EACjBC,QAAW;QAKXC;IAHA,MAAMA,MAAMN,OAA8B;IAC1C,MAAMO,YAAYN,WAAWC;;IAE7BI,aAAAA,OAAAA,KAAIE,sDAAJF,KAAIE,UAAYJ,OAAOK,GAAG,CAACC,CAAAA;QACvB,IAAIL,UAAU;YACV,IAAIK,KAAKH,UAAUI,OAAO,CAACD,IAAI;gBAC3B,OAAOH,UAAUK,GAAG,CAACF;YACzB;YAEA,OAAOG;QACX;QAEA,OAAON,UAAUK,GAAG,CAACF;IACzB;IAEA,OAAOJ,IAAIE,OAAO;AACtB;AAEA,OAAO,SAASM,gBAAiC,GAAGV,MAAiB;IACjE,OAAOD,wBAAwBC,QAAQ;AAC3C;AAEA,OAAO,SAASW,wBAAyC,GAAGX,MAAiB;IACzE,OAAOD,wBAAwBC,QAAQ;AAC3C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/react-ioc",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "31.0.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"homepage": "https://docs.st.dev/docs/frontend/react-ioc",
|
|
6
6
|
"repository": {
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"cli": {
|
|
35
35
|
"webpack": false
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "c52e188a1217df74052774a2eea6a5126089e3d5"
|
|
38
38
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
2
|
|
|
3
|
-
export {
|
|
3
|
+
export type { Token, SymbolToken } from './common';
|
|
4
|
+
export { rootContainer, symbolToken } from './common';
|
|
4
5
|
export { injectDependency } from './inject-dependency';
|
|
5
6
|
export { provide } from './provide';
|
|
6
|
-
export {
|
|
7
|
+
export type { ProviderProps } from './provider';
|
|
8
|
+
export { Provider } from './provider';
|
|
7
9
|
export { Store } from './store';
|
|
8
10
|
export { useDependencies, useOptionalDependencies } from './use-dependencies';
|
|
9
11
|
|
|
10
|
-
export {
|
|
12
|
+
export type { interfaces } from 'inversify';
|
|
13
|
+
export { Container, injectable, inject, optional, unmanaged } from 'inversify';
|