@modern-js/runtime 2.0.0-beta.0 → 2.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +77 -0
- package/dist/js/modern/cli/index.js +3 -5
- package/dist/js/modern/core/app-config.js +2 -1
- package/dist/js/modern/core/compatible.js +63 -46
- package/dist/js/modern/core/index.js +3 -2
- package/dist/js/modern/core/loader/loaderManager.js +12 -34
- package/dist/js/modern/core/loader/useLoader.js +8 -26
- package/dist/js/modern/core/plugin.js +6 -28
- package/dist/js/modern/document/Body.js +17 -0
- package/dist/js/modern/document/DocumentContext.js +6 -0
- package/dist/js/modern/document/DocumentStructrueContext.js +7 -0
- package/dist/js/modern/document/Head.js +24 -0
- package/dist/js/modern/document/Html.js +92 -0
- package/dist/js/modern/document/Root.js +31 -0
- package/dist/js/modern/document/Scripts.js +10 -0
- package/dist/js/modern/document/cli/index.js +130 -0
- package/dist/js/modern/document/constants.js +19 -0
- package/dist/js/modern/document/index.js +8 -0
- package/dist/js/modern/index.js +1 -1
- package/dist/js/modern/router/cli/index.js +0 -16
- package/dist/js/modern/router/runtime/plugin.js +0 -9
- package/dist/js/modern/router/runtime/plugin.node.js +18 -24
- package/dist/js/modern/router/runtime/root/index.js +19 -0
- package/dist/js/modern/router/runtime/root/load.js +61 -0
- package/dist/js/modern/router/runtime/utils.js +16 -35
- package/dist/js/modern/router/runtime/withRouter.js +1 -3
- package/dist/js/modern/ssr/cli/index.js +2 -23
- package/dist/js/modern/ssr/index.js +23 -34
- package/dist/js/modern/ssr/index.node.js +0 -13
- package/dist/js/modern/ssr/prefetch.js +0 -7
- package/dist/js/modern/ssr/react/prerender/index.js +2 -23
- package/dist/js/modern/ssr/react/prerender/util.js +2 -17
- package/dist/js/modern/ssr/react/withCallback/index.js +0 -1
- package/dist/js/modern/ssr/serverRender/helmet.js +12 -20
- package/dist/js/modern/ssr/serverRender/index.js +1 -2
- package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -5
- package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +45 -11
- package/dist/js/modern/ssr/serverRender/renderToStream/index.js +6 -39
- package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +0 -2
- package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +26 -15
- package/dist/js/modern/ssr/serverRender/renderToStream/template.js +14 -18
- package/dist/js/modern/ssr/serverRender/renderToString/entry.js +2 -34
- package/dist/js/modern/ssr/serverRender/renderToString/index.js +0 -2
- package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +0 -10
- package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +0 -2
- package/dist/js/modern/ssr/serverRender/renderToString/template.js +0 -15
- package/dist/js/modern/ssr/serverRender/renderToString/type.js +0 -1
- package/dist/js/modern/ssr/serverRender/utils.js +2 -6
- package/dist/js/modern/ssr/utils.js +0 -11
- package/dist/js/modern/state/cli/index.js +0 -10
- package/dist/js/modern/state/runtime/plugin.js +1 -14
- package/dist/js/node/cli/index.js +3 -13
- package/dist/js/node/common.js +0 -2
- package/dist/js/node/core/app-config.js +2 -5
- package/dist/js/node/core/compatible.js +63 -64
- package/dist/js/node/core/index.js +0 -16
- package/dist/js/node/core/loader/index.js +0 -2
- package/dist/js/node/core/loader/loaderManager.js +12 -37
- package/dist/js/node/core/loader/useLoader.js +8 -31
- package/dist/js/node/core/plugin.js +5 -34
- package/dist/js/node/document/Body.js +26 -0
- package/dist/js/node/document/DocumentContext.js +14 -0
- package/dist/js/node/document/DocumentStructrueContext.js +15 -0
- package/dist/js/node/document/Head.js +33 -0
- package/dist/js/node/document/Html.js +98 -0
- package/dist/js/node/document/Root.js +41 -0
- package/dist/js/node/document/Scripts.js +17 -0
- package/dist/js/node/document/cli/index.js +140 -0
- package/dist/js/node/document/constants.js +36 -0
- package/dist/js/node/document/index.js +93 -0
- package/dist/js/node/exports/head.js +0 -5
- package/dist/js/node/exports/loadable.js +0 -5
- package/dist/js/node/exports/server.js +0 -2
- package/dist/js/node/exports/styled.js +0 -5
- package/dist/js/node/index.js +0 -8
- package/dist/js/node/router/cli/index.js +0 -20
- package/dist/js/node/router/index.js +0 -4
- package/dist/js/node/router/runtime/DefaultNotFound.js +1 -5
- package/dist/js/node/router/runtime/index.js +0 -5
- package/dist/js/node/router/runtime/plugin.js +0 -17
- package/dist/js/node/router/runtime/plugin.node.js +16 -38
- package/dist/js/node/router/runtime/root/index.js +26 -0
- package/dist/js/node/router/runtime/root/load.js +69 -0
- package/dist/js/node/router/runtime/utils.js +16 -44
- package/dist/js/node/router/runtime/withRouter.js +0 -9
- package/dist/js/node/runtime-context.js +0 -2
- package/dist/js/node/ssr/cli/index.js +2 -26
- package/dist/js/node/ssr/index.js +23 -45
- package/dist/js/node/ssr/index.node.js +0 -23
- package/dist/js/node/ssr/prefetch.js +0 -11
- package/dist/js/node/ssr/react/index.js +0 -2
- package/dist/js/node/ssr/react/nossr/index.js +0 -6
- package/dist/js/node/ssr/react/prerender/index.js +2 -30
- package/dist/js/node/ssr/react/prerender/util.js +2 -25
- package/dist/js/node/ssr/react/withCallback/index.js +1 -4
- package/dist/js/node/ssr/serverRender/helmet.js +13 -20
- package/dist/js/node/ssr/serverRender/index.js +1 -4
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -9
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -1
- package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +43 -15
- package/dist/js/node/ssr/serverRender/renderToStream/index.js +6 -48
- package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +0 -4
- package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +26 -17
- package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +0 -2
- package/dist/js/node/ssr/serverRender/renderToStream/template.js +16 -23
- package/dist/js/node/ssr/serverRender/renderToString/entry.js +2 -51
- package/dist/js/node/ssr/serverRender/renderToString/index.js +0 -10
- package/dist/js/node/ssr/serverRender/renderToString/loadable.js +0 -14
- package/dist/js/node/ssr/serverRender/renderToString/reduce.js +0 -3
- package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +0 -3
- package/dist/js/node/ssr/serverRender/renderToString/template.js +0 -18
- package/dist/js/node/ssr/serverRender/renderToString/type.js +0 -1
- package/dist/js/node/ssr/serverRender/types.js +0 -1
- package/dist/js/node/ssr/serverRender/utils.js +2 -8
- package/dist/js/node/ssr/utils.js +0 -20
- package/dist/js/node/state/cli/index.js +0 -15
- package/dist/js/node/state/index.js +0 -4
- package/dist/js/node/state/plugins.js +0 -11
- package/dist/js/node/state/runtime/index.js +0 -7
- package/dist/js/node/state/runtime/plugin.js +1 -25
- package/dist/js/treeshaking/cli/index.js +3 -3
- package/dist/js/treeshaking/core/app-config.js +2 -1
- package/dist/js/treeshaking/core/compatible.js +66 -63
- package/dist/js/treeshaking/core/index.js +3 -2
- package/dist/js/treeshaking/core/loader/loaderManager.js +19 -51
- package/dist/js/treeshaking/core/loader/useLoader.js +11 -28
- package/dist/js/treeshaking/core/plugin.js +6 -51
- package/dist/js/treeshaking/document/Body.js +14 -0
- package/dist/js/treeshaking/document/DocumentContext.js +6 -0
- package/dist/js/treeshaking/document/DocumentStructrueContext.js +7 -0
- package/dist/js/treeshaking/document/Head.js +21 -0
- package/dist/js/treeshaking/document/Html.js +104 -0
- package/dist/js/treeshaking/document/Root.js +24 -0
- package/dist/js/treeshaking/document/Scripts.js +10 -0
- package/dist/js/treeshaking/document/cli/index.js +170 -0
- package/dist/js/treeshaking/document/constants.js +16 -0
- package/dist/js/treeshaking/document/index.js +8 -0
- package/dist/js/treeshaking/index.js +1 -1
- package/dist/js/treeshaking/router/cli/index.js +6 -18
- package/dist/js/treeshaking/router/runtime/plugin.js +5 -13
- package/dist/js/treeshaking/router/runtime/plugin.node.js +23 -36
- package/dist/js/treeshaking/router/runtime/root/index.js +17 -0
- package/dist/js/treeshaking/router/runtime/root/load.js +102 -0
- package/dist/js/treeshaking/router/runtime/utils.js +21 -39
- package/dist/js/treeshaking/router/runtime/withRouter.js +1 -0
- package/dist/js/treeshaking/ssr/cli/index.js +9 -31
- package/dist/js/treeshaking/ssr/index.js +26 -40
- package/dist/js/treeshaking/ssr/index.node.js +12 -29
- package/dist/js/treeshaking/ssr/prefetch.js +0 -13
- package/dist/js/treeshaking/ssr/react/nossr/index.js +3 -4
- package/dist/js/treeshaking/ssr/react/prerender/index.js +2 -21
- package/dist/js/treeshaking/ssr/react/prerender/util.js +3 -20
- package/dist/js/treeshaking/ssr/react/withCallback/index.js +1 -2
- package/dist/js/treeshaking/ssr/serverRender/helmet.js +12 -11
- package/dist/js/treeshaking/ssr/serverRender/index.js +1 -9
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -6
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +46 -15
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +9 -79
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +3 -5
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +46 -35
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +17 -24
- package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +20 -73
- package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +2 -6
- package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +5 -16
- package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +0 -2
- package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +2 -18
- package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +0 -1
- package/dist/js/treeshaking/ssr/serverRender/utils.js +5 -10
- package/dist/js/treeshaking/ssr/utils.js +8 -17
- package/dist/js/treeshaking/state/cli/index.js +3 -10
- package/dist/js/treeshaking/state/runtime/plugin.js +2 -10
- package/dist/types/cli/index.d.ts +0 -2
- package/dist/types/core/compatible.d.ts +5 -5
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/core/loader/loaderManager.d.ts +0 -1
- package/dist/types/core/loader/useLoader.d.ts +0 -5
- package/dist/types/core/plugin.d.ts +1 -13
- package/dist/types/document/Body.d.ts +4 -0
- package/dist/types/document/DocumentContext.d.ts +13 -0
- package/dist/types/document/DocumentStructrueContext.d.ts +10 -0
- package/dist/types/document/Head.d.ts +5 -0
- package/dist/types/document/Html.d.ts +4 -0
- package/dist/types/document/Root.d.ts +8 -0
- package/dist/types/document/Scripts.d.ts +2 -0
- package/dist/types/document/cli/index.d.ts +3 -0
- package/dist/types/document/constants.d.ts +14 -0
- package/dist/types/document/index.d.ts +8 -0
- package/dist/types/exports/server.d.ts +3 -3
- package/dist/types/index.d.ts +1 -1
- package/dist/types/router/cli/index.d.ts +0 -2
- package/dist/types/router/runtime/root/index.d.ts +8 -0
- package/dist/types/router/runtime/root/load.d.ts +22 -0
- package/dist/types/router/runtime/types.d.ts +0 -2
- package/dist/types/runtime-context.d.ts +1 -0
- package/dist/types/ssr/cli/index.d.ts +0 -2
- package/dist/types/ssr/prefetch.d.ts +2 -2
- package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +3 -2
- package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +2 -1
- package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +3 -3
- package/dist/types/ssr/serverRender/renderToStream/template.d.ts +2 -2
- package/dist/types/ssr/serverRender/types.d.ts +1 -4
- package/dist/types/state/cli/index.d.ts +0 -2
- package/dist/types/state/types.d.ts +0 -1
- package/package.json +19 -11
|
@@ -4,65 +4,43 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useRuntimeContext = exports.createApp = exports.bootstrap = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
11
|
-
|
|
12
9
|
var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));
|
|
13
|
-
|
|
14
10
|
var _runtimeContext = require("../runtime-context");
|
|
15
|
-
|
|
16
11
|
var _plugin = require("./plugin");
|
|
17
|
-
|
|
18
12
|
var _loaderManager = require("./loader/loaderManager");
|
|
19
|
-
|
|
20
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
|
-
|
|
22
14
|
const _excluded = ["context"];
|
|
23
|
-
|
|
24
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
-
|
|
26
16
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
|
-
|
|
28
17
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
|
-
|
|
30
18
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
31
|
-
|
|
32
19
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
33
|
-
|
|
34
20
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
35
|
-
|
|
36
21
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
37
|
-
|
|
38
22
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
39
|
-
|
|
40
23
|
const IS_REACT18 = process.env.IS_REACT18 === 'true';
|
|
41
|
-
|
|
24
|
+
const ROUTE_MANIFEST = `_MODERNJS_ROUTE_MANIFEST`;
|
|
42
25
|
function isClientArgs(id) {
|
|
43
26
|
return typeof id === 'string' || typeof HTMLElement !== 'undefined' && id instanceof HTMLElement;
|
|
44
27
|
}
|
|
45
|
-
|
|
46
28
|
const runnerMap = new WeakMap();
|
|
47
|
-
|
|
48
29
|
const getInitialContext = runner => ({
|
|
49
30
|
loaderManager: (0, _loaderManager.createLoaderManager)({}),
|
|
50
31
|
runner,
|
|
51
|
-
isBrowser: true
|
|
32
|
+
isBrowser: true,
|
|
33
|
+
routeManifest: typeof window !== 'undefined' && window[ROUTE_MANIFEST]
|
|
52
34
|
});
|
|
53
|
-
|
|
54
35
|
const createApp = ({
|
|
55
36
|
plugins
|
|
56
37
|
}) => {
|
|
57
38
|
const appRuntime = _plugin.runtime.clone();
|
|
58
|
-
|
|
59
39
|
appRuntime.usePlugin(...plugins);
|
|
60
40
|
return App => {
|
|
61
41
|
const runner = appRuntime.init();
|
|
62
|
-
|
|
63
42
|
const WrapperComponent = props => {
|
|
64
43
|
const element = /*#__PURE__*/_react.default.createElement(App || _react.default.Fragment, _objectSpread({}, props), props.children);
|
|
65
|
-
|
|
66
44
|
const context = (0, _react.useContext)(_runtimeContext.RuntimeReactContext);
|
|
67
45
|
return runner.provide({
|
|
68
46
|
element,
|
|
@@ -74,11 +52,9 @@ const createApp = ({
|
|
|
74
52
|
}) => element
|
|
75
53
|
});
|
|
76
54
|
};
|
|
77
|
-
|
|
78
55
|
if (App) {
|
|
79
56
|
(0, _hoistNonReactStatics.default)(WrapperComponent, App);
|
|
80
57
|
}
|
|
81
|
-
|
|
82
58
|
const HOCApp = runner.hoc({
|
|
83
59
|
App: WrapperComponent
|
|
84
60
|
}, {
|
|
@@ -87,14 +63,13 @@ const createApp = ({
|
|
|
87
63
|
}) => {
|
|
88
64
|
const WrapComponent = _ref => {
|
|
89
65
|
var _contextValue;
|
|
90
|
-
|
|
91
66
|
let {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
let contextValue = context; // We should construct the context, when root component is not passed into `bootstrap`.
|
|
67
|
+
context
|
|
68
|
+
} = _ref,
|
|
69
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
70
|
+
let contextValue = context;
|
|
97
71
|
|
|
72
|
+
// We should construct the context, when root component is not passed into `bootstrap`.
|
|
98
73
|
if (!((_contextValue = contextValue) !== null && _contextValue !== void 0 && _contextValue.runner)) {
|
|
99
74
|
contextValue = getInitialContext(runner);
|
|
100
75
|
runner.init({
|
|
@@ -104,18 +79,15 @@ const createApp = ({
|
|
|
104
79
|
context: context1
|
|
105
80
|
}) => {
|
|
106
81
|
var _App$init;
|
|
107
|
-
|
|
108
82
|
return App === null || App === void 0 ? void 0 : (_App$init = App.init) === null || _App$init === void 0 ? void 0 : _App$init.call(App, context1);
|
|
109
83
|
}
|
|
110
84
|
});
|
|
111
85
|
}
|
|
112
|
-
|
|
113
86
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_runtimeContext.RuntimeReactContext.Provider, {
|
|
114
87
|
value: contextValue,
|
|
115
88
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(App, _objectSpread({}, props))
|
|
116
89
|
});
|
|
117
90
|
};
|
|
118
|
-
|
|
119
91
|
return (0, _hoistNonReactStatics.default)(WrapComponent, App);
|
|
120
92
|
}
|
|
121
93
|
});
|
|
@@ -123,9 +95,7 @@ const createApp = ({
|
|
|
123
95
|
return HOCApp;
|
|
124
96
|
};
|
|
125
97
|
};
|
|
126
|
-
|
|
127
98
|
exports.createApp = createApp;
|
|
128
|
-
|
|
129
99
|
const bootstrap = async (BootApp,
|
|
130
100
|
/**
|
|
131
101
|
* When csr, id is root id.
|
|
@@ -135,19 +105,20 @@ id,
|
|
|
135
105
|
/**
|
|
136
106
|
* root.render need use root to run function
|
|
137
107
|
*/
|
|
138
|
-
root, ReactDOM = _reactDom.default
|
|
108
|
+
root, ReactDOM = _reactDom.default
|
|
109
|
+
// eslint-disable-next-line consistent-return
|
|
110
|
+
) => {
|
|
139
111
|
let App = BootApp;
|
|
140
|
-
let runner = runnerMap.get(App);
|
|
112
|
+
let runner = runnerMap.get(App);
|
|
141
113
|
|
|
114
|
+
// ensure Component used is created by `createApp`
|
|
142
115
|
if (!runner) {
|
|
143
116
|
App = createApp({
|
|
144
117
|
plugins: []
|
|
145
118
|
})(App);
|
|
146
119
|
runner = runnerMap.get(App);
|
|
147
120
|
}
|
|
148
|
-
|
|
149
121
|
const context = getInitialContext(runner);
|
|
150
|
-
|
|
151
122
|
const runInit = _context => runner.init({
|
|
152
123
|
context: _context
|
|
153
124
|
}, {
|
|
@@ -155,33 +126,27 @@ root, ReactDOM = _reactDom.default) => {
|
|
|
155
126
|
context: context1
|
|
156
127
|
}) => {
|
|
157
128
|
var _App, _App$init2;
|
|
158
|
-
|
|
159
129
|
return (_App = App) === null || _App === void 0 ? void 0 : (_App$init2 = _App.init) === null || _App$init2 === void 0 ? void 0 : _App$init2.call(_App, context1);
|
|
160
130
|
}
|
|
161
|
-
});
|
|
162
|
-
|
|
131
|
+
});
|
|
163
132
|
|
|
133
|
+
// don't mount the App, let user in charge of it.
|
|
164
134
|
if (!id) {
|
|
165
135
|
return /*#__PURE__*/_react.default.createElement(App, {
|
|
166
136
|
context
|
|
167
137
|
});
|
|
168
138
|
}
|
|
169
|
-
|
|
170
139
|
const isBrowser = typeof window !== 'undefined' && window.name !== 'nodejs';
|
|
171
|
-
|
|
172
140
|
if (isBrowser) {
|
|
173
141
|
if (isClientArgs(id)) {
|
|
174
142
|
var _ssrData$data, _ssrData$data2;
|
|
175
|
-
|
|
176
143
|
const ssrData = window._SSR_DATA;
|
|
177
144
|
const loadersData = (ssrData === null || ssrData === void 0 ? void 0 : (_ssrData$data = ssrData.data) === null || _ssrData$data === void 0 ? void 0 : _ssrData$data.loadersData) || {};
|
|
178
145
|
const initialLoadersState = Object.keys(loadersData).reduce((res, key) => {
|
|
179
146
|
const loaderData = loadersData[key];
|
|
180
|
-
|
|
181
147
|
if (loaderData.loading !== false) {
|
|
182
148
|
return res;
|
|
183
149
|
}
|
|
184
|
-
|
|
185
150
|
res[key] = loaderData;
|
|
186
151
|
return res;
|
|
187
152
|
}, {});
|
|
@@ -194,29 +159,41 @@ root, ReactDOM = _reactDom.default) => {
|
|
|
194
159
|
} : {}));
|
|
195
160
|
context.initialData = ssrData === null || ssrData === void 0 ? void 0 : (_ssrData$data2 = ssrData.data) === null || _ssrData$data2 === void 0 ? void 0 : _ssrData$data2.initialData;
|
|
196
161
|
const initialData = await runInit(context);
|
|
197
|
-
|
|
198
162
|
if (initialData) {
|
|
199
163
|
context.initialData = initialData;
|
|
200
164
|
}
|
|
165
|
+
const rootElement = typeof id !== 'string' ? id : document.getElementById(id || 'root');
|
|
201
166
|
|
|
202
|
-
|
|
203
|
-
|
|
167
|
+
// https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html
|
|
204
168
|
const ModernRender = App => {
|
|
205
169
|
if (IS_REACT18) {
|
|
206
|
-
(root
|
|
170
|
+
if (root) {
|
|
171
|
+
root.render(App);
|
|
172
|
+
} else if (ReactDOM.createRoot) {
|
|
173
|
+
ReactDOM.createRoot(rootElement).render(App);
|
|
174
|
+
} else {
|
|
175
|
+
throw Error('The `bootstrap` `ReactDOM` parameter needs to provide the `createRoot` method');
|
|
176
|
+
}
|
|
207
177
|
} else {
|
|
178
|
+
if (!ReactDOM.render) {
|
|
179
|
+
throw Error('The `bootstrap` `ReactDOM` parameter needs to provide the `render` method');
|
|
180
|
+
}
|
|
208
181
|
ReactDOM.render(App, rootElement);
|
|
209
182
|
}
|
|
210
183
|
};
|
|
211
|
-
|
|
212
184
|
const ModernHydrate = (App, callback) => {
|
|
213
185
|
if (IS_REACT18) {
|
|
186
|
+
if (!ReactDOM.hydrateRoot) {
|
|
187
|
+
throw Error('The `bootstrap` `ReactDOM` parameter needs to provide the `hydrateRoot` method');
|
|
188
|
+
}
|
|
214
189
|
ReactDOM.hydrateRoot(rootElement, App);
|
|
215
190
|
} else {
|
|
191
|
+
if (!ReactDOM.hydrate) {
|
|
192
|
+
throw Error('The `bootstrap` `ReactDOM` parameter needs to provide the `hydrate` method');
|
|
193
|
+
}
|
|
216
194
|
ReactDOM.hydrate(App, rootElement, callback);
|
|
217
195
|
}
|
|
218
196
|
};
|
|
219
|
-
|
|
220
197
|
return runner.client({
|
|
221
198
|
App,
|
|
222
199
|
context,
|
|
@@ -244,17 +221,40 @@ root, ReactDOM = _reactDom.default) => {
|
|
|
244
221
|
skipStatic: process.env.NODE_ENV === 'production' && !id.staticGenerate
|
|
245
222
|
})
|
|
246
223
|
});
|
|
224
|
+
|
|
225
|
+
// Handle redirects from React Router with an HTTP redirect
|
|
226
|
+
const isRedirectResponse = result => {
|
|
227
|
+
if (typeof Response !== 'undefined' &&
|
|
228
|
+
// fix: ssg workflow doesn't inject Web Response
|
|
229
|
+
result instanceof Response && result.status >= 300 && result.status <= 399) {
|
|
230
|
+
const {
|
|
231
|
+
status
|
|
232
|
+
} = result;
|
|
233
|
+
const redirectUrl = result.headers.get('Location') || '/';
|
|
234
|
+
const {
|
|
235
|
+
ssrContext
|
|
236
|
+
} = context;
|
|
237
|
+
if (ssrContext) {
|
|
238
|
+
ssrContext.res.statusCode = status;
|
|
239
|
+
ssrContext.res.setHeader('Location', redirectUrl);
|
|
240
|
+
ssrContext.redirection.status = status;
|
|
241
|
+
ssrContext.redirection.url = redirectUrl;
|
|
242
|
+
}
|
|
243
|
+
return true;
|
|
244
|
+
}
|
|
245
|
+
return false;
|
|
246
|
+
};
|
|
247
247
|
const initialData = await runInit(context);
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
248
|
+
if (!isRedirectResponse(initialData)) {
|
|
249
|
+
context.initialData = initialData;
|
|
250
|
+
return runner.server({
|
|
251
|
+
App,
|
|
252
|
+
context
|
|
253
|
+
});
|
|
254
|
+
}
|
|
253
255
|
}
|
|
254
256
|
};
|
|
255
|
-
|
|
256
257
|
exports.bootstrap = bootstrap;
|
|
257
|
-
|
|
258
258
|
const useRuntimeContext = () => {
|
|
259
259
|
const context = (0, _react.useContext)(_runtimeContext.RuntimeReactContext);
|
|
260
260
|
const memoizedContext = (0, _react.useMemo)(() => context.runner.pickContext({
|
|
@@ -267,5 +267,4 @@ const useRuntimeContext = () => {
|
|
|
267
267
|
}), [context]);
|
|
268
268
|
return memoizedContext;
|
|
269
269
|
};
|
|
270
|
-
|
|
271
270
|
exports.useRuntimeContext = useRuntimeContext;
|
|
@@ -8,7 +8,6 @@ var _exportNames = {
|
|
|
8
8
|
createRuntime: true,
|
|
9
9
|
runtime: true,
|
|
10
10
|
registerInit: true,
|
|
11
|
-
registerPrefetch: true,
|
|
12
11
|
defineConfig: true,
|
|
13
12
|
getConfig: true,
|
|
14
13
|
RuntimeReactContext: true,
|
|
@@ -56,25 +55,15 @@ Object.defineProperty(exports, "registerInit", {
|
|
|
56
55
|
return _plugin.registerInit;
|
|
57
56
|
}
|
|
58
57
|
});
|
|
59
|
-
Object.defineProperty(exports, "registerPrefetch", {
|
|
60
|
-
enumerable: true,
|
|
61
|
-
get: function () {
|
|
62
|
-
return _plugin.registerPrefetch;
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
58
|
Object.defineProperty(exports, "runtime", {
|
|
66
59
|
enumerable: true,
|
|
67
60
|
get: function () {
|
|
68
61
|
return _plugin.runtime;
|
|
69
62
|
}
|
|
70
63
|
});
|
|
71
|
-
|
|
72
64
|
var _plugin = require("./plugin");
|
|
73
|
-
|
|
74
65
|
var _appConfig = require("./app-config");
|
|
75
|
-
|
|
76
66
|
var _compatible = require("./compatible");
|
|
77
|
-
|
|
78
67
|
Object.keys(_compatible).forEach(function (key) {
|
|
79
68
|
if (key === "default" || key === "__esModule") return;
|
|
80
69
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -86,11 +75,8 @@ Object.keys(_compatible).forEach(function (key) {
|
|
|
86
75
|
}
|
|
87
76
|
});
|
|
88
77
|
});
|
|
89
|
-
|
|
90
78
|
var _runtimeContext = require("../runtime-context");
|
|
91
|
-
|
|
92
79
|
var _loader = require("./loader");
|
|
93
|
-
|
|
94
80
|
Object.keys(_loader).forEach(function (key) {
|
|
95
81
|
if (key === "default" || key === "__esModule") return;
|
|
96
82
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -102,9 +88,7 @@ Object.keys(_loader).forEach(function (key) {
|
|
|
102
88
|
}
|
|
103
89
|
});
|
|
104
90
|
});
|
|
105
|
-
|
|
106
91
|
var _plugin2 = require("@modern-js/plugin");
|
|
107
|
-
|
|
108
92
|
Object.keys(_plugin2).forEach(function (key) {
|
|
109
93
|
if (key === "default" || key === "__esModule") return;
|
|
110
94
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.createLoaderManager = exports.LoaderStatus = void 0;
|
|
7
|
-
|
|
8
7
|
var _invariant = _interopRequireDefault(require("invariant"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
/**
|
|
13
10
|
* Calc id from string or object
|
|
14
11
|
*/
|
|
@@ -16,29 +13,25 @@ const createGetId = () => {
|
|
|
16
13
|
const idCache = new Map();
|
|
17
14
|
return objectId => {
|
|
18
15
|
const cachedId = idCache.get(objectId);
|
|
19
|
-
|
|
20
16
|
if (cachedId) {
|
|
21
17
|
return cachedId;
|
|
22
|
-
}
|
|
23
|
-
|
|
18
|
+
}
|
|
24
19
|
|
|
20
|
+
// WARNING: id should be unique after serialize.
|
|
25
21
|
const id = JSON.stringify(objectId);
|
|
26
22
|
(0, _invariant.default)(id, 'params should be not null value');
|
|
27
23
|
idCache.set(objectId, id);
|
|
28
24
|
return id;
|
|
29
25
|
};
|
|
30
26
|
};
|
|
31
|
-
|
|
32
27
|
let LoaderStatus;
|
|
33
28
|
exports.LoaderStatus = LoaderStatus;
|
|
34
|
-
|
|
35
29
|
(function (LoaderStatus) {
|
|
36
30
|
LoaderStatus[LoaderStatus["idle"] = 0] = "idle";
|
|
37
31
|
LoaderStatus[LoaderStatus["loading"] = 1] = "loading";
|
|
38
32
|
LoaderStatus[LoaderStatus["fulfilled"] = 2] = "fulfilled";
|
|
39
33
|
LoaderStatus[LoaderStatus["rejected"] = 3] = "rejected";
|
|
40
34
|
})(LoaderStatus || (exports.LoaderStatus = LoaderStatus = {}));
|
|
41
|
-
|
|
42
35
|
const createLoader = (id, initialData = {
|
|
43
36
|
loading: false,
|
|
44
37
|
reloading: false,
|
|
@@ -53,16 +46,13 @@ const createLoader = (id, initialData = {
|
|
|
53
46
|
} = initialData;
|
|
54
47
|
let hasLoaded = false;
|
|
55
48
|
const handlers = new Set();
|
|
56
|
-
|
|
57
49
|
const load = async () => {
|
|
58
50
|
if (skip) {
|
|
59
51
|
return promise;
|
|
60
52
|
}
|
|
61
|
-
|
|
62
53
|
if (status === LoaderStatus.loading) {
|
|
63
54
|
return promise;
|
|
64
55
|
}
|
|
65
|
-
|
|
66
56
|
status = LoaderStatus.loading;
|
|
67
57
|
notify();
|
|
68
58
|
promise = loaderFn().then(value => {
|
|
@@ -80,7 +70,6 @@ const createLoader = (id, initialData = {
|
|
|
80
70
|
});
|
|
81
71
|
return promise;
|
|
82
72
|
};
|
|
83
|
-
|
|
84
73
|
const getResult = () => ({
|
|
85
74
|
loading: !hasLoaded && status === LoaderStatus.loading,
|
|
86
75
|
reloading: hasLoaded && status === LoaderStatus.loading,
|
|
@@ -89,35 +78,29 @@ const createLoader = (id, initialData = {
|
|
|
89
78
|
// redundant fields for ssr log
|
|
90
79
|
_error: error
|
|
91
80
|
});
|
|
92
|
-
|
|
93
81
|
const notify = () => {
|
|
94
82
|
// don't iterate handlers directly, since it could be modified during iteration
|
|
95
83
|
[...handlers].forEach(handler => {
|
|
96
84
|
handler(status, getResult());
|
|
97
85
|
});
|
|
98
86
|
};
|
|
99
|
-
|
|
100
87
|
const onChange = handler => {
|
|
101
88
|
handlers.add(handler);
|
|
102
89
|
return () => {
|
|
103
90
|
handlers.delete(handler);
|
|
104
91
|
};
|
|
105
92
|
};
|
|
106
|
-
|
|
107
93
|
return {
|
|
108
94
|
get result() {
|
|
109
95
|
return getResult();
|
|
110
96
|
},
|
|
111
|
-
|
|
112
97
|
get promise() {
|
|
113
98
|
return promise;
|
|
114
99
|
},
|
|
115
|
-
|
|
116
100
|
onChange,
|
|
117
101
|
load
|
|
118
102
|
};
|
|
119
103
|
};
|
|
120
|
-
|
|
121
104
|
/**
|
|
122
105
|
* Create loaders manager. It's returned instance will add to context
|
|
123
106
|
* @param initialDataMap used to initialing loader data
|
|
@@ -129,67 +112,60 @@ const createLoaderManager = (initialDataMap, managerOptions = {}) => {
|
|
|
129
112
|
} = managerOptions;
|
|
130
113
|
const loadersMap = new Map();
|
|
131
114
|
const getId = createGetId();
|
|
132
|
-
|
|
133
115
|
const add = (loaderFn, loaderOptions) => {
|
|
134
116
|
const id = getId(loaderOptions.params);
|
|
135
|
-
let loader = loadersMap.get(id);
|
|
117
|
+
let loader = loadersMap.get(id);
|
|
136
118
|
|
|
119
|
+
// private property for opting out loader cache, maybe change in future
|
|
137
120
|
const cache = loaderOptions._cache;
|
|
138
|
-
|
|
139
121
|
if (!loader || cache === false) {
|
|
140
122
|
// ignore non-static loader on static phase
|
|
141
|
-
const ignoreNonStatic = skipNonStatic && !loaderOptions.static;
|
|
123
|
+
const ignoreNonStatic = skipNonStatic && !loaderOptions.static;
|
|
142
124
|
|
|
125
|
+
// ignore static loader on non-static phase
|
|
143
126
|
const ignoreStatic = skipStatic && loaderOptions.static;
|
|
144
127
|
const skipExec = ignoreNonStatic || ignoreStatic;
|
|
145
128
|
loader = createLoader(id, typeof initialDataMap[id] !== 'undefined' ? initialDataMap[id] : {
|
|
146
129
|
data: loaderOptions.initialData
|
|
147
|
-
}, loaderFn,
|
|
130
|
+
}, loaderFn,
|
|
131
|
+
// Todo whether static loader is exec when CSR
|
|
148
132
|
skipExec);
|
|
149
133
|
loadersMap.set(id, loader);
|
|
150
134
|
}
|
|
151
|
-
|
|
152
135
|
return id;
|
|
153
136
|
};
|
|
137
|
+
const get = id => loadersMap.get(id);
|
|
154
138
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
139
|
+
// check if there has pending loaders
|
|
158
140
|
const hasPendingLoaders = () => {
|
|
159
141
|
for (const loader of loadersMap.values()) {
|
|
160
142
|
const {
|
|
161
143
|
promise
|
|
162
144
|
} = loader;
|
|
163
|
-
|
|
164
145
|
if (promise instanceof Promise) {
|
|
165
146
|
return true;
|
|
166
147
|
}
|
|
167
148
|
}
|
|
168
|
-
|
|
169
149
|
return false;
|
|
170
|
-
};
|
|
171
|
-
|
|
150
|
+
};
|
|
172
151
|
|
|
152
|
+
// waiting for all pending loaders to be settled
|
|
173
153
|
const awaitPendingLoaders = async () => {
|
|
174
154
|
const pendingLoaders = [];
|
|
175
|
-
|
|
176
155
|
for (const [id, loader] of loadersMap) {
|
|
177
156
|
const {
|
|
178
157
|
promise
|
|
179
158
|
} = loader;
|
|
180
|
-
|
|
181
159
|
if (promise instanceof Promise) {
|
|
182
160
|
pendingLoaders.push([id, loader]);
|
|
183
161
|
}
|
|
184
162
|
}
|
|
185
|
-
|
|
186
163
|
await Promise.all(pendingLoaders.map(item => item[1].promise));
|
|
187
164
|
return pendingLoaders.reduce((res, [id, loader]) => {
|
|
188
165
|
res[id] = loader.result;
|
|
189
166
|
return res;
|
|
190
167
|
}, {});
|
|
191
168
|
};
|
|
192
|
-
|
|
193
169
|
return {
|
|
194
170
|
hasPendingLoaders,
|
|
195
171
|
awaitPendingLoaders,
|
|
@@ -197,5 +173,4 @@ const createLoaderManager = (initialDataMap, managerOptions = {}) => {
|
|
|
197
173
|
get
|
|
198
174
|
};
|
|
199
175
|
};
|
|
200
|
-
|
|
201
176
|
exports.createLoaderManager = createLoaderManager;
|
|
@@ -4,23 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _invariant = _interopRequireDefault(require("invariant"));
|
|
11
|
-
|
|
12
9
|
var _runtimeContext = require("../../runtime-context");
|
|
13
|
-
|
|
14
10
|
var _loaderManager = require("./loaderManager");
|
|
15
|
-
|
|
16
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
12
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
-
|
|
20
13
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
21
|
-
|
|
22
14
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
23
|
-
|
|
24
15
|
const useLoader = (loaderFn, options = {
|
|
25
16
|
params: undefined
|
|
26
17
|
}) => {
|
|
@@ -30,29 +21,24 @@ const useLoader = (loaderFn, options = {
|
|
|
30
21
|
loaderManager
|
|
31
22
|
} = context;
|
|
32
23
|
const loaderRef = (0, _react.useRef)();
|
|
33
|
-
const unlistenLoaderChangeRef = (0, _react.useRef)(null);
|
|
24
|
+
const unlistenLoaderChangeRef = (0, _react.useRef)(null);
|
|
34
25
|
|
|
26
|
+
// SSR render should ignore `_cache` prop
|
|
35
27
|
if (isSSRRender && Object.prototype.hasOwnProperty.call(options, '_cache')) {
|
|
36
28
|
delete options._cache;
|
|
37
29
|
}
|
|
38
|
-
|
|
39
30
|
const load = (0, _react.useCallback)(params => {
|
|
40
31
|
var _unlistenLoaderChange, _window, _window$_SSR_DATA, _window$_SSR_DATA$dat, _window$_SSR_DATA$dat2, _loaderRef$current2;
|
|
41
|
-
|
|
42
32
|
if (typeof params === 'undefined') {
|
|
43
33
|
var _loaderRef$current;
|
|
44
|
-
|
|
45
34
|
return (_loaderRef$current = loaderRef.current) === null || _loaderRef$current === void 0 ? void 0 : _loaderRef$current.load();
|
|
46
35
|
}
|
|
47
|
-
|
|
48
36
|
const id = loaderManager.add(() => {
|
|
49
37
|
try {
|
|
50
38
|
const res = loaderFn(context, params);
|
|
51
|
-
|
|
52
39
|
if (res instanceof Promise) {
|
|
53
40
|
return res;
|
|
54
41
|
}
|
|
55
|
-
|
|
56
42
|
return Promise.resolve(res);
|
|
57
43
|
} catch (e) {
|
|
58
44
|
return Promise.reject(e);
|
|
@@ -60,37 +46,31 @@ const useLoader = (loaderFn, options = {
|
|
|
60
46
|
}, _objectSpread(_objectSpread({}, options), {}, {
|
|
61
47
|
params
|
|
62
48
|
}));
|
|
63
|
-
loaderRef.current = loaderManager.get(id);
|
|
64
|
-
|
|
49
|
+
loaderRef.current = loaderManager.get(id);
|
|
50
|
+
// unsubscribe old loader onChange event
|
|
65
51
|
(_unlistenLoaderChange = unlistenLoaderChangeRef.current) === null || _unlistenLoaderChange === void 0 ? void 0 : _unlistenLoaderChange.call(unlistenLoaderChangeRef);
|
|
66
|
-
|
|
67
52
|
if (isSSRRender) {
|
|
68
53
|
return undefined;
|
|
69
|
-
}
|
|
70
|
-
|
|
54
|
+
}
|
|
71
55
|
|
|
56
|
+
// skip this loader, then try to unlisten loader change
|
|
72
57
|
if (options.skip) {
|
|
73
58
|
return undefined;
|
|
74
|
-
}
|
|
75
|
-
|
|
59
|
+
}
|
|
76
60
|
|
|
61
|
+
// do not load data again in CSR hydrate stage if SSR data exists
|
|
77
62
|
if (context._hydration && ((_window = window) === null || _window === void 0 ? void 0 : (_window$_SSR_DATA = _window._SSR_DATA) === null || _window$_SSR_DATA === void 0 ? void 0 : (_window$_SSR_DATA$dat = _window$_SSR_DATA.data) === null || _window$_SSR_DATA$dat === void 0 ? void 0 : (_window$_SSR_DATA$dat2 = _window$_SSR_DATA$dat.loadersData[id]) === null || _window$_SSR_DATA$dat2 === void 0 ? void 0 : _window$_SSR_DATA$dat2.error) === null) {
|
|
78
63
|
return undefined;
|
|
79
64
|
}
|
|
80
|
-
|
|
81
65
|
const res = loaderRef.current.load();
|
|
82
66
|
unlistenLoaderChangeRef.current = (_loaderRef$current2 = loaderRef.current) === null || _loaderRef$current2 === void 0 ? void 0 : _loaderRef$current2.onChange((_status, _result) => {
|
|
83
67
|
setResult(_result);
|
|
84
|
-
|
|
85
68
|
if (_status === _loaderManager.LoaderStatus.fulfilled) {
|
|
86
69
|
var _options$onSuccess;
|
|
87
|
-
|
|
88
70
|
options === null || options === void 0 ? void 0 : (_options$onSuccess = options.onSuccess) === null || _options$onSuccess === void 0 ? void 0 : _options$onSuccess.call(options, _result.data);
|
|
89
71
|
}
|
|
90
|
-
|
|
91
72
|
if (_status === _loaderManager.LoaderStatus.rejected) {
|
|
92
73
|
var _options$onError;
|
|
93
|
-
|
|
94
74
|
options === null || options === void 0 ? void 0 : (_options$onError = options.onError) === null || _options$onError === void 0 ? void 0 : _options$onError.call(options, _result.error);
|
|
95
75
|
}
|
|
96
76
|
});
|
|
@@ -98,12 +78,10 @@ const useLoader = (loaderFn, options = {
|
|
|
98
78
|
}, [options.skip]);
|
|
99
79
|
(0, _react.useEffect)(() => () => {
|
|
100
80
|
var _unlistenLoaderChange2;
|
|
101
|
-
|
|
102
81
|
(_unlistenLoaderChange2 = unlistenLoaderChangeRef.current) === null || _unlistenLoaderChange2 === void 0 ? void 0 : _unlistenLoaderChange2.call(unlistenLoaderChangeRef);
|
|
103
82
|
}, []);
|
|
104
83
|
(0, _react.useMemo)(() => {
|
|
105
84
|
var _options$params;
|
|
106
|
-
|
|
107
85
|
const p = (_options$params = options.params) !== null && _options$params !== void 0 ? _options$params : loaderFn.id;
|
|
108
86
|
(0, _invariant.default)(typeof p !== 'undefined' && p !== null, 'Params is required in useLoader');
|
|
109
87
|
load(p);
|
|
@@ -113,6 +91,5 @@ const useLoader = (loaderFn, options = {
|
|
|
113
91
|
reload: load
|
|
114
92
|
});
|
|
115
93
|
};
|
|
116
|
-
|
|
117
94
|
var _default = useLoader;
|
|
118
95
|
exports.default = _default;
|