@modern-js/runtime 2.43.0 → 2.45.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 (51) hide show
  1. package/dist/cjs/ssr/cli/index.js +3 -7
  2. package/dist/cjs/ssr/prefetch.js +1 -2
  3. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.share.js +1 -1
  4. package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +36 -10
  5. package/dist/cjs/ssr/serverRender/renderToStream/index.js +2 -2
  6. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +32 -30
  7. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.worker.js +3 -3
  8. package/dist/cjs/ssr/serverRender/renderToStream/template.js +3 -3
  9. package/dist/cjs/ssr/serverRender/renderToString/entry.js +0 -2
  10. package/dist/cjs/ssr/serverRender/renderToString/index.js +0 -1
  11. package/dist/cjs/ssr/serverRender/renderToString/loadable.js +4 -7
  12. package/dist/cjs/ssr/serverRender/tracker.js +8 -20
  13. package/dist/cjs/ssr/serverRender/utils.js +6 -0
  14. package/dist/esm/ssr/cli/index.js +5 -8
  15. package/dist/esm/ssr/prefetch.js +1 -2
  16. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.share.js +5 -3
  17. package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +168 -33
  18. package/dist/esm/ssr/serverRender/renderToStream/index.js +2 -2
  19. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +34 -30
  20. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +23 -13
  21. package/dist/esm/ssr/serverRender/renderToStream/template.js +37 -11
  22. package/dist/esm/ssr/serverRender/renderToString/entry.js +0 -2
  23. package/dist/esm/ssr/serverRender/renderToString/index.js +0 -1
  24. package/dist/esm/ssr/serverRender/renderToString/loadable.js +5 -8
  25. package/dist/esm/ssr/serverRender/tracker.js +8 -20
  26. package/dist/esm/ssr/serverRender/utils.js +5 -0
  27. package/dist/esm-node/ssr/cli/index.js +3 -7
  28. package/dist/esm-node/ssr/prefetch.js +1 -2
  29. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.share.js +1 -1
  30. package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +37 -11
  31. package/dist/esm-node/ssr/serverRender/renderToStream/index.js +2 -2
  32. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.js +32 -30
  33. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.worker.js +3 -3
  34. package/dist/esm-node/ssr/serverRender/renderToStream/template.js +3 -3
  35. package/dist/esm-node/ssr/serverRender/renderToString/entry.js +0 -2
  36. package/dist/esm-node/ssr/serverRender/renderToString/index.js +0 -1
  37. package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +5 -8
  38. package/dist/esm-node/ssr/serverRender/tracker.js +8 -20
  39. package/dist/esm-node/ssr/serverRender/utils.js +5 -0
  40. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +1 -1
  41. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.share.d.ts +2 -2
  42. package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +2 -2
  43. package/dist/types/ssr/serverRender/renderToStream/index.d.ts +1 -1
  44. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +2 -2
  45. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.worker.d.ts +2 -2
  46. package/dist/types/ssr/serverRender/renderToStream/template.d.ts +2 -2
  47. package/dist/types/ssr/serverRender/renderToString/entry.d.ts +0 -1
  48. package/dist/types/ssr/serverRender/tracker.d.ts +1 -1
  49. package/dist/types/ssr/serverRender/types.d.ts +1 -1
  50. package/dist/types/ssr/serverRender/utils.d.ts +1 -0
  51. package/package.json +10 -10
@@ -1,12 +1,56 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
1
3
  import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
2
4
  import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
5
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
6
  import ReactHelmet from "react-helmet";
4
7
  import { matchRoutes } from "@modern-js/runtime-utils/router";
5
8
  import helmetReplace from "../helmet";
6
9
  import { CHUNK_CSS_PLACEHOLDER } from "../constants";
7
- import { safeReplace } from "../utils";
10
+ import { checkIsNode, safeReplace } from "../utils";
8
11
  import { HEAD_REG_EXP, buildTemplate } from "./buildTemplate.share";
9
- function getHeadTemplate(beforeEntryTemplate, context) {
12
+ var readAsset = function() {
13
+ var _ref = _async_to_generator(function(chunk) {
14
+ var fs, path, filepath;
15
+ return _ts_generator(this, function(_state) {
16
+ switch (_state.label) {
17
+ case 0:
18
+ return [
19
+ 4,
20
+ import("fs/promises")
21
+ ];
22
+ case 1:
23
+ fs = _state.sent();
24
+ return [
25
+ 4,
26
+ import("path")
27
+ ];
28
+ case 2:
29
+ path = _state.sent();
30
+ filepath = path.join(__dirname, chunk);
31
+ return [
32
+ 2,
33
+ fs.readFile(filepath, "utf-8")
34
+ ];
35
+ }
36
+ });
37
+ });
38
+ return function readAsset2(chunk) {
39
+ return _ref.apply(this, arguments);
40
+ };
41
+ }();
42
+ var checkIsInline = function(chunk, enableInline) {
43
+ if (process.env.NODE_ENV === "production") {
44
+ if (_instanceof(enableInline, RegExp)) {
45
+ return enableInline.test(chunk);
46
+ } else {
47
+ return Boolean(enableInline);
48
+ }
49
+ } else {
50
+ return false;
51
+ }
52
+ };
53
+ function getHeadTemplate(beforeEntryTemplate, context, pluginConfig) {
10
54
  var callbacks = [
11
55
  function(headTemplate2) {
12
56
  var helmetData = ReactHelmet.renderStatic();
@@ -21,42 +65,133 @@ function getHeadTemplate(beforeEntryTemplate, context) {
21
65
  }
22
66
  return buildTemplate(headTemplate, callbacks);
23
67
  function injectCss(headTemplate2) {
24
- return safeReplace(headTemplate2, CHUNK_CSS_PLACEHOLDER, getCssChunks());
25
- function getCssChunks() {
26
- var routeManifest = context.routeManifest, routerContext = context.routerContext, routes = context.routes;
27
- if (!routeManifest || !routerContext || !routes) {
28
- return "";
68
+ return _injectCss.apply(this, arguments);
69
+ }
70
+ function _injectCss() {
71
+ _injectCss = _async_to_generator(function(headTemplate2) {
72
+ var css;
73
+ function getCssChunks() {
74
+ return _getCssChunks.apply(this, arguments);
29
75
  }
30
- var routeAssets = routeManifest.routeAssets;
31
- var cssChunks = [];
32
- var matches = matchRoutes(routes, routerContext.location, routerContext.basename);
33
- matches === null || matches === void 0 ? void 0 : matches.forEach(function(match, index) {
34
- if (!index) {
35
- return;
36
- }
37
- var routeId = match.route.id;
38
- if (routeId) {
39
- var routeManifest2 = routeAssets[routeId];
40
- if (routeManifest2) {
41
- var _cssChunks;
42
- var _routeManifest_referenceCssAssets = routeManifest2.referenceCssAssets, referenceCssAssets = _routeManifest_referenceCssAssets === void 0 ? [] : _routeManifest_referenceCssAssets;
43
- var _cssChunks1 = referenceCssAssets.filter(function(asset) {
44
- return (asset === null || asset === void 0 ? void 0 : asset.endsWith(".css")) && !headTemplate2.includes(asset);
45
- });
46
- (_cssChunks = cssChunks).push.apply(_cssChunks, _to_consumable_array(_cssChunks1));
47
- }
76
+ function _getCssChunks() {
77
+ _getCssChunks = _async_to_generator(function() {
78
+ var routeManifest, routerContext, routes, routeAssets, cssChunks, matches, enableInlineStyles, styles;
79
+ return _ts_generator(this, function(_state) {
80
+ switch (_state.label) {
81
+ case 0:
82
+ routeManifest = context.routeManifest, routerContext = context.routerContext, routes = context.routes;
83
+ if (!routeManifest || !routerContext || !routes) {
84
+ return [
85
+ 2,
86
+ ""
87
+ ];
88
+ }
89
+ routeAssets = routeManifest.routeAssets;
90
+ cssChunks = [];
91
+ matches = matchRoutes(routes, routerContext.location, routerContext.basename);
92
+ matches === null || matches === void 0 ? void 0 : matches.forEach(function(match, index) {
93
+ if (!index) {
94
+ return;
95
+ }
96
+ var routeId = match.route.id;
97
+ if (routeId) {
98
+ var routeManifest2 = routeAssets[routeId];
99
+ if (routeManifest2) {
100
+ var _cssChunks;
101
+ var _routeManifest_referenceCssAssets = routeManifest2.referenceCssAssets, referenceCssAssets = _routeManifest_referenceCssAssets === void 0 ? [] : _routeManifest_referenceCssAssets;
102
+ var _cssChunks1 = referenceCssAssets.filter(function(asset) {
103
+ return (asset === null || asset === void 0 ? void 0 : asset.endsWith(".css")) && !headTemplate2.includes(asset);
104
+ });
105
+ (_cssChunks = cssChunks).push.apply(_cssChunks, _to_consumable_array(_cssChunks1));
106
+ }
107
+ }
108
+ });
109
+ enableInlineStyles = pluginConfig.enableInlineStyles;
110
+ return [
111
+ 4,
112
+ Promise.all(cssChunks.map(function() {
113
+ var _ref2 = _async_to_generator(function(chunk) {
114
+ var link;
115
+ return _ts_generator(this, function(_state2) {
116
+ link = '<link href="'.concat(chunk, '" rel="stylesheet" />');
117
+ if (checkIsNode() && checkIsInline(chunk, enableInlineStyles)) {
118
+ return [
119
+ 2,
120
+ readAsset(chunk).then(function(content) {
121
+ return "<style>".concat(content, "</style>");
122
+ }).catch(function(_) {
123
+ return link;
124
+ })
125
+ ];
126
+ } else {
127
+ return [
128
+ 2,
129
+ link
130
+ ];
131
+ }
132
+ return [
133
+ 2
134
+ ];
135
+ });
136
+ });
137
+ return function(chunk) {
138
+ return _ref2.apply(this, arguments);
139
+ };
140
+ }()))
141
+ ];
142
+ case 1:
143
+ styles = _state.sent();
144
+ return [
145
+ 2,
146
+ "".concat(styles.join(""))
147
+ ];
148
+ }
149
+ });
150
+ });
151
+ return _getCssChunks.apply(this, arguments);
152
+ }
153
+ return _ts_generator(this, function(_state) {
154
+ switch (_state.label) {
155
+ case 0:
156
+ return [
157
+ 4,
158
+ getCssChunks()
159
+ ];
160
+ case 1:
161
+ css = _state.sent();
162
+ return [
163
+ 2,
164
+ safeReplace(headTemplate2, CHUNK_CSS_PLACEHOLDER, css)
165
+ ];
48
166
  }
49
167
  });
50
- var styleLinks = cssChunks.map(function(chunk) {
51
- return '<link href="'.concat(chunk, '" rel="stylesheet" />');
52
- });
53
- return "".concat(styleLinks.join(""));
54
- }
168
+ });
169
+ return _injectCss.apply(this, arguments);
55
170
  }
56
171
  }
57
- function buildShellBeforeTemplate(beforeAppTemplate, context) {
58
- var headTemplate = getHeadTemplate(beforeAppTemplate, context);
59
- return beforeAppTemplate.replace(HEAD_REG_EXP, headTemplate);
172
+ function buildShellBeforeTemplate(beforeAppTemplate, context, pluginConfig) {
173
+ return _buildShellBeforeTemplate.apply(this, arguments);
174
+ }
175
+ function _buildShellBeforeTemplate() {
176
+ _buildShellBeforeTemplate = _async_to_generator(function(beforeAppTemplate, context, pluginConfig) {
177
+ var headTemplate;
178
+ return _ts_generator(this, function(_state) {
179
+ switch (_state.label) {
180
+ case 0:
181
+ return [
182
+ 4,
183
+ getHeadTemplate(beforeAppTemplate, context, pluginConfig)
184
+ ];
185
+ case 1:
186
+ headTemplate = _state.sent();
187
+ return [
188
+ 2,
189
+ beforeAppTemplate.replace(HEAD_REG_EXP, headTemplate)
190
+ ];
191
+ }
192
+ });
193
+ });
194
+ return _buildShellBeforeTemplate.apply(this, arguments);
60
195
  }
61
196
  export {
62
197
  buildShellBeforeTemplate
@@ -6,7 +6,7 @@ import { time } from "@modern-js/runtime-utils/time";
6
6
  import { SSRErrors, SSRTimings } from "../tracker";
7
7
  import renderToPipe from "./renderToPipe";
8
8
  var render = function(param) {
9
- var App = param.App, context = param.context;
9
+ var App = param.App, context = param.context, config = param.config;
10
10
  var ssrContext = context.ssrContext;
11
11
  if (!ssrContext) {
12
12
  throw new Error('The "ssrContext" must not be undefined, but received undefined');
@@ -21,7 +21,7 @@ var render = function(param) {
21
21
  })
22
22
  });
23
23
  tracker = ssrContext.tracker;
24
- pipe = renderToPipe(rootElement, context, {
24
+ pipe = renderToPipe(rootElement, context, config, {
25
25
  onShellReady: function onShellReady() {
26
26
  var cost = end();
27
27
  tracker.trackTiming(SSRTimings.RENDER_SHELL, cost);
@@ -10,7 +10,7 @@ var ShellChunkStatus;
10
10
  ShellChunkStatus2[ShellChunkStatus2["START"] = 0] = "START";
11
11
  ShellChunkStatus2[ShellChunkStatus2["FINIESH"] = 1] = "FINIESH";
12
12
  })(ShellChunkStatus || (ShellChunkStatus = {}));
13
- function renderToPipe(rootElement, context, options) {
13
+ function renderToPipe(rootElement, context, pluginConfig, options) {
14
14
  var shellChunkStatus = 0;
15
15
  var ssrContext = context.ssrContext;
16
16
  var chunkVec = [];
@@ -24,41 +24,45 @@ function renderToPipe(rootElement, context, options) {
24
24
  var pipe = renderToPipeableStream(rootElement, _object_spread_props(_object_spread({}, options), {
25
25
  nonce: ssrContext === null || ssrContext === void 0 ? void 0 : ssrContext.nonce,
26
26
  onShellReady: function onShellReady() {
27
- var _options_onShellReady;
28
- var _getTemplates = getTemplates(context, RenderLevel.SERVER_RENDER), shellAfter = _getTemplates.shellAfter, shellBefore = _getTemplates.shellBefore;
29
- options === null || options === void 0 ? void 0 : (_options_onShellReady = options.onShellReady) === null || _options_onShellReady === void 0 ? void 0 : _options_onShellReady.call(options);
30
- var injectableTransform = new Transform({
31
- transform: function transform(chunk, _encoding, callback) {
32
- try {
33
- if (shellChunkStatus !== 1) {
34
- chunkVec.push(chunk.toString());
35
- var concatedChunk = chunkVec.join("");
36
- if (concatedChunk.endsWith(ESCAPED_SHELL_STREAM_END_MARK)) {
37
- concatedChunk = concatedChunk.replace(ESCAPED_SHELL_STREAM_END_MARK, "");
38
- shellChunkStatus = 1;
39
- this.push("".concat(shellBefore).concat(concatedChunk).concat(shellAfter));
27
+ getTemplates(context, RenderLevel.SERVER_RENDER, pluginConfig).then(function(param) {
28
+ var shellAfter = param.shellAfter, shellBefore = param.shellBefore;
29
+ var _options_onShellReady;
30
+ options === null || options === void 0 ? void 0 : (_options_onShellReady = options.onShellReady) === null || _options_onShellReady === void 0 ? void 0 : _options_onShellReady.call(options);
31
+ var injectableTransform = new Transform({
32
+ transform: function transform(chunk, _encoding, callback) {
33
+ try {
34
+ if (shellChunkStatus !== 1) {
35
+ chunkVec.push(chunk.toString());
36
+ var concatedChunk = chunkVec.join("");
37
+ if (concatedChunk.endsWith(ESCAPED_SHELL_STREAM_END_MARK)) {
38
+ concatedChunk = concatedChunk.replace(ESCAPED_SHELL_STREAM_END_MARK, "");
39
+ shellChunkStatus = 1;
40
+ this.push("".concat(shellBefore).concat(concatedChunk).concat(shellAfter));
41
+ }
42
+ } else {
43
+ this.push(chunk);
44
+ }
45
+ callback();
46
+ } catch (e) {
47
+ if (_instanceof(e, Error)) {
48
+ callback(e);
49
+ } else {
50
+ callback(new Error("Received unkown error when streaming"));
40
51
  }
41
- } else {
42
- this.push(chunk);
43
- }
44
- callback();
45
- } catch (e) {
46
- if (_instanceof(e, Error)) {
47
- callback(e);
48
- } else {
49
- callback(new Error("Received unkown error when streaming"));
50
52
  }
51
53
  }
52
- }
54
+ });
55
+ resolve(pipe(injectableTransform).pipe(stream));
53
56
  });
54
- resolve(pipe(injectableTransform).pipe(stream));
55
57
  },
56
58
  onShellError: function onShellError(error) {
57
- var _options_onShellError;
58
- var _getTemplates = getTemplates(context, RenderLevel.CLIENT_RENDER), shellAfter = _getTemplates.shellAfter, shellBefore = _getTemplates.shellBefore;
59
- var fallbackHtml = "".concat(shellBefore).concat(shellAfter);
60
- resolve(fallbackHtml);
61
- options === null || options === void 0 ? void 0 : (_options_onShellError = options.onShellError) === null || _options_onShellError === void 0 ? void 0 : _options_onShellError.call(options, error);
59
+ getTemplates(context, RenderLevel.CLIENT_RENDER, pluginConfig).then(function(param) {
60
+ var shellAfter = param.shellAfter, shellBefore = param.shellBefore;
61
+ var _options_onShellError;
62
+ var fallbackHtml = "".concat(shellBefore).concat(shellAfter);
63
+ resolve(fallbackHtml);
64
+ options === null || options === void 0 ? void 0 : (_options_onShellError = options.onShellError) === null || _options_onShellError === void 0 ? void 0 : _options_onShellError.call(options, error);
65
+ });
62
66
  }
63
67
  })).pipe;
64
68
  });
@@ -11,13 +11,13 @@ var ShellChunkStatus;
11
11
  ShellChunkStatus2[ShellChunkStatus2["START"] = 0] = "START";
12
12
  ShellChunkStatus2[ShellChunkStatus2["FINIESH"] = 1] = "FINIESH";
13
13
  })(ShellChunkStatus || (ShellChunkStatus = {}));
14
- function renderToPipe(rootElement, context, options) {
14
+ function renderToPipe(rootElement, context, pluginConfig, options) {
15
15
  var shellChunkStatus = 0;
16
16
  var chunkVec = [];
17
17
  var ssrContext = context.ssrContext;
18
18
  var forUserPipe = function() {
19
19
  var _ref = _async_to_generator(function() {
20
- var renderToReadableStream, _getTemplates, shellAfter, shellBefore, readableOriginal, reader, injectableStream, err, _getTemplates1, shellAfter1, shellBefore1, fallbackHtml;
20
+ var renderToReadableStream, _ref2, shellAfter, shellBefore, readableOriginal, reader, injectableStream, err, _ref1, shellAfter1, shellBefore1, fallbackHtml;
21
21
  return _ts_generator(this, function(_state) {
22
22
  switch (_state.label) {
23
23
  case 0:
@@ -25,14 +25,19 @@ function renderToPipe(rootElement, context, options) {
25
25
  renderToReadableStream = require("react-dom/server").renderToReadableStream;
26
26
  } catch (e) {
27
27
  }
28
- _getTemplates = getTemplates(context, RenderLevel.SERVER_RENDER), shellAfter = _getTemplates.shellAfter, shellBefore = _getTemplates.shellBefore;
29
- _state.label = 1;
28
+ return [
29
+ 4,
30
+ getTemplates(context, RenderLevel.SERVER_RENDER, pluginConfig)
31
+ ];
30
32
  case 1:
33
+ _ref2 = _state.sent(), shellAfter = _ref2.shellAfter, shellBefore = _ref2.shellBefore;
34
+ _state.label = 2;
35
+ case 2:
31
36
  _state.trys.push([
32
- 1,
33
- 3,
37
+ 2,
38
+ 4,
34
39
  ,
35
- 4
40
+ 6
36
41
  ]);
37
42
  return [
38
43
  4,
@@ -44,7 +49,7 @@ function renderToPipe(rootElement, context, options) {
44
49
  }
45
50
  }))
46
51
  ];
47
- case 2:
52
+ case 3:
48
53
  readableOriginal = _state.sent();
49
54
  reader = readableOriginal.getReader();
50
55
  injectableStream = new ReadableStream({
@@ -54,7 +59,7 @@ function renderToPipe(rootElement, context, options) {
54
59
  }
55
60
  function _push() {
56
61
  _push = _async_to_generator(function() {
57
- var _ref2, done, value, chunk, concatedChunk;
62
+ var _ref3, done, value, chunk, concatedChunk;
58
63
  return _ts_generator(this, function(_state2) {
59
64
  switch (_state2.label) {
60
65
  case 0:
@@ -63,7 +68,7 @@ function renderToPipe(rootElement, context, options) {
63
68
  reader.read()
64
69
  ];
65
70
  case 1:
66
- _ref2 = _state2.sent(), done = _ref2.done, value = _ref2.value;
71
+ _ref3 = _state2.sent(), done = _ref3.done, value = _ref3.value;
67
72
  if (done) {
68
73
  controller.close();
69
74
  return [
@@ -98,16 +103,21 @@ function renderToPipe(rootElement, context, options) {
98
103
  2,
99
104
  injectableStream
100
105
  ];
101
- case 3:
106
+ case 4:
102
107
  err = _state.sent();
103
108
  ssrContext === null || ssrContext === void 0 ? void 0 : ssrContext.tracker.trackError(SSRErrors.RENDER_SHELL, err);
104
- _getTemplates1 = getTemplates(context, RenderLevel.CLIENT_RENDER), shellAfter1 = _getTemplates1.shellAfter, shellBefore1 = _getTemplates1.shellBefore;
109
+ return [
110
+ 4,
111
+ getTemplates(context, RenderLevel.CLIENT_RENDER, pluginConfig)
112
+ ];
113
+ case 5:
114
+ _ref1 = _state.sent(), shellAfter1 = _ref1.shellAfter, shellBefore1 = _ref1.shellBefore;
105
115
  fallbackHtml = "".concat(shellBefore1).concat(shellAfter1);
106
116
  return [
107
117
  2,
108
118
  fallbackHtml
109
119
  ];
110
- case 4:
120
+ case 6:
111
121
  return [
112
122
  2
113
123
  ];
@@ -1,20 +1,46 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
1
2
  import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
3
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
2
4
  import { buildShellAfterTemplate } from "./buildTemplate.after";
3
5
  import { buildShellBeforeTemplate } from "./bulidTemplate.before";
4
6
  var HTML_SEPARATOR = "<!--<?- html ?>-->";
5
- var getTemplates = function(context, renderLevel) {
6
- var ssrContext = context.ssrContext;
7
- var _ref = _sliced_to_array(ssrContext.template.split(HTML_SEPARATOR) || [], 2), tmp = _ref[0], beforeAppTemplate = tmp === void 0 ? "" : tmp, tmp1 = _ref[1], afterAppHtmlTemplate = tmp1 === void 0 ? "" : tmp1;
8
- var builtBeforeTemplate = buildShellBeforeTemplate(beforeAppTemplate, context);
9
- var builtAfterTemplate = buildShellAfterTemplate(afterAppHtmlTemplate, {
10
- context,
11
- renderLevel
7
+ var getTemplates = function() {
8
+ var _ref = _async_to_generator(function(context, renderLevel, pluginConfig) {
9
+ var ssrContext, _ref2, tmp, beforeAppTemplate, tmp1, afterAppHtmlTemplate, builtBeforeTemplate, builtAfterTemplate;
10
+ return _ts_generator(this, function(_state) {
11
+ switch (_state.label) {
12
+ case 0:
13
+ ssrContext = context.ssrContext;
14
+ _ref2 = _sliced_to_array(ssrContext.template.split(HTML_SEPARATOR) || [], 2), tmp = _ref2[0], beforeAppTemplate = tmp === void 0 ? "" : tmp, tmp1 = _ref2[1], afterAppHtmlTemplate = tmp1 === void 0 ? "" : tmp1;
15
+ return [
16
+ 4,
17
+ buildShellBeforeTemplate(beforeAppTemplate, context, pluginConfig)
18
+ ];
19
+ case 1:
20
+ builtBeforeTemplate = _state.sent();
21
+ return [
22
+ 4,
23
+ buildShellAfterTemplate(afterAppHtmlTemplate, {
24
+ context,
25
+ renderLevel
26
+ })
27
+ ];
28
+ case 2:
29
+ builtAfterTemplate = _state.sent();
30
+ return [
31
+ 2,
32
+ {
33
+ shellBefore: builtBeforeTemplate,
34
+ shellAfter: builtAfterTemplate
35
+ }
36
+ ];
37
+ }
38
+ });
12
39
  });
13
- return {
14
- shellBefore: builtBeforeTemplate,
15
- shellAfter: builtAfterTemplate
40
+ return function getTemplates2(context, renderLevel, pluginConfig) {
41
+ return _ref.apply(this, arguments);
16
42
  };
17
- };
43
+ }();
18
44
  export {
19
45
  getTemplates
20
46
  };
@@ -54,7 +54,6 @@ var Entry = /* @__PURE__ */ function() {
54
54
  _class_call_check(this, Entry2);
55
55
  _define_property(this, "entryName", void 0);
56
56
  _define_property(this, "result", void 0);
57
- _define_property(this, "metrics", void 0);
58
57
  _define_property(this, "tracker", void 0);
59
58
  _define_property(this, "template", void 0);
60
59
  _define_property(this, "App", void 0);
@@ -70,7 +69,6 @@ var Entry = /* @__PURE__ */ function() {
70
69
  this.pluginConfig = config;
71
70
  this.routeManifest = ctx.routeManifest;
72
71
  this.tracker = ctx.tracker;
73
- this.metrics = ctx.metrics;
74
72
  this.htmlModifiers = ctx.htmlModifiers;
75
73
  this.nonce = nonce;
76
74
  this.result = {
@@ -15,7 +15,6 @@ var render = function(param) {
15
15
  App,
16
16
  config
17
17
  });
18
- entry.metrics.emitCounter("app.visit.count", 1);
19
18
  return [
20
19
  4,
21
20
  entry.renderToHtml(context)
@@ -6,7 +6,7 @@ import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
6
6
  import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
7
7
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
8
8
  import { ChunkExtractor } from "@loadable/server";
9
- import { attributesToString } from "../utils";
9
+ import { attributesToString, checkIsNode } from "../utils";
10
10
  var extname = function(uri) {
11
11
  if (typeof uri !== "string" || !uri.includes(".")) {
12
12
  return "";
@@ -61,10 +61,6 @@ var readAsset = function() {
61
61
  return _ref.apply(this, arguments);
62
62
  };
63
63
  }();
64
- var checkIsNode = function() {
65
- var _process_release;
66
- return typeof process !== "undefined" && ((_process_release = process.release) === null || _process_release === void 0 ? void 0 : _process_release.name) === "node";
67
- };
68
64
  var LoadableCollector = /* @__PURE__ */ function() {
69
65
  "use strict";
70
66
  function LoadableCollector2(options) {
@@ -168,7 +164,8 @@ var LoadableCollector = /* @__PURE__ */ function() {
168
164
  _config_scriptLoading = config.scriptLoading, scriptLoading = _config_scriptLoading === void 0 ? "defer" : _config_scriptLoading, enableInlineScripts = config.enableInlineScripts;
169
165
  scriptLoadingAtr = {
170
166
  defer: scriptLoading === "defer" ? true : void 0,
171
- type: scriptLoading === "module" ? "module" : void 0
167
+ type: scriptLoading === "module" ? "module" : void 0,
168
+ async: scriptLoading === "async" ? true : void 0
172
169
  };
173
170
  attributes = attributesToString(_this.generateAttributes(_object_spread({
174
171
  nonce
@@ -184,7 +181,7 @@ var LoadableCollector = /* @__PURE__ */ function() {
184
181
  var script;
185
182
  return _ts_generator(this, function(_state2) {
186
183
  script = "<script".concat(attributes, ' src="').concat(chunk.url, '"></script>');
187
- if (checkIsInline(chunk, enableInlineScripts) && checkIsNode()) {
184
+ if (checkIsNode() && checkIsInline(chunk, enableInlineScripts)) {
188
185
  return [
189
186
  2,
190
187
  readAsset(chunk).then(function(content) {
@@ -244,7 +241,7 @@ var LoadableCollector = /* @__PURE__ */ function() {
244
241
  var link;
245
242
  return _ts_generator(this, function(_state2) {
246
243
  link = "<link".concat(atrributes, ' href="').concat(chunk.url, '" rel="stylesheet" />');
247
- if (checkIsInline(chunk, enableInlineStyles) && checkIsNode()) {
244
+ if (checkIsNode() && checkIsInline(chunk, enableInlineStyles)) {
248
245
  return [
249
246
  2,
250
247
  readAsset(chunk).then(function(content) {
@@ -17,61 +17,49 @@ var SSRErrors;
17
17
  var _obj;
18
18
  var errors = (_obj = {}, _define_property(_obj, 0, {
19
19
  reporter: "App Prerender",
20
- logger: "App Prerender",
21
- metrics: "app.prerender.error"
20
+ logger: "App Prerender"
22
21
  }), _define_property(_obj, 1, {
23
22
  reporter: "App run useLoader",
24
- logger: "App run useLoader",
25
- metrics: "app.useloader.error"
23
+ logger: "App run useLoader"
26
24
  }), _define_property(_obj, 2, {
27
25
  reporter: "App Render To HTML",
28
- logger: "App Render To HTML",
29
- metrics: "app.render.html.error"
26
+ logger: "App Render To HTML"
30
27
  }), _define_property(_obj, 3, {
31
28
  reporter: "App Render To Streaming",
32
- logger: "An error occurs during streaming SSR",
33
- metrics: "app.render.streaming.error"
34
- }), _define_property(_obj, 4, {
35
- metrics: "app.render.streaming.shell.error"
36
- }), _obj);
29
+ logger: "An error occurs during streaming SSR"
30
+ }), _define_property(_obj, 4, {}), _obj);
37
31
  var _obj1;
38
32
  var timings = (_obj1 = {}, _define_property(_obj1, 0, {
39
33
  reporter: "ssr-prerender",
40
34
  serverTiming: "ssr-prerender",
41
- metrics: "app.prerender.cost",
42
35
  logger: "App Prerender cost = %d ms"
43
36
  }), _define_property(_obj1, 1, {
44
37
  reporter: "ssr-render-html",
45
38
  serverTiming: "ssr-render-html",
46
- metrics: "app.render.html.cost",
47
39
  logger: "App Render To HTML cost = %d ms"
48
40
  }), _define_property(_obj1, 2, {
49
41
  reporter: "ssr-render-shell",
50
- metrics: "app.render.shell.cost",
51
42
  logger: "App Render To Shell cost = %d ms"
52
43
  }), _define_property(_obj1, 3, {
53
44
  reporter: "use-loader",
54
45
  serverTiming: "use-loader",
55
- metrics: "app.useloader.cost",
56
46
  logger: "App run useLoader cost = %d ms"
57
47
  }), _obj1);
58
48
  function createSSRTracker(param) {
59
- var reporter = param.reporter, serverTiming = param.serverTiming, metrics = param.metrics, logger = param.logger;
49
+ var reporter = param.reporter, serverTiming = param.serverTiming, logger = param.logger;
60
50
  var tracker = {
61
51
  get sessionId() {
62
52
  return reporter.sessionId;
63
53
  },
64
54
  trackError: function trackError(key, e) {
65
- var _errors_key = errors[key], reporterContent = _errors_key.reporter, metricsContent = _errors_key.metrics, loggerContent = _errors_key.logger;
55
+ var _errors_key = errors[key], reporterContent = _errors_key.reporter, loggerContent = _errors_key.logger;
66
56
  reporterContent && reporter.reportError("SSR Error - ".concat(reporterContent), e);
67
- metricsContent && metrics.emitCounter(metricsContent, 1);
68
57
  loggerContent && logger.error(loggerContent, e);
69
58
  },
70
59
  trackTiming: function trackTiming(key, cost) {
71
- var _timings_key = timings[key], reporterName = _timings_key.reporter, serverTimingName = _timings_key.serverTiming, loggerName = _timings_key.logger, metricsName = _timings_key.metrics;
60
+ var _timings_key = timings[key], reporterName = _timings_key.reporter, serverTimingName = _timings_key.serverTiming, loggerName = _timings_key.logger;
72
61
  reporterName && reporter.reportTiming(reporterName, cost);
73
62
  serverTimingName && serverTiming.addServeTiming(serverTimingName, cost);
74
- metricsName && metrics.emitTimer(metricsName, cost);
75
63
  loggerName && logger.debug(loggerName, cost);
76
64
  }
77
65
  };
@@ -10,7 +10,12 @@ function safeReplace(source, searchValue, replaceValue) {
10
10
  return replaceValue;
11
11
  });
12
12
  }
13
+ function checkIsNode() {
14
+ var _process_release;
15
+ return typeof process !== "undefined" && ((_process_release = process.release) === null || _process_release === void 0 ? void 0 : _process_release.name) === "node";
16
+ }
13
17
  export {
14
18
  attributesToString,
19
+ checkIsNode,
15
20
  safeReplace
16
21
  };