@wirestate/react 0.6.3 → 0.7.0-experimental.2
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/CHANGELOG.md +27 -1
- package/README.md +109 -25
- package/cjs/development/index.js +462 -222
- package/cjs/development/index.js.map +1 -1
- package/cjs/development/lib.js +167 -45
- package/cjs/development/lib.js.map +1 -1
- package/cjs/development/test-utils.js +22 -11
- package/cjs/development/test-utils.js.map +1 -1
- package/cjs/production/index.js +1 -1
- package/cjs/production/index.js.map +1 -1
- package/cjs/production/lib.js +1 -1
- package/cjs/production/lib.js.map +1 -1
- package/cjs/production/test-utils.js +1 -1
- package/cjs/production/test-utils.js.map +1 -1
- package/esm/development/commands/use-command-caller.js +16 -3
- package/esm/development/commands/use-command-caller.js.map +1 -1
- package/esm/development/commands/use-command-handler.js +20 -4
- package/esm/development/commands/use-command-handler.js.map +1 -1
- package/esm/development/commands/use-optional-command-caller.js +20 -4
- package/esm/development/commands/use-optional-command-caller.js.map +1 -1
- package/esm/development/context/container-context.js +16 -0
- package/esm/development/context/container-context.js.map +1 -0
- package/esm/development/context/use-container.js +33 -0
- package/esm/development/context/use-container.js.map +1 -0
- package/esm/development/context/use-root-container.js +35 -0
- package/esm/development/context/use-root-container.js.map +1 -0
- package/esm/development/context/use-scope.js +31 -0
- package/esm/development/context/use-scope.js.map +1 -0
- package/esm/development/error/error-code.js +1 -3
- package/esm/development/error/error-code.js.map +1 -1
- package/esm/development/events/use-event-emitter.js +20 -4
- package/esm/development/events/use-event-emitter.js.map +1 -1
- package/esm/development/events/use-event.js +18 -4
- package/esm/development/events/use-event.js.map +1 -1
- package/esm/development/events/use-events-handler.js +18 -3
- package/esm/development/events/use-events-handler.js.map +1 -1
- package/esm/development/events/use-events.js +18 -4
- package/esm/development/events/use-events.js.map +1 -1
- package/esm/development/index.js +12 -10
- package/esm/development/index.js.map +1 -1
- package/esm/development/injection/use-injection.js +36 -0
- package/esm/development/injection/use-injection.js.map +1 -0
- package/esm/development/injection/use-optional-injection.js +40 -0
- package/esm/development/injection/use-optional-injection.js.map +1 -0
- package/esm/development/provision/container-activator.js +33 -0
- package/esm/development/provision/container-activator.js.map +1 -0
- package/esm/development/provision/container-provider.js +74 -0
- package/esm/development/provision/container-provider.js.map +1 -0
- package/esm/development/provision/sub-container-provider.js +69 -0
- package/esm/development/provision/sub-container-provider.js.map +1 -0
- package/esm/development/provision/use-container-provision-state.js +76 -0
- package/esm/development/provision/use-container-provision-state.js.map +1 -0
- package/esm/development/queries/use-optional-query-caller.js +16 -4
- package/esm/development/queries/use-optional-query-caller.js.map +1 -1
- package/esm/development/queries/use-optional-sync-query-caller.js +14 -3
- package/esm/development/queries/use-optional-sync-query-caller.js.map +1 -1
- package/esm/development/queries/use-query-caller.js +15 -3
- package/esm/development/queries/use-query-caller.js.map +1 -1
- package/esm/development/queries/use-query-handler.js +21 -5
- package/esm/development/queries/use-query-handler.js.map +1 -1
- package/esm/development/queries/use-sync-query-caller.js +15 -3
- package/esm/development/queries/use-sync-query-caller.js.map +1 -1
- package/esm/development/test-utils/with-container-provider.js +35 -0
- package/esm/development/test-utils/with-container-provider.js.map +1 -0
- package/esm/development/test-utils.js +1 -1
- package/esm/development/utils/shallow-equal-arrays.js +28 -0
- package/esm/development/utils/shallow-equal-arrays.js.map +1 -0
- package/esm/production/commands/use-command-caller.js +1 -1
- package/esm/production/commands/use-command-caller.js.map +1 -1
- package/esm/production/commands/use-command-handler.js +1 -1
- package/esm/production/commands/use-command-handler.js.map +1 -1
- package/esm/production/commands/use-optional-command-caller.js +1 -1
- package/esm/production/commands/use-optional-command-caller.js.map +1 -1
- package/esm/production/context/container-context.js +1 -0
- package/esm/production/context/container-context.js.map +1 -0
- package/esm/production/context/use-container.js +1 -0
- package/esm/production/context/use-container.js.map +1 -0
- package/esm/production/context/use-root-container.js +1 -0
- package/esm/production/context/use-root-container.js.map +1 -0
- package/esm/production/context/use-scope.js +1 -0
- package/esm/production/context/use-scope.js.map +1 -0
- package/esm/production/error/error-code.js +1 -1
- package/esm/production/error/error-code.js.map +1 -1
- package/esm/production/events/use-event-emitter.js +1 -1
- package/esm/production/events/use-event-emitter.js.map +1 -1
- package/esm/production/events/use-event.js +1 -1
- package/esm/production/events/use-event.js.map +1 -1
- package/esm/production/events/use-events-handler.js +1 -1
- package/esm/production/events/use-events-handler.js.map +1 -1
- package/esm/production/events/use-events.js +1 -1
- package/esm/production/events/use-events.js.map +1 -1
- package/esm/production/index.js +1 -1
- package/esm/production/injection/use-injection.js +1 -0
- package/esm/production/injection/use-injection.js.map +1 -0
- package/esm/production/injection/use-optional-injection.js +1 -0
- package/esm/production/injection/use-optional-injection.js.map +1 -0
- package/esm/production/provision/container-activator.js +1 -0
- package/esm/production/provision/container-activator.js.map +1 -0
- package/esm/production/provision/container-provider.js +1 -0
- package/esm/production/provision/container-provider.js.map +1 -0
- package/esm/production/provision/sub-container-provider.js +1 -0
- package/esm/production/provision/sub-container-provider.js.map +1 -0
- package/esm/production/provision/use-container-provision-state.js +1 -0
- package/esm/production/provision/use-container-provision-state.js.map +1 -0
- package/esm/production/queries/use-optional-query-caller.js +1 -1
- package/esm/production/queries/use-optional-query-caller.js.map +1 -1
- package/esm/production/queries/use-optional-sync-query-caller.js +1 -1
- package/esm/production/queries/use-optional-sync-query-caller.js.map +1 -1
- package/esm/production/queries/use-query-caller.js +1 -1
- package/esm/production/queries/use-query-caller.js.map +1 -1
- package/esm/production/queries/use-query-handler.js +1 -1
- package/esm/production/queries/use-query-handler.js.map +1 -1
- package/esm/production/queries/use-sync-query-caller.js +1 -1
- package/esm/production/queries/use-sync-query-caller.js.map +1 -1
- package/esm/production/test-utils/with-container-provider.js +1 -0
- package/esm/production/test-utils/with-container-provider.js.map +1 -0
- package/esm/production/test-utils.js +1 -1
- package/esm/production/utils/shallow-equal-arrays.js +1 -0
- package/esm/production/utils/shallow-equal-arrays.js.map +1 -0
- package/index.d.ts +554 -137
- package/package.json +2 -2
- package/test-utils.d.ts +19 -8
- package/esm/development/provision/create-injectables-provider.js +0 -101
- package/esm/development/provision/create-injectables-provider.js.map +0 -1
- package/esm/development/provision/ioc-context.js +0 -11
- package/esm/development/provision/ioc-context.js.map +0 -1
- package/esm/development/provision/ioc-provider.js +0 -50
- package/esm/development/provision/ioc-provider.js.map +0 -1
- package/esm/development/provision/use-container-revision.js +0 -13
- package/esm/development/provision/use-container-revision.js.map +0 -1
- package/esm/development/provision/use-container.js +0 -13
- package/esm/development/provision/use-container.js.map +0 -1
- package/esm/development/provision/use-injection.js +0 -22
- package/esm/development/provision/use-injection.js.map +0 -1
- package/esm/development/provision/use-ioc-context.js +0 -21
- package/esm/development/provision/use-ioc-context.js.map +0 -1
- package/esm/development/provision/use-optional-injection.js +0 -29
- package/esm/development/provision/use-optional-injection.js.map +0 -1
- package/esm/development/test-utils/with-ioc-provider.js +0 -24
- package/esm/development/test-utils/with-ioc-provider.js.map +0 -1
- package/esm/production/provision/create-injectables-provider.js +0 -1
- package/esm/production/provision/create-injectables-provider.js.map +0 -1
- package/esm/production/provision/ioc-context.js +0 -1
- package/esm/production/provision/ioc-context.js.map +0 -1
- package/esm/production/provision/ioc-provider.js +0 -1
- package/esm/production/provision/ioc-provider.js.map +0 -1
- package/esm/production/provision/use-container-revision.js +0 -1
- package/esm/production/provision/use-container-revision.js.map +0 -1
- package/esm/production/provision/use-container.js +0 -1
- package/esm/production/provision/use-container.js.map +0 -1
- package/esm/production/provision/use-injection.js +0 -1
- package/esm/production/provision/use-injection.js.map +0 -1
- package/esm/production/provision/use-ioc-context.js +0 -1
- package/esm/production/provision/use-ioc-context.js.map +0 -1
- package/esm/production/provision/use-optional-injection.js +0 -1
- package/esm/production/provision/use-optional-injection.js.map +0 -1
- package/esm/production/test-utils/with-ioc-provider.js +0 -1
- package/esm/production/test-utils/with-ioc-provider.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wirestate/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0-experimental.2",
|
|
4
4
|
"description": "React alias and adapters for wirestate",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"author": "Syrotenko Igor",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
],
|
|
54
54
|
"dependencies": {},
|
|
55
55
|
"peerDependencies": {
|
|
56
|
-
"@wirestate/core": ">=0.
|
|
56
|
+
"@wirestate/core": ">=0.7.0-experimental.1",
|
|
57
57
|
"react": ">=16.8.0",
|
|
58
58
|
"reflect-metadata": ">=0.2.0",
|
|
59
59
|
"tslib": ">=2.5.0"
|
package/test-utils.d.ts
CHANGED
|
@@ -3,16 +3,27 @@ import { ReactNode } from 'react';
|
|
|
3
3
|
import { Container } from '@wirestate/core';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Wraps a
|
|
6
|
+
* Wraps a React element tree with {@link ContainerProvider} for testing purposes.
|
|
7
7
|
*
|
|
8
|
-
* @
|
|
9
|
-
*
|
|
10
|
-
* @
|
|
11
|
-
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* This utility simplifies setting up the IoC context in unit tests. It automatically
|
|
10
|
+
* creates a {@link mockContainer} if none is provided.
|
|
11
|
+
*
|
|
12
|
+
* @group Test-utils
|
|
13
|
+
*
|
|
14
|
+
* @param children - The React tree to be wrapped.
|
|
15
|
+
* @param container - An optional Inversify container. Defaults to a new {@link mockContainer}.
|
|
16
|
+
* @returns A React element wrapped in an {@link ContainerProvider}.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* const container: Container = mockContainer();
|
|
21
|
+
*
|
|
22
|
+
* render(withIocProvider(<MyComponent />, container));
|
|
23
|
+
* ```
|
|
12
24
|
*/
|
|
13
|
-
declare function
|
|
25
|
+
declare function withContainerProvider(children: ReactNode, container?: Container): react.FunctionComponentElement<{
|
|
14
26
|
container: Container;
|
|
15
|
-
seed: Record<string, unknown> | undefined;
|
|
16
27
|
}>;
|
|
17
28
|
|
|
18
|
-
export {
|
|
29
|
+
export { withContainerProvider };
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { getEntryToken, WirestateError, applySeeds, bindEntry, unapplySeeds } from '@wirestate/core';
|
|
2
|
-
import { useContext, useState, useMemo, useEffect } from 'react';
|
|
3
|
-
import { ERROR_CODE_VALIDATION_ERROR, ERROR_CODE_INVALID_CONTEXT } from '../error/error-code.js';
|
|
4
|
-
import { IocReactContext } from './ioc-context.js';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Creates a component that manages injectable lifetimes for its subtree.
|
|
8
|
-
*
|
|
9
|
-
* @param entries - service classes or injectable descriptors to bind
|
|
10
|
-
* @param options - provider configuration
|
|
11
|
-
* @returns injectables provider component
|
|
12
|
-
*/
|
|
13
|
-
function createInjectablesProvider(entries, options) {
|
|
14
|
-
if (options === void 0) {
|
|
15
|
-
options = {};
|
|
16
|
-
}
|
|
17
|
-
var activate = options.activate;
|
|
18
|
-
if (activate && activate.length > 0) {
|
|
19
|
-
var entryTokens = entries.map(getEntryToken);
|
|
20
|
-
for (var _i = 0, activate_1 = activate; _i < activate_1.length; _i++) {
|
|
21
|
-
var eager = activate_1[_i];
|
|
22
|
-
if (!entryTokens.includes(eager)) {
|
|
23
|
-
throw new WirestateError(ERROR_CODE_VALIDATION_ERROR, "createInjectablesProvider: '".concat(String(eager), "' is listed in 'activate' but was not provided in 'entries'."));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
function InjectablesProviderComponent(props) {
|
|
28
|
-
var iocContext = useContext(IocReactContext);
|
|
29
|
-
if (!iocContext) {
|
|
30
|
-
throw new WirestateError(ERROR_CODE_INVALID_CONTEXT, "<InjectablesProvider> must be rendered inside an <IocProvider> React subtree.");
|
|
31
|
-
}
|
|
32
|
-
// Snapshot props on mount to ensure binding stability.
|
|
33
|
-
// useState lazy initializer ensures it only runs once.
|
|
34
|
-
var initialPropsSnapshot = useState(function () {
|
|
35
|
-
return props;
|
|
36
|
-
})[0];
|
|
37
|
-
useMemo(function () {
|
|
38
|
-
// Seed must be applied BEFORE binding so @Inject(INITIAL_STATE_TOKEN) works during activation.
|
|
39
|
-
if (initialPropsSnapshot.seeds) {
|
|
40
|
-
applySeeds(iocContext.container, initialPropsSnapshot.seeds);
|
|
41
|
-
}
|
|
42
|
-
for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
|
|
43
|
-
var entry = entries_1[_i];
|
|
44
|
-
if (!iocContext.container.isBound(getEntryToken(entry))) {
|
|
45
|
-
bindEntry(iocContext.container, entry);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (activate) {
|
|
49
|
-
for (var _a = 0, activate_2 = activate; _a < activate_2.length; _a++) {
|
|
50
|
-
var eager = activate_2[_a];
|
|
51
|
-
iocContext.container.get(eager);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}, entries);
|
|
55
|
-
useEffect(function () {
|
|
56
|
-
// Re-apply state and re-bind if container was reset (e.g. StrictMode remount or HMR).
|
|
57
|
-
var didRebind = false;
|
|
58
|
-
if (initialPropsSnapshot.seeds) {
|
|
59
|
-
applySeeds(iocContext.container, initialPropsSnapshot.seeds);
|
|
60
|
-
}
|
|
61
|
-
for (var _i = 0, entries_2 = entries; _i < entries_2.length; _i++) {
|
|
62
|
-
var entry = entries_2[_i];
|
|
63
|
-
if (!iocContext.container.isBound(getEntryToken(entry))) {
|
|
64
|
-
didRebind = true;
|
|
65
|
-
bindEntry(iocContext.container, entry);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
if (activate) {
|
|
69
|
-
for (var _a = 0, activate_3 = activate; _a < activate_3.length; _a++) {
|
|
70
|
-
var eager = activate_3[_a];
|
|
71
|
-
iocContext.container.get(eager);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// Increment revision to invalidate stale injection caches.
|
|
75
|
-
if (didRebind) {
|
|
76
|
-
iocContext.setRevision(function (r) {
|
|
77
|
-
return r + 1;
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
return function () {
|
|
81
|
-
for (var _i = 0, entries_3 = entries; _i < entries_3.length; _i++) {
|
|
82
|
-
var entry = entries_3[_i];
|
|
83
|
-
var token = getEntryToken(entry);
|
|
84
|
-
if (iocContext.container.isBound(token)) {
|
|
85
|
-
iocContext.container.unbind(token);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
// Remove only this provider's targeted initial state entries.
|
|
89
|
-
if (initialPropsSnapshot.seeds) {
|
|
90
|
-
unapplySeeds(iocContext.container, initialPropsSnapshot.seeds);
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
}, entries);
|
|
94
|
-
return props.children;
|
|
95
|
-
}
|
|
96
|
-
InjectablesProviderComponent.displayName = "InjectablesProvider";
|
|
97
|
-
return InjectablesProviderComponent;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export { createInjectablesProvider };
|
|
101
|
-
//# sourceMappingURL=create-injectables-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-injectables-provider.js","sources":["../../../../../../../../src/wirestate-react/provision/create-injectables-provider.ts"],"sourcesContent":[null],"names":["createInjectablesProvider","entries","options","activate","length","entryTokens","map","getEntryToken","_i","activate_1","eager","includes","WirestateError","ERROR_CODE_VALIDATION_ERROR","concat","String","InjectablesProviderComponent","props","iocContext","useContext","IocReactContext","ERROR_CODE_INVALID_CONTEXT","initialPropsSnapshot","useState","useMemo","seeds","applySeeds","container","entries_1","entry","isBound","bindEntry","_a","activate_2","get","useEffect","didRebind","entries_2","activate_3","setRevision","r","entries_3","token","unbind","unapplySeeds","children","displayName"],"mappings":";;;;;AAmDA;;;;;;AAMG;AACG,SAAUA,yBAAyBA,CACvCC,OAA8D,EAC9DC,OAA8C,EAAA;AAA9C,EAAA,IAAAA,OAAA,KAAA,MAAA,EAAA;IAAAA,OAAA,GAAA,EAA8C;AAAA,EAAA;AAItC,EAAA,IAAAC,QAAQ,GAAKD,OAAO,CAAAC,QAAZ;AAEhB,EAAA,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,MAAM,GAAG,CAAC,EAAE;AACnC,IAAA,IAAMC,WAAW,GAAqCJ,OAAO,CAACK,GAAG,CAACC,aAAa,CAAC;AAEhF,IAAA,KAAoB,IAAAC,EAAA,GAAA,CAAQ,EAARC,UAAA,GAAAN,QAAQ,EAARK,sBAAQ,EAARA,EAAA,EAAQ,EAAE;AAAzB,MAAA,IAAME,KAAK,GAAAD,UAAA,CAAAD,EAAA,CAAA;AACd,MAAA,IAAI,CAACH,WAAW,CAACM,QAAQ,CAACD,KAAK,CAAC,EAAE;AAChC,QAAA,MAAM,IAAIE,cAAc,CACtBC,2BAA2B,EAC3B,8BAAA,CAAAC,MAAA,CAA+BC,MAAM,CAACL,KAAK,CAAC,EAAA,8DAAA,CAA8D,CAC3G;AACH,MAAA;AACF,IAAA;AACF,EAAA;EAEA,SAASM,4BAA4BA,CAACC,KAA+B,EAAA;AACnE,IAAA,IAAMC,UAAU,GAAyBC,UAAU,CAACC,eAAe,CAAC;IAEpE,IAAI,CAACF,UAAU,EAAE;AACf,MAAA,MAAM,IAAIN,cAAc,CACtBS,0BAA0B,EAC1B,+EAA+E,CAChF;AACH,IAAA;AAEA;AACA;AACO,IAAA,IAAAC,oBAAoB,GAAIC,QAAQ,CAA2B,YAAA;AAAM,MAAA,OAAAN,KAAK;IAAL,CAAK,CAAC,CAAA,CAAA,CAAnD;AAE3BO,IAAAA,OAAO,CAAC,YAAA;AASN;MACA,IAAIF,oBAAoB,CAACG,KAAK,EAAE;QAC9BC,UAAU,CAACR,UAAU,CAACS,SAAS,EAAEL,oBAAoB,CAACG,KAAK,CAAC;AAC9D,MAAA;AAEA,MAAA,KAAoB,IAAAjB,EAAA,GAAA,CAAO,EAAPoB,SAAA,GAAA3B,OAAO,EAAPO,qBAAO,EAAPA,EAAA,EAAO,EAAE;AAAxB,QAAA,IAAMqB,KAAK,GAAAD,SAAA,CAAApB,EAAA,CAAA;AACd,QAAA,IAAI,CAACU,UAAU,CAACS,SAAS,CAACG,OAAO,CAACvB,aAAa,CAACsB,KAAK,CAAC,CAAC,EAAE;AACvDE,UAAAA,SAAS,CAACb,UAAU,CAACS,SAAS,EAAEE,KAAK,CAAC;AACxC,QAAA;AACF,MAAA;AAEA,MAAA,IAAI1B,QAAQ,EAAE;AACZ,QAAA,KAAoB,IAAA6B,EAAA,GAAA,CAAQ,EAARC,UAAA,GAAA9B,QAAQ,EAAR6B,sBAAQ,EAARA,EAAA,EAAQ,EAAE;AAAzB,UAAA,IAAMtB,KAAK,GAAAuB,UAAA,CAAAD,EAAA,CAAA;AACdd,UAAAA,UAAU,CAACS,SAAS,CAACO,GAAG,CAACxB,KAAK,CAAC;AACjC,QAAA;AACF,MAAA;IACF,CAAC,EAAET,OAAO,CAAC;AAEXkC,IAAAA,SAAS,CAAC,YAAA;AASR;MACA,IAAIC,SAAS,GAAY,KAAK;MAE9B,IAAId,oBAAoB,CAACG,KAAK,EAAE;QAC9BC,UAAU,CAACR,UAAU,CAACS,SAAS,EAAEL,oBAAoB,CAACG,KAAK,CAAC;AAC9D,MAAA;AAEA,MAAA,KAAoB,IAAAjB,EAAA,GAAA,CAAO,EAAP6B,SAAA,GAAApC,OAAO,EAAPO,qBAAO,EAAPA,EAAA,EAAO,EAAE;AAAxB,QAAA,IAAMqB,KAAK,GAAAQ,SAAA,CAAA7B,EAAA,CAAA;AACd,QAAA,IAAI,CAACU,UAAU,CAACS,SAAS,CAACG,OAAO,CAACvB,aAAa,CAACsB,KAAK,CAAC,CAAC,EAAE;AACvDO,UAAAA,SAAS,GAAG,IAAI;AAChBL,UAAAA,SAAS,CAACb,UAAU,CAACS,SAAS,EAAEE,KAAK,CAAC;AACxC,QAAA;AACF,MAAA;AAEA,MAAA,IAAI1B,QAAQ,EAAE;AACZ,QAAA,KAAoB,IAAA6B,EAAA,GAAA,CAAQ,EAARM,UAAA,GAAAnC,QAAQ,EAAR6B,sBAAQ,EAARA,EAAA,EAAQ,EAAE;AAAzB,UAAA,IAAMtB,KAAK,GAAA4B,UAAA,CAAAN,EAAA,CAAA;AACdd,UAAAA,UAAU,CAACS,SAAS,CAACO,GAAG,CAACxB,KAAK,CAAC;AACjC,QAAA;AACF,MAAA;AAEA;AACA,MAAA,IAAI0B,SAAS,EAAE;AACblB,QAAAA,UAAU,CAACqB,WAAW,CAAC,UAACC,CAAC,EAAA;UAAK,OAAAA,CAAC,GAAG,CAAC;AAAL,QAAA,CAAK,CAAC;AACtC,MAAA;AAEA,MAAA,OAAO,YAAA;AAOL,QAAA,KAAoB,IAAAhC,EAAA,GAAA,CAAO,EAAPiC,SAAA,GAAAxC,OAAO,EAAPO,qBAAO,EAAPA,EAAA,EAAO,EAAE;AAAxB,UAAA,IAAMqB,KAAK,GAAAY,SAAA,CAAAjC,EAAA,CAAA;AACd,UAAA,IAAMkC,KAAK,GAAsBnC,aAAa,CAACsB,KAAK,CAAC;UAErD,IAAIX,UAAU,CAACS,SAAS,CAACG,OAAO,CAACY,KAAK,CAAC,EAAE;AACvCxB,YAAAA,UAAU,CAACS,SAAS,CAACgB,MAAM,CAACD,KAAK,CAAC;AACpC,UAAA;AACF,QAAA;AAEA;QACA,IAAIpB,oBAAoB,CAACG,KAAK,EAAE;UAC9BmB,YAAY,CAAC1B,UAAU,CAACS,SAAS,EAAEL,oBAAoB,CAACG,KAAK,CAAC;AAChE,QAAA;MACF,CAAC;IACH,CAAC,EAAExB,OAAO,CAAC;IAEX,OAAOgB,KAAK,CAAC4B,QAAwB;AACvC,EAAA;EAEA7B,4BAA4B,CAAC8B,WAAW,GAAG,qBAAqB;AAIhE,EAAA,OAAO9B,4BAA4B;AACrC;;;;"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { createContext } from 'react';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* React context carrying the IoC container.
|
|
5
|
-
* Internal. Use hooks to access services.
|
|
6
|
-
*/
|
|
7
|
-
var IocReactContext = createContext(null);
|
|
8
|
-
IocReactContext.displayName = "IocContext";
|
|
9
|
-
|
|
10
|
-
export { IocReactContext };
|
|
11
|
-
//# sourceMappingURL=ioc-context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ioc-context.js","sources":["../../../../../../../../src/wirestate-react/provision/ioc-context.ts"],"sourcesContent":[null],"names":["IocReactContext","createContext","displayName"],"mappings":";;AAuBA;;;AAGG;IACUA,eAAe,GAAkCC,aAAa,CAAuB,IAAI;AAEtGD,eAAe,CAACE,WAAW,GAAG,YAAY;;;;"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { createIocContainer, WirestateError, applySharedSeed } from '@wirestate/core';
|
|
2
|
-
import { useState, useMemo, useEffect, createElement } from 'react';
|
|
3
|
-
import { ERROR_CODE_FAILED_TO_RESOLVE_QUERY_HANDLER } from '../error/error-code.js';
|
|
4
|
-
import { IocReactContext } from './ioc-context.js';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Provides an IoC container to the component tree.
|
|
8
|
-
*
|
|
9
|
-
* @param props - component props
|
|
10
|
-
* @param props.container - external container instance
|
|
11
|
-
* @param props.seed - shared seed across the container
|
|
12
|
-
* @param props.children - components to wrap
|
|
13
|
-
* @returns provider element
|
|
14
|
-
*/
|
|
15
|
-
function IocProvider(_a) {
|
|
16
|
-
var externalContainer = _a.container,
|
|
17
|
-
seed = _a.seed,
|
|
18
|
-
children = _a.children;
|
|
19
|
-
// Incremented on binding changes to invalidate descendant caches (e.g., useInjection).
|
|
20
|
-
var _b = useState(1),
|
|
21
|
-
revision = _b[0],
|
|
22
|
-
setRevision = _b[1];
|
|
23
|
-
// Lazy initialize owned container if no external container is provided.
|
|
24
|
-
var ownedContainer = useState(function () {
|
|
25
|
-
return externalContainer ? null : createIocContainer();
|
|
26
|
-
})[0];
|
|
27
|
-
var container = externalContainer !== null && externalContainer !== void 0 ? externalContainer : ownedContainer;
|
|
28
|
-
if (!container) {
|
|
29
|
-
throw new WirestateError(ERROR_CODE_FAILED_TO_RESOLVE_QUERY_HANDLER, "IocProvider failed to resolve a container instance.");
|
|
30
|
-
}
|
|
31
|
-
// Context value is stable unless the container or revision changes.
|
|
32
|
-
var value = useMemo(function () {
|
|
33
|
-
return {
|
|
34
|
-
container: container,
|
|
35
|
-
revision: revision,
|
|
36
|
-
setRevision: setRevision
|
|
37
|
-
};
|
|
38
|
-
}, [container, revision]);
|
|
39
|
-
useEffect(function () {
|
|
40
|
-
if (seed) {
|
|
41
|
-
applySharedSeed(container, seed);
|
|
42
|
-
}
|
|
43
|
-
}, [container]);
|
|
44
|
-
return createElement(IocReactContext.Provider, {
|
|
45
|
-
value: value
|
|
46
|
-
}, children);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export { IocProvider };
|
|
50
|
-
//# sourceMappingURL=ioc-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ioc-provider.js","sources":["../../../../../../../../src/wirestate-react/provision/ioc-provider.ts"],"sourcesContent":[null],"names":["IocProvider","_a","externalContainer","seed","children","_b","useState","revision","setRevision","ownedContainer","createIocContainer","container","WirestateError","ERROR_CODE_FAILED_TO_RESOLVE_QUERY_HANDLER","value","useMemo","useEffect","applySharedSeed","createElement","IocReactContext","Provider"],"mappings":";;;;;AAqBA;;;;;;;;AAQG;AACG,SAAUA,WAAWA,CAACC,EAAkE,EAAA;AAArD,EAAA,IAAAC,iBAAiB,eAAA;IAAEC,IAAI,GAAAF,EAAA,CAAAE,IAAA;IAAEC,QAAQ,GAAAH,EAAA,CAAAG,QAAA;AACxE;AACM,EAAA,IAAAC,EAAA,GAA0BC,QAAQ,CAAS,CAAC,CAAC;AAA5CC,IAAAA,QAAQ,GAAAF,EAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,WAAW,GAAAH,EAAA,CAAA,CAAA,CAAuB;AACnD;AACO,EAAA,IAAAI,cAAc,GAAIH,QAAQ,CAAmB;AAAM,IAAA,OAACJ,iBAAiB,GAAG,IAAI,GAAGQ,kBAAkB,EAAE;EAAhD,CAAiD,CAAC,CAAA,CAAA,CAAvF;AAErB,EAAA,IAAMC,SAAS,GAAGT,iBAAiB,KAAA,IAAA,IAAjBA,iBAAiB,KAAA,MAAA,GAAjBA,iBAAiB,GAAIO,cAAc;EAErD,IAAI,CAACE,SAAS,EAAE;AACd,IAAA,MAAM,IAAIC,cAAc,CACtBC,0CAA0C,EAC1C,qDAAqD,CACtD;AACH,EAAA;AAEA;AACA,EAAA,IAAMC,KAAK,GAAeC,OAAO,CAAa,YAAA;IAAM,OAAC;AAAEJ,MAAAA,SAAS,EAAAA,SAAA;AAAEJ,MAAAA,QAAQ,EAAAA,QAAA;AAAEC,MAAAA,WAAW,EAAAA;KAAE;AAArC,EAAA,CAAsC,EAAE,CAACG,SAAS,EAAEJ,QAAQ,CAAC,CAAC;AAElHS,EAAAA,SAAS,CAAC,YAAA;AACR,IAAA,IAAIb,IAAI,EAAE;AACRc,MAAAA,eAAe,CAACN,SAAS,EAAER,IAAI,CAAC;AAClC,IAAA;AACF,EAAA,CAAC,EAAE,CAACQ,SAAS,CAAC,CAAC;AAEf,EAAA,OAAOO,aAAa,CAACC,eAAe,CAACC,QAAQ,EAAE;AAAEN,IAAAA,KAAK,EAAAA;GAAE,EAAEV,QAAQ,CAAC;AACrE;;;;"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { useIocContext } from './use-ioc-context.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Returns the current container revision.
|
|
5
|
-
*
|
|
6
|
-
* @returns revision number
|
|
7
|
-
*/
|
|
8
|
-
function useContainerRevision() {
|
|
9
|
-
return useIocContext().revision;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export { useContainerRevision };
|
|
13
|
-
//# sourceMappingURL=use-container-revision.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-container-revision.js","sources":["../../../../../../../../src/wirestate-react/provision/use-container-revision.ts"],"sourcesContent":[null],"names":["useContainerRevision","useIocContext","revision"],"mappings":";;AAEA;;;;AAIG;SACaA,oBAAoBA,GAAA;AAClC,EAAA,OAAOC,aAAa,EAAE,CAACC,QAAQ;AACjC;;;;"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { useIocContext } from './use-ioc-context.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Returns the active IoC container.
|
|
5
|
-
*
|
|
6
|
-
* @returns active Inversify container
|
|
7
|
-
*/
|
|
8
|
-
function useContainer() {
|
|
9
|
-
return useIocContext().container;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export { useContainer };
|
|
13
|
-
//# sourceMappingURL=use-container.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-container.js","sources":["../../../../../../../../src/wirestate-react/provision/use-container.ts"],"sourcesContent":[null],"names":["useContainer","useIocContext","container"],"mappings":";;AAIA;;;;AAIG;SACaA,YAAYA,GAAA;AAC1B,EAAA,OAAOC,aAAa,EAAE,CAACC,SAAS;AAClC;;;;"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { useMemo } from 'react';
|
|
2
|
-
import { useIocContext } from './use-ioc-context.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Resolves a value from the container - constant or service.
|
|
6
|
-
* Automatically re-resolves if the container is reset or services are rebound.
|
|
7
|
-
*
|
|
8
|
-
* @param injectionId - injection identifier
|
|
9
|
-
* @returns resolved value
|
|
10
|
-
*/
|
|
11
|
-
function useInjection(injectionId) {
|
|
12
|
-
var _a = useIocContext(),
|
|
13
|
-
container = _a.container,
|
|
14
|
-
revision = _a.revision;
|
|
15
|
-
// Revision bump causes a container reset; force re-resolution to drop stale instances.
|
|
16
|
-
return useMemo(function () {
|
|
17
|
-
return container.get(injectionId);
|
|
18
|
-
}, [container, revision, injectionId]);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export { useInjection };
|
|
22
|
-
//# sourceMappingURL=use-injection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-injection.js","sources":["../../../../../../../../src/wirestate-react/provision/use-injection.ts"],"sourcesContent":[null],"names":["useInjection","injectionId","_a","useIocContext","container","revision","useMemo","get"],"mappings":";;;AAUA;;;;;;AAMG;AACG,SAAUA,YAAYA,CAAIC,WAAiC,EAAA;AACzD,EAAA,IAAAC,EAAA,GAA0BC,aAAa,EAAE;IAAvCC,SAAS,GAAAF,EAAA,CAAAE,SAAA;IAAEC,QAAQ,GAAAH,EAAA,CAAAG,QAAoB;AAE/C;EACA,OAAOC,OAAO,CAAC,YAAA;AAQb,IAAA,OAAOF,SAAS,CAACG,GAAG,CAAIN,WAAW,CAAC;EACtC,CAAC,EAAE,CAACG,SAAS,EAAEC,QAAQ,EAAEJ,WAAW,CAAC,CAAC;AACxC;;;;"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { WirestateError } from '@wirestate/core';
|
|
2
|
-
import { useContext } from 'react';
|
|
3
|
-
import { ERROR_CODE_INVALID_CONTEXT } from '../error/error-code.js';
|
|
4
|
-
import { IocReactContext } from './ioc-context.js';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Returns the full IoC context.
|
|
8
|
-
*
|
|
9
|
-
* @returns active IoC context
|
|
10
|
-
* @internal
|
|
11
|
-
*/
|
|
12
|
-
function useIocContext() {
|
|
13
|
-
var value = useContext(IocReactContext);
|
|
14
|
-
if (!value) {
|
|
15
|
-
throw new WirestateError(ERROR_CODE_INVALID_CONTEXT, "Trying to access IOC context from React subtree not wrapped in <IocProvider>.");
|
|
16
|
-
}
|
|
17
|
-
return value;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export { useIocContext };
|
|
21
|
-
//# sourceMappingURL=use-ioc-context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-ioc-context.js","sources":["../../../../../../../../src/wirestate-react/provision/use-ioc-context.ts"],"sourcesContent":[null],"names":["useIocContext","value","useContext","IocReactContext","WirestateError","ERROR_CODE_INVALID_CONTEXT"],"mappings":";;;;;AAOA;;;;;AAKG;SACaA,aAAaA,GAAA;AAC3B,EAAA,IAAMC,KAAK,GAAGC,UAAU,CAACC,eAAe,CAAC;EAEzC,IAAI,CAACF,KAAK,EAAE;AACV,IAAA,MAAM,IAAIG,cAAc,CACtBC,0BAA0B,EAC1B,+EAA+E,CAChF;AACH,EAAA;AAEA,EAAA,OAAOJ,KAAK;AACd;;;;"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { useMemo } from 'react';
|
|
2
|
-
import { useIocContext } from './use-ioc-context.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Resolves a value from the container if bound, returning null otherwise.
|
|
6
|
-
* Unlike {@link useInjection}, this hook does not throw when the token is not bound.
|
|
7
|
-
*
|
|
8
|
-
* @param injectionId - injection identifier
|
|
9
|
-
* @param onFallback - optional callback to handle cases when dependency was not resolved
|
|
10
|
-
* @returns resolved value, result of optional fallback handler or null
|
|
11
|
-
*/
|
|
12
|
-
function useOptionalInjection(injectionId, onFallback) {
|
|
13
|
-
var _a = useIocContext(),
|
|
14
|
-
container = _a.container,
|
|
15
|
-
revision = _a.revision;
|
|
16
|
-
// Revision bump forces a container reset; force re-resolution to drop stale instances.
|
|
17
|
-
return useMemo(function () {
|
|
18
|
-
if (container.isBound(injectionId)) {
|
|
19
|
-
return container.get(injectionId);
|
|
20
|
-
} else if (onFallback) {
|
|
21
|
-
return onFallback(container);
|
|
22
|
-
} else {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
}, [container, revision, injectionId]);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export { useOptionalInjection };
|
|
29
|
-
//# sourceMappingURL=use-optional-injection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-optional-injection.js","sources":["../../../../../../../../src/wirestate-react/provision/use-optional-injection.ts"],"sourcesContent":[null],"names":["useOptionalInjection","injectionId","onFallback","_a","useIocContext","container","revision","useMemo","isBound","get"],"mappings":";;;AAUA;;;;;;;AAOG;AACG,SAAUA,oBAAoBA,CAClCC,WAAiC,EACjCC,UAAwC,EAAA;AAElC,EAAA,IAAAC,EAAA,GAA0BC,aAAa,EAAE;IAAvCC,SAAS,GAAAF,EAAA,CAAAE,SAAA;IAAEC,QAAQ,GAAAH,EAAA,CAAAG,QAAoB;AAE/C;EACA,OAAOC,OAAO,CAAC,YAAA;AACb,IAAA,IAAIF,SAAS,CAACG,OAAO,CAACP,WAAW,CAAC,EAAE;AASlC,MAAA,OAAOI,SAAS,CAACI,GAAG,CAAIR,WAAW,CAAC;IACtC,CAAC,MAAM,IAAIC,UAAU,EAAE;MASrB,OAAOA,UAAU,CAACG,SAAS,CAAC;AAC9B,IAAA,CAAC,MAAM;AASL,MAAA,OAAO,IAAI;AACb,IAAA;EACF,CAAC,EAAE,CAACA,SAAS,EAAEC,QAAQ,EAAEL,WAAW,CAAC,CAAC;AACxC;;;;"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { mockContainer } from '@wirestate/core/test-utils';
|
|
2
|
-
import { createElement } from 'react';
|
|
3
|
-
import { IocProvider } from '../provision/ioc-provider.js';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Wraps a component with IocProvider for testing.
|
|
7
|
-
*
|
|
8
|
-
* @param children - components to wrap
|
|
9
|
-
* @param container - optional custom container
|
|
10
|
-
* @param seed - optional shared seed object
|
|
11
|
-
* @returns wrapped components
|
|
12
|
-
*/
|
|
13
|
-
function withIocProvider(children, container, seed) {
|
|
14
|
-
if (container === void 0) {
|
|
15
|
-
container = mockContainer();
|
|
16
|
-
}
|
|
17
|
-
return createElement(IocProvider, {
|
|
18
|
-
container: container,
|
|
19
|
-
seed: seed
|
|
20
|
-
}, children);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export { withIocProvider };
|
|
24
|
-
//# sourceMappingURL=with-ioc-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"with-ioc-provider.js","sources":["../../../../../../../../src/wirestate-react/test-utils/with-ioc-provider.ts"],"sourcesContent":[null],"names":["withIocProvider","children","container","seed","mockContainer","createElement","IocProvider"],"mappings":";;;;AAMA;;;;;;;AAOG;SACaA,eAAeA,CAC7BC,QAAmB,EACnBC,SAAsC,EACtCC,IAA8B,EAAA;AAD9B,EAAA,IAAAD,SAAA,KAAA,MAAA,EAAA;IAAAA,SAAA,GAAuBE,aAAa,EAAE;AAAA,EAAA;EAGtC,OAAOC,aAAa,CAACC,WAAW,EAAE;AAAEJ,IAAAA,SAAS,EAAAA,SAAA;AAAEC,IAAAA,IAAI,EAAAA;GAAE,EAAEF,QAAQ,CAAC;AAClE;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{getEntryToken as e,WirestateError as r,applySeeds as n,bindEntry as t,unapplySeeds as i}from"@wirestate/core";import{useContext as o,useState as a,useMemo as c,useEffect as s}from"react";import{ERROR_CODE_VALIDATION_ERROR as d,ERROR_CODE_INVALID_CONTEXT as v}from"../error/error-code.js";import{IocReactContext as f}from"./ioc-context.js";function u(u,l){void 0===l&&(l={});var m=l.activate;if(m&&m.length>0)for(var g=u.map(e),h=0,p=m;h<p.length;h++){var b=p[h];if(!g.includes(b))throw new r(d,"createInjectablesProvider: '".concat(String(b),"' is listed in 'activate' but was not provided in 'entries'."))}function w(d){var l=o(f);if(!l)throw new r(v,"<InjectablesProvider> must be rendered inside an <IocProvider> React subtree.");var g=a((function(){return d}))[0];return c((function(){g.seeds&&n(l.container,g.seeds);for(var r=0,i=u;r<i.length;r++){var o=i[r];l.container.isBound(e(o))||t(l.container,o)}if(m)for(var a=0,c=m;a<c.length;a++){var s=c[a];l.container.get(s)}}),u),s((function(){var r=!1;g.seeds&&n(l.container,g.seeds);for(var o=0,a=u;o<a.length;o++){var c=a[o];l.container.isBound(e(c))||(r=!0,t(l.container,c))}if(m)for(var s=0,d=m;s<d.length;s++){var v=d[s];l.container.get(v)}return r&&l.setRevision((function(e){return e+1})),function(){for(var r=0,n=u;r<n.length;r++){var t=n[r],o=e(t);l.container.isBound(o)&&l.container.unbind(o)}g.seeds&&i(l.container,g.seeds)}}),u),d.children}return w.displayName="InjectablesProvider",w}export{u as createInjectablesProvider};//# sourceMappingURL=create-injectables-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-injectables-provider.js","sources":["../../../../../../../../src/wirestate-react/provision/create-injectables-provider.ts"],"sourcesContent":[null],"names":["getEntryToken","WirestateError","applySeeds","bindEntry","unapplySeeds","useContext","useState","useMemo","useEffect","ERROR_CODE_VALIDATION_ERROR","ERROR_CODE_INVALID_CONTEXT","IocReactContext","createInjectablesProvider","entries","options","activate","length","entryTokens","map","_i","activate_1","eager","includes","concat","String","InjectablesProviderComponent","props","iocContext","initialPropsSnapshot","seeds","container","entries_1","entry","isBound","_a","activate_2","get","didRebind","entries_2","activate_3","setRevision","r","entries_3","token","unbind","children","displayName"],"mappings":"wBAmDAA,oBAAAC,gBAAAC,eAAAC,kBAAAC,MAAA,uCAAAC,cAAAC,aAAAC,eAAAC,MAAA,8CAAAC,gCAAAC,MAAA,mDAAAC,MAAA,mBAOM,SAAUC,EACdC,EACAC,QAAA,IAAAA,IAAAA,EAAA,CAAA,GAIQ,IAAAC,EAAaD,EAAOC,SAE5B,GAAIA,GAAYA,EAASC,OAAS,EAGhC,IAFA,IAAMC,EAAgDJ,EAAQK,IAAIlB,GAE9CmB,EAAA,EAAAC,EAAAL,EAAAI,WAAAA,IAAU,CAAzB,IAAME,EAAKD,EAAAD,GACd,IAAKF,EAAYK,SAASD,GACxB,MAAM,IAAIpB,EACRQ,EACA,+BAAAc,OAA+BC,OAAOH,GAAM,gEAGlD,CAGF,SAASI,EAA6BC,GACpC,IAAMC,EAAmCtB,EAAWM,GAEpD,IAAKgB,EACH,MAAM,IAAI1B,EACRS,EACA,iFAMG,IAAAkB,EAAwBtB,GAAmC,WAAM,OAAAoB,CAAA,IAAM,GAqF9E,OAnFAnB,GAAQ,WAUFqB,EAAqBC,OACvB3B,EAAWyB,EAAWG,UAAWF,EAAqBC,OAGxD,IAAoB,IAAAV,EAAA,EAAAY,EAAAlB,EAAAM,WAAAA,IAAS,CAAxB,IAAMa,EAAKD,EAAAZ,GACTQ,EAAWG,UAAUG,QAAQjC,EAAcgC,KAC9C7B,EAAUwB,EAAWG,UAAWE,EAEpC,CAEA,GAAIjB,EACF,IAAoB,IAAAmB,EAAA,EAAAC,EAAApB,EAAAmB,WAAAA,IAAU,CAAzB,IAAMb,EAAKc,EAAAD,GACdP,EAAWG,UAAUM,IAAIf,EAC3B,CAEJ,GAAGR,GAEHL,GAAU,WAUR,IAAI6B,GAAqB,EAErBT,EAAqBC,OACvB3B,EAAWyB,EAAWG,UAAWF,EAAqBC,OAGxD,IAAoB,IAAAV,EAAA,EAAAmB,EAAAzB,EAAAM,WAAAA,IAAS,CAAxB,IAAMa,EAAKM,EAAAnB,GACTQ,EAAWG,UAAUG,QAAQjC,EAAcgC,MAC9CK,GAAY,EACZlC,EAAUwB,EAAWG,UAAWE,GAEpC,CAEA,GAAIjB,EACF,IAAoB,IAAAmB,EAAA,EAAAK,EAAAxB,EAAAmB,WAAAA,IAAU,CAAzB,IAAMb,EAAKkB,EAAAL,GACdP,EAAWG,UAAUM,IAAIf,EAC3B,CAQF,OAJIgB,GACFV,EAAWa,aAAY,SAACC,GAAM,OAAAA,EAAI,CAAJ,IAGzB,WAOL,IAAoB,IAAAtB,EAAA,EAAAuB,EAAA7B,EAAAM,WAAAA,IAAS,CAAxB,IAAMa,EAAKU,EAAAvB,GACRwB,EAA2B3C,EAAcgC,GAE3CL,EAAWG,UAAUG,QAAQU,IAC/BhB,EAAWG,UAAUc,OAAOD,EAEhC,CAGIf,EAAqBC,OACvBzB,EAAauB,EAAWG,UAAWF,EAAqBC,MAE5D,CACF,GAAGhB,GAEIa,EAAMmB,QACf,CAMA,OAJApB,EAA6BqB,YAAc,sBAIpCrB,CACT,QAAAb"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createContext as o}from"react";var r=o(null);r.displayName="IocContext";export{r as IocReactContext};//# sourceMappingURL=ioc-context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ioc-context.js","sources":["../../../../../../../../src/wirestate-react/provision/ioc-context.ts"],"sourcesContent":[null],"names":["createContext","IocReactContext","displayName"],"mappings":"wBAuBAA,MAAA,YAIaC,EAAiDD,EAAoC,MAElGC,EAAgBC,YAAc,oBAAYD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createIocContainer as r,WirestateError as o,applySharedSeed as e}from"@wirestate/core";import{useState as n,useMemo as t,useEffect as i,createElement as c}from"react";import{ERROR_CODE_FAILED_TO_RESOLVE_QUERY_HANDLER as a}from"../error/error-code.js";import{IocReactContext as f}from"./ioc-context.js";function u(u){var s=u.container,l=u.seed,m=u.children,v=n(1),d=v[0],p=v[1],w=n((function(){return s?null:r()}))[0],h=null!=s?s:w;if(!h)throw new o(a,"IocProvider failed to resolve a container instance.");var j=t((function(){return{container:h,revision:d,setRevision:p}}),[h,d]);return i((function(){l&&e(h,l)}),[h]),c(f.Provider,{value:j},m)}export{u as IocProvider};//# sourceMappingURL=ioc-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ioc-provider.js","sources":["../../../../../../../../src/wirestate-react/provision/ioc-provider.ts"],"sourcesContent":[null],"names":["createIocContainer","WirestateError","applySharedSeed","useState","useMemo","useEffect","createElement","ERROR_CODE_FAILED_TO_RESOLVE_QUERY_HANDLER","IocReactContext","IocProvider","_a","externalContainer","seed","children","_b","revision","setRevision","ownedContainer","container","value","Provider"],"mappings":"6BAqBAA,oBAAAC,qBAAAC,MAAA,qCAAAC,aAAAC,eAAAC,mBAAAC,MAAA,6DAAAC,MAAA,mDAAAC,MAAA,mBASM,SAAUC,EAAYC,GAAa,IAAAC,cAAmBC,EAAIF,EAAAE,KAAEC,EAAQH,EAAAG,SAElEC,EAA0BX,EAAiB,GAA1CY,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAErBG,EAAkBd,GAA2B,WAAM,OAACQ,EAAoB,KAAOX,GAA5B,IAAkD,GAEtGkB,EAAYP,QAAAA,EAAqBM,EAEvC,IAAKC,EACH,MAAM,IAAIjB,EACRM,EACA,uDAKJ,IAAMY,EAAoBf,GAAoB,WAAM,MAAC,CAAEc,UAASA,EAAEH,SAAQA,EAAEC,YAAWA,EAAnC,GAAwC,CAACE,EAAWH,IAQxG,OANAV,GAAU,WACJO,GACFV,EAAgBgB,EAAWN,EAE/B,GAAG,CAACM,IAEGZ,EAAcE,EAAgBY,SAAU,CAAED,MAAKA,GAAIN,EAC5D,QAAAJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{useIocContext as o}from"./use-ioc-context.js";function r(){return o().revision}export{r as useContainerRevision};//# sourceMappingURL=use-container-revision.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-container-revision.js","sources":["../../../../../../../../src/wirestate-react/provision/use-container-revision.ts"],"sourcesContent":[null],"names":["useIocContext","useContainerRevision","revision"],"mappings":"wBAEAA,MAAA,gCAKgBC,IACd,OAAOD,IAAgBE,QACzB,QAAAD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{useIocContext as o}from"./use-ioc-context.js";function t(){return o().container}export{t as useContainer};//# sourceMappingURL=use-container.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-container.js","sources":["../../../../../../../../src/wirestate-react/provision/use-container.ts"],"sourcesContent":[null],"names":["useIocContext","useContainer","container"],"mappings":"wBAIAA,MAAA,gCAKgBC,IACd,OAAOD,IAAgBE,SACzB,QAAAD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{useMemo as r}from"react";import{useIocContext as t}from"./use-ioc-context.js";function o(o){var n=t(),e=n.container,i=n.revision;return r((function(){return e.get(o)}),[e,i,o])}export{o as useInjection};//# sourceMappingURL=use-injection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-injection.js","sources":["../../../../../../../../src/wirestate-react/provision/use-injection.ts"],"sourcesContent":[null],"names":["useMemo","useIocContext","useInjection","injectionId","_a","container","revision","get"],"mappings":"kBAUAA,MAAA,gCAAAC,MAAA,uBAOM,SAAUC,EAAgBC,GACxB,IAAAC,EAA0BH,IAAxBI,EAASD,EAAAC,UAAEC,EAAQF,EAAAE,SAG3B,OAAON,GAAQ,WAQb,OAAOK,EAAUE,IAAOJ,EAC1B,GAAG,CAACE,EAAWC,EAAUH,GAC3B,QAAAD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{WirestateError as r}from"@wirestate/core";import{useContext as o}from"react";import{ERROR_CODE_INVALID_CONTEXT as t}from"../error/error-code.js";import{IocReactContext as e}from"./ioc-context.js";function c(){var c=o(e);if(!c)throw new r(t,"Trying to access IOC context from React subtree not wrapped in <IocProvider>.");return c}export{c as useIocContext};//# sourceMappingURL=use-ioc-context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-ioc-context.js","sources":["../../../../../../../../src/wirestate-react/provision/use-ioc-context.ts"],"sourcesContent":[null],"names":["WirestateError","useContext","ERROR_CODE_INVALID_CONTEXT","IocReactContext","useIocContext","value"],"mappings":"yBAOAA,MAAA,uCAAAC,MAAA,6CAAAC,MAAA,mDAAAC,MAAA,4BAMgBC,IACd,IAAMC,EAAQJ,EAAWE,GAEzB,IAAKE,EACH,MAAM,IAAIL,EACRE,EACA,iFAIJ,OAAOG,CACT,QAAAD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{useMemo as r}from"react";import{useIocContext as n}from"./use-ioc-context.js";function o(o,t){var e=n(),i=e.container,u=e.revision;return r((function(){return i.isBound(o)?i.get(o):t?t(i):null}),[i,u,o])}export{o as useOptionalInjection};//# sourceMappingURL=use-optional-injection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-optional-injection.js","sources":["../../../../../../../../src/wirestate-react/provision/use-optional-injection.ts"],"sourcesContent":[null],"names":["useMemo","useIocContext","useOptionalInjection","injectionId","onFallback","_a","container","revision","isBound","get"],"mappings":"kBAUAA,MAAA,gCAAAC,MAAA,uBAQM,SAAUC,EACdC,EACAC,GAEM,IAAAC,EAA0BJ,IAAxBK,EAASD,EAAAC,UAAEC,EAAQF,EAAAE,SAG3B,OAAOP,GAAQ,WACb,OAAIM,EAAUE,QAAQL,GASbG,EAAUG,IAAON,GACfC,EASFA,EAAWE,GAUX,IAEX,GAAG,CAACA,EAAWC,EAAUJ,GAC3B,QAAAD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{mockContainer as r}from"@wirestate/core/test-utils";import{createElement as o}from"react";import{IocProvider as t}from"../provision/ioc-provider.js";function i(i,e,m){return void 0===e&&(e=r()),o(t,{container:e,seed:m},i)}export{i as withIocProvider};//# sourceMappingURL=with-ioc-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"with-ioc-provider.js","sources":["../../../../../../../../src/wirestate-react/test-utils/with-ioc-provider.ts"],"sourcesContent":[null],"names":["mockContainer","createElement","IocProvider","withIocProvider","children","container","seed"],"mappings":"wBAMAA,MAAA,qDAAAC,MAAA,8BAAAC,MAAA,wCAQgBC,EACdC,EACAC,EACAC,GAEA,YAHA,IAAAD,IAAAA,EAAuBL,KAGhBC,EAAcC,EAAa,CAAEG,UAASA,EAAEC,KAAIA,GAAIF,EACzD,QAAAD"}
|