@modern-js/runtime 2.4.0 → 2.4.1-beta.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.
Files changed (86) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/js/modern/core/compatible.js +1 -0
  3. package/dist/js/modern/router/runtime/fetch.js +5 -0
  4. package/dist/js/modern/router/runtime/fetch.node.js +4 -0
  5. package/dist/js/modern/router/runtime/fetch.worker.js +5 -0
  6. package/dist/js/modern/router/runtime/plugin.node.js +2 -2
  7. package/dist/js/modern/ssr/cli/index.js +2 -2
  8. package/dist/js/modern/ssr/prefetch.worker.js +66 -0
  9. package/dist/js/modern/ssr/react/nossr/index.js +6 -2
  10. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +1 -1
  11. package/dist/js/modern/ssr/serverRender/renderToStream/index.worker.js +35 -0
  12. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.worker.js +110 -0
  13. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +5 -4
  14. package/dist/js/modern/ssr/serverRender/renderToString/index.js +1 -1
  15. package/dist/js/modern/ssr/serverRender/renderToString/index.worker.js +49 -0
  16. package/dist/js/modern/ssr/serverRender/time.js +13 -0
  17. package/dist/js/modern/ssr/serverRender/time.worker.js +28 -0
  18. package/dist/js/modern/ssr/serverRender/utils.js +1 -12
  19. package/dist/js/node/core/compatible.js +1 -0
  20. package/dist/js/node/router/runtime/fetch.js +28 -0
  21. package/dist/js/node/router/runtime/fetch.node.js +27 -0
  22. package/dist/js/node/router/runtime/fetch.worker.js +28 -0
  23. package/dist/js/node/router/runtime/plugin.node.js +3 -3
  24. package/dist/js/node/ssr/cli/index.js +2 -2
  25. package/dist/js/node/ssr/prefetch.worker.js +87 -0
  26. package/dist/js/node/ssr/react/nossr/index.js +6 -2
  27. package/dist/js/node/ssr/serverRender/renderToStream/index.js +2 -2
  28. package/dist/js/node/ssr/serverRender/renderToStream/index.worker.js +64 -0
  29. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.worker.js +129 -0
  30. package/dist/js/node/ssr/serverRender/renderToString/entry.js +7 -6
  31. package/dist/js/node/ssr/serverRender/renderToString/index.js +2 -2
  32. package/dist/js/node/ssr/serverRender/renderToString/index.worker.js +78 -0
  33. package/dist/js/node/ssr/serverRender/time.js +36 -0
  34. package/dist/js/node/ssr/serverRender/time.worker.js +51 -0
  35. package/dist/js/node/ssr/serverRender/utils.js +2 -14
  36. package/dist/js/treeshaking/core/compatible.js +8 -7
  37. package/dist/js/treeshaking/core/loader/loaderManager.js +3 -3
  38. package/dist/js/treeshaking/core/loader/useLoader.js +15 -15
  39. package/dist/js/treeshaking/document/Head.js +1 -1
  40. package/dist/js/treeshaking/document/Html.js +2 -2
  41. package/dist/js/treeshaking/document/Root.js +2 -2
  42. package/dist/js/treeshaking/document/cli/index.js +4 -4
  43. package/dist/js/treeshaking/router/cli/index.js +2 -2
  44. package/dist/js/treeshaking/router/runtime/fetch.js +2 -0
  45. package/dist/js/treeshaking/router/runtime/fetch.node.js +2 -0
  46. package/dist/js/treeshaking/router/runtime/fetch.worker.js +2 -0
  47. package/dist/js/treeshaking/router/runtime/plugin.js +3 -3
  48. package/dist/js/treeshaking/router/runtime/plugin.node.js +5 -5
  49. package/dist/js/treeshaking/router/runtime/utils.js +3 -3
  50. package/dist/js/treeshaking/ssr/cli/index.js +5 -5
  51. package/dist/js/treeshaking/ssr/index.js +6 -6
  52. package/dist/js/treeshaking/ssr/index.node.js +1 -1
  53. package/dist/js/treeshaking/ssr/prefetch.js +2 -2
  54. package/dist/js/treeshaking/ssr/prefetch.worker.js +191 -0
  55. package/dist/js/treeshaking/ssr/react/nossr/index.js +3 -3
  56. package/dist/js/treeshaking/ssr/react/prerender/index.js +2 -2
  57. package/dist/js/treeshaking/ssr/react/prerender/util.js +2 -2
  58. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +2 -2
  59. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +1 -1
  60. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.worker.js +32 -0
  61. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +1 -1
  62. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +8 -8
  63. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.worker.js +280 -0
  64. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +1 -1
  65. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +5 -5
  66. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +1 -1
  67. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.worker.js +167 -0
  68. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +1 -1
  69. package/dist/js/treeshaking/ssr/serverRender/time.js +57 -0
  70. package/dist/js/treeshaking/ssr/serverRender/time.worker.js +75 -0
  71. package/dist/js/treeshaking/ssr/serverRender/utils.js +1 -57
  72. package/dist/js/treeshaking/ssr/utils.js +5 -5
  73. package/dist/js/treeshaking/state/cli/index.js +2 -2
  74. package/dist/js/treeshaking/state/runtime/plugin.js +3 -3
  75. package/dist/types/router/runtime/fetch.d.ts +2 -0
  76. package/dist/types/router/runtime/fetch.node.d.ts +2 -0
  77. package/dist/types/router/runtime/fetch.worker.d.ts +2 -0
  78. package/dist/types/ssr/prefetch.worker.d.ts +13 -0
  79. package/dist/types/ssr/react/nossr/index.d.ts +4 -2
  80. package/dist/types/ssr/serverRender/renderToStream/index.worker.d.ts +6 -0
  81. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.worker.d.ts +8 -0
  82. package/dist/types/ssr/serverRender/renderToString/index.worker.d.ts +6 -0
  83. package/dist/types/ssr/serverRender/time.d.ts +1 -0
  84. package/dist/types/ssr/serverRender/time.worker.d.ts +1 -0
  85. package/dist/types/ssr/serverRender/utils.d.ts +2 -3
  86. package/package.json +6 -5
@@ -0,0 +1,75 @@
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithHoles(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _iterableToArrayLimit(arr, i) {
10
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
11
+ if (_i == null) return;
12
+ var _arr = [];
13
+ var _n = true;
14
+ var _d = false;
15
+ var _s, _e;
16
+ try {
17
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
18
+ _arr.push(_s.value);
19
+ if (i && _arr.length === i) break;
20
+ }
21
+ } catch (err) {
22
+ _d = true;
23
+ _e = err;
24
+ } finally{
25
+ try {
26
+ if (!_n && _i["return"] != null) _i["return"]();
27
+ } finally{
28
+ if (_d) throw _e;
29
+ }
30
+ }
31
+ return _arr;
32
+ }
33
+ function _nonIterableRest() {
34
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
35
+ }
36
+ function _slicedToArray(arr, i) {
37
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
38
+ }
39
+ function _unsupportedIterableToArray(o, minLen) {
40
+ if (!o) return;
41
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
42
+ var n = Object.prototype.toString.call(o).slice(8, -1);
43
+ if (n === "Object" && o.constructor) n = o.constructor.name;
44
+ if (n === "Map" || n === "Set") return Array.from(n);
45
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
46
+ }
47
+ function processHrtime(previousTimestamp) {
48
+ var now = new Date().getTime();
49
+ var clocktime = now * 1e-3;
50
+ var seconds = Math.floor(clocktime);
51
+ var nanoseconds = Math.floor(clocktime % 1 * 1e9);
52
+ if (previousTimestamp) {
53
+ seconds -= previousTimestamp[0];
54
+ nanoseconds -= previousTimestamp[1];
55
+ if (nanoseconds < 0) {
56
+ seconds--;
57
+ nanoseconds += 1e9;
58
+ }
59
+ }
60
+ return [
61
+ seconds,
62
+ nanoseconds
63
+ ];
64
+ }
65
+ var getLatency = function(hrtime) {
66
+ var _processHrtime = _slicedToArray(processHrtime(hrtime), 2), s = _processHrtime[0], ns = _processHrtime[1];
67
+ return s * 1e3 + ns / 1e6;
68
+ };
69
+ var time = function() {
70
+ var hrtime = processHrtime();
71
+ return function() {
72
+ return getLatency(hrtime);
73
+ };
74
+ };
75
+ export { time };
@@ -1,49 +1,3 @@
1
- function _arrayLikeToArray(arr, len) {
2
- if (len == null || len > arr.length) len = arr.length;
3
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
- return arr2;
5
- }
6
- function _arrayWithHoles(arr) {
7
- if (Array.isArray(arr)) return arr;
8
- }
9
- function _iterableToArrayLimit(arr, i) {
10
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
11
- if (_i == null) return;
12
- var _arr = [];
13
- var _n = true;
14
- var _d = false;
15
- var _s, _e;
16
- try {
17
- for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
18
- _arr.push(_s.value);
19
- if (i && _arr.length === i) break;
20
- }
21
- } catch (err) {
22
- _d = true;
23
- _e = err;
24
- } finally{
25
- try {
26
- if (!_n && _i["return"] != null) _i["return"]();
27
- } finally{
28
- if (_d) throw _e;
29
- }
30
- }
31
- return _arr;
32
- }
33
- function _nonIterableRest() {
34
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
35
- }
36
- function _slicedToArray(arr, i) {
37
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
38
- }
39
- function _unsupportedIterableToArray(o, minLen) {
40
- if (!o) return;
41
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
42
- var n = Object.prototype.toString.call(o).slice(8, -1);
43
- if (n === "Object" && o.constructor) n = o.constructor.name;
44
- if (n === "Map" || n === "Set") return Array.from(n);
45
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
46
- }
47
1
  function getLoadableScripts(extractor) {
48
2
  var check = function(scripts2) {
49
3
  return (scripts2 || "").includes("__LOADABLE_REQUIRED_CHUNKS___ext");
@@ -56,14 +10,4 @@ function getLoadableScripts(extractor) {
56
10
  return "".concat(i, "</script>");
57
11
  }).join("");
58
12
  }
59
- var getLatency = function(hrtime) {
60
- var ref = _slicedToArray(process.hrtime(hrtime), 2), s = ref[0], ns = ref[1];
61
- return s * 1e3 + ns / 1e6;
62
- };
63
- var time = function() {
64
- var hrtime = process.hrtime();
65
- return function() {
66
- return getLatency(hrtime);
67
- };
68
- };
69
- export { getLoadableScripts, time };
13
+ export { getLoadableScripts };
@@ -76,7 +76,7 @@ var isReact18 = function() {
76
76
  return process.env.IS_REACT18 === "true";
77
77
  };
78
78
  var formatServer = function(request) {
79
- var ref = request.headers || {}, _cookie = ref.cookie, cookie = _cookie === void 0 ? "" : _cookie, tmp = ref["user-agent"], userAgent = tmp === void 0 ? "" : tmp, referer = ref.referer;
79
+ var _ref = request.headers || {}, _ref_cookie = _ref.cookie, cookie = _ref_cookie === void 0 ? "" : _ref_cookie, tmp = _ref["user-agent"], userAgent = tmp === void 0 ? "" : tmp, referer = _ref.referer;
80
80
  return _objectSpread({
81
81
  cookie: cookie,
82
82
  userAgent: userAgent,
@@ -85,7 +85,7 @@ var formatServer = function(request) {
85
85
  };
86
86
  var getQuery = function() {
87
87
  return window.location.search.substring(1).split("&").reduce(function(res, item) {
88
- var ref = _slicedToArray(item.split("="), 2), key = ref[0], value = ref[1];
88
+ var _item_split = _slicedToArray(item.split("="), 2), key = _item_split[0], value = _item_split[1];
89
89
  if (key) {
90
90
  res[key] = value;
91
91
  }
@@ -93,15 +93,15 @@ var getQuery = function() {
93
93
  }, {});
94
94
  };
95
95
  var formatClient = function(request) {
96
- var ref, ref1;
96
+ var _request_headers, _request_headers1;
97
97
  return {
98
98
  params: request.params || {},
99
99
  host: request.host || location.host,
100
100
  pathname: request.pathname || location.pathname,
101
101
  headers: request.headers || {},
102
102
  cookieMap: request.cookieMap || {},
103
- cookie: ((ref = request.headers) === null || ref === void 0 ? void 0 : ref.cookie) || document.cookie,
104
- userAgent: ((ref1 = request.headers) === null || ref1 === void 0 ? void 0 : ref1["user-agent"]) || navigator.userAgent,
103
+ cookie: ((_request_headers = request.headers) === null || _request_headers === void 0 ? void 0 : _request_headers.cookie) || document.cookie,
104
+ userAgent: ((_request_headers1 = request.headers) === null || _request_headers1 === void 0 ? void 0 : _request_headers1["user-agent"]) || navigator.userAgent,
105
105
  referer: request.referer || document.referrer,
106
106
  query: request.query || getQuery(),
107
107
  url: location.href
@@ -23,11 +23,11 @@ var cli_default = function() {
23
23
  },
24
24
  modifyEntryImports: function modifyEntryImports(param) {
25
25
  var entrypoint = param.entrypoint, imports = param.imports;
26
- var ref;
26
+ var _getEntryOptions;
27
27
  var entryName = entrypoint.entryName;
28
28
  var userConfig = api.useResolvedConfigContext();
29
29
  var packageName = api.useAppContext().packageName;
30
- var stateConfig = (ref = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || ref === void 0 ? void 0 : ref.state;
30
+ var stateConfig = (_getEntryOptions = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || _getEntryOptions === void 0 ? void 0 : _getEntryOptions.state;
31
31
  stateConfigMap.set(entryName, stateConfig);
32
32
  if (stateConfig) {
33
33
  imports.push({
@@ -127,7 +127,7 @@ var getStoreConfig = function(config) {
127
127
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
128
128
  try {
129
129
  for(var _iterator = Object.entries(config)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
130
- var _value = _slicedToArray(_step.value, 2), key = _value[0], value = _value[1];
130
+ var _step_value = _slicedToArray(_step.value, 2), key = _step_value[0], value = _step_value[1];
131
131
  if (!internalPlugins.includes(key)) {
132
132
  storeConfig[key] = value;
133
133
  }
@@ -172,8 +172,8 @@ var state = function(config) {
172
172
  init: function init(param, next) {
173
173
  var context = param.context;
174
174
  if (isBrowser()) {
175
- var ref, ref1;
176
- storeConfig.initialState = storeConfig.initialState || (window === null || window === void 0 ? void 0 : (ref = window._SSR_DATA) === null || ref === void 0 ? void 0 : (ref1 = ref.data) === null || ref1 === void 0 ? void 0 : ref1.storeState) || {};
175
+ var _window__SSR_DATA, _window__SSR_DATA_data;
176
+ storeConfig.initialState = storeConfig.initialState || (window === null || window === void 0 ? void 0 : (_window__SSR_DATA = window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : (_window__SSR_DATA_data = _window__SSR_DATA.data) === null || _window__SSR_DATA_data === void 0 ? void 0 : _window__SSR_DATA_data.storeState) || {};
177
177
  }
178
178
  context.store = createStore(storeConfig);
179
179
  return next({
@@ -0,0 +1,2 @@
1
+ declare function installGlobals(): void;
2
+ export { installGlobals };
@@ -0,0 +1,2 @@
1
+ import { installGlobals } from '@remix-run/node';
2
+ export { installGlobals };
@@ -0,0 +1,2 @@
1
+ declare function installGlobals(): void;
2
+ export { installGlobals };
@@ -0,0 +1,13 @@
1
+ import { RuntimeContext } from '../core';
2
+ declare const prefetch: (App: React.ComponentType<any>, context: RuntimeContext) => Promise<{
3
+ initialData: Record<string, unknown> | undefined;
4
+ i18nData: any;
5
+ loadersData?: undefined;
6
+ storeState?: undefined;
7
+ } | {
8
+ loadersData: Record<string, import("../core/loader/loaderManager").LoaderResult>;
9
+ initialData: Record<string, unknown> | undefined;
10
+ i18nData: any;
11
+ storeState: any;
12
+ }>;
13
+ export default prefetch;
@@ -1,4 +1,6 @@
1
- import React from 'react';
2
- export declare const NoSSR: (props: React.PropsWithChildren<unknown>) => React.FunctionComponentElement<{
1
+ import React, { ReactElement } from 'react';
2
+ export declare const NoSSR: (props: React.PropsWithChildren<{
3
+ fallback?: ReactElement | string;
4
+ }>) => React.FunctionComponentElement<{
3
5
  children?: React.ReactNode;
4
6
  }>;
@@ -0,0 +1,6 @@
1
+ /// <reference types="node" />
2
+ import { ServerRenderOptions } from '../types';
3
+ export declare const render: ({
4
+ App,
5
+ context
6
+ }: ServerRenderOptions) => import("./renderToPipe").Pipe<import("stream").Writable>;
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="react" />
3
+ import type { Writable } from 'stream';
4
+ import type { RenderToReadableStreamOptions } from 'react-dom/server';
5
+ import { RuntimeContext } from '../types';
6
+ export type Pipe<T extends Writable> = (output: T) => Promise<T | string>;
7
+ declare function renderToPipe(rootElement: React.ReactElement, context: RuntimeContext, options?: RenderToReadableStreamOptions): Pipe<Writable>;
8
+ export default renderToPipe;
@@ -0,0 +1,6 @@
1
+ import { ServerRenderOptions } from '../types';
2
+ export declare const render: ({
3
+ App,
4
+ context,
5
+ config
6
+ }: ServerRenderOptions) => Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const time: () => () => number;
@@ -0,0 +1 @@
1
+ export declare const time: () => () => number;
@@ -1,3 +1,2 @@
1
- import { ChunkExtractor } from '@loadable/server';
2
- export declare function getLoadableScripts(extractor: ChunkExtractor): string;
3
- export declare const time: () => () => number;
1
+ import type { ChunkExtractor } from '@loadable/server';
2
+ export declare function getLoadableScripts(extractor: ChunkExtractor): string;
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "2.4.0",
14
+ "version": "2.4.1-beta.0",
15
15
  "engines": {
16
16
  "node": ">=14.17.6"
17
17
  },
@@ -55,6 +55,7 @@
55
55
  "./ssr": {
56
56
  "jsnext:source": "./src/ssr/index.ts",
57
57
  "node": "./dist/js/treeshaking/ssr/index.node.js",
58
+ "worker": "./dist/js/treeshaking/ssr/index.node.js",
58
59
  "default": "./dist/js/treeshaking/ssr/index.js"
59
60
  },
60
61
  "./model": {
@@ -149,7 +150,7 @@
149
150
  "esbuild": "0.15.7",
150
151
  "@modern-js/plugin": "2.4.0",
151
152
  "@modern-js/types": "2.4.0",
152
- "@modern-js/utils": "2.4.0"
153
+ "@modern-js/utils": "2.4.1-beta.0"
153
154
  },
154
155
  "peerDependencies": {
155
156
  "react": ">=17",
@@ -170,9 +171,9 @@
170
171
  "react-dom": "^18",
171
172
  "ts-jest": "^27.0.4",
172
173
  "typescript": "^4",
173
- "@modern-js/app-tools": "2.4.0",
174
- "@modern-js/core": "2.4.0",
175
- "@modern-js/server-core": "2.4.0",
174
+ "@modern-js/app-tools": "3.0.0-beta.0",
175
+ "@modern-js/core": "2.4.1-beta.0",
176
+ "@modern-js/server-core": "2.4.1-beta.0",
176
177
  "@scripts/jest-config": "2.4.0",
177
178
  "@scripts/build": "2.4.0"
178
179
  },