@modern-js/prod-server 2.14.0 → 2.16.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 (122) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/constants.js +15 -31
  3. package/dist/cjs/index.js +35 -37
  4. package/dist/cjs/libs/context/context.js +53 -66
  5. package/dist/cjs/libs/context/index.js +15 -28
  6. package/dist/cjs/libs/hook-api/index.js +59 -54
  7. package/dist/cjs/libs/hook-api/route.js +28 -30
  8. package/dist/cjs/libs/hook-api/template.js +30 -34
  9. package/dist/cjs/libs/loadConfig.js +74 -65
  10. package/dist/cjs/libs/logger.js +46 -37
  11. package/dist/cjs/libs/metrics.js +7 -25
  12. package/dist/cjs/libs/proxy.js +29 -46
  13. package/dist/cjs/libs/render/cache/__tests__/cache.fun.test.js +48 -64
  14. package/dist/cjs/libs/render/cache/__tests__/cache.test.js +53 -37
  15. package/dist/cjs/libs/render/cache/__tests__/cacheable.js +38 -34
  16. package/dist/cjs/libs/render/cache/__tests__/error-configuration.js +22 -30
  17. package/dist/cjs/libs/render/cache/__tests__/matched-cache.js +86 -46
  18. package/dist/cjs/libs/render/cache/index.js +17 -37
  19. package/dist/cjs/libs/render/cache/page-caches/index.js +12 -28
  20. package/dist/cjs/libs/render/cache/page-caches/lru.js +32 -40
  21. package/dist/cjs/libs/render/cache/spr.js +104 -111
  22. package/dist/cjs/libs/render/cache/type.js +4 -15
  23. package/dist/cjs/libs/render/cache/util.js +29 -53
  24. package/dist/cjs/libs/render/index.js +75 -73
  25. package/dist/cjs/libs/render/measure.js +19 -34
  26. package/dist/cjs/libs/render/reader.js +52 -61
  27. package/dist/cjs/libs/render/ssr.js +34 -66
  28. package/dist/cjs/libs/render/static.js +22 -45
  29. package/dist/cjs/libs/render/type.js +10 -28
  30. package/dist/cjs/libs/render/utils.js +17 -38
  31. package/dist/cjs/libs/route/index.js +32 -31
  32. package/dist/cjs/libs/route/matcher.js +38 -38
  33. package/dist/cjs/libs/route/route.js +29 -26
  34. package/dist/cjs/libs/serveFile.js +23 -41
  35. package/dist/cjs/server/index.js +101 -107
  36. package/dist/cjs/server/modernServer.js +191 -171
  37. package/dist/cjs/server/modernServerSplit.js +12 -30
  38. package/dist/cjs/type.js +4 -15
  39. package/dist/cjs/utils.js +50 -50
  40. package/dist/cjs/workerServer.js +26 -36
  41. package/dist/esm/constants.js +24 -25
  42. package/dist/esm/index.js +11 -10
  43. package/dist/esm/libs/context/context.js +271 -264
  44. package/dist/esm/libs/context/index.js +3 -3
  45. package/dist/esm/libs/hook-api/index.js +237 -223
  46. package/dist/esm/libs/hook-api/route.js +62 -60
  47. package/dist/esm/libs/hook-api/template.js +117 -115
  48. package/dist/esm/libs/loadConfig.js +68 -69
  49. package/dist/esm/libs/logger.js +188 -174
  50. package/dist/esm/libs/metrics.js +6 -3
  51. package/dist/esm/libs/proxy.js +236 -221
  52. package/dist/esm/libs/render/cache/__tests__/cache.fun.test.js +286 -267
  53. package/dist/esm/libs/render/cache/__tests__/cache.test.js +765 -745
  54. package/dist/esm/libs/render/cache/__tests__/cacheable.js +62 -63
  55. package/dist/esm/libs/render/cache/__tests__/error-configuration.js +42 -43
  56. package/dist/esm/libs/render/cache/__tests__/matched-cache.js +134 -135
  57. package/dist/esm/libs/render/cache/index.js +337 -326
  58. package/dist/esm/libs/render/cache/page-caches/index.js +147 -141
  59. package/dist/esm/libs/render/cache/page-caches/lru.js +78 -76
  60. package/dist/esm/libs/render/cache/spr.js +465 -456
  61. package/dist/esm/libs/render/cache/type.js +1 -1
  62. package/dist/esm/libs/render/cache/util.js +266 -246
  63. package/dist/esm/libs/render/index.js +226 -218
  64. package/dist/esm/libs/render/measure.js +136 -128
  65. package/dist/esm/libs/render/reader.js +315 -304
  66. package/dist/esm/libs/render/ssr.js +214 -209
  67. package/dist/esm/libs/render/static.js +208 -198
  68. package/dist/esm/libs/render/type.js +6 -7
  69. package/dist/esm/libs/render/utils.js +8 -9
  70. package/dist/esm/libs/route/index.js +134 -123
  71. package/dist/esm/libs/route/matcher.js +140 -130
  72. package/dist/esm/libs/route/route.js +36 -37
  73. package/dist/esm/libs/serveFile.js +177 -168
  74. package/dist/esm/server/index.js +578 -549
  75. package/dist/esm/server/modernServer.js +1137 -1074
  76. package/dist/esm/server/modernServerSplit.js +344 -328
  77. package/dist/esm/type.js +1 -1
  78. package/dist/esm/utils.js +133 -124
  79. package/dist/esm/workerServer.js +226 -220
  80. package/dist/esm-node/constants.js +7 -14
  81. package/dist/esm-node/index.js +4 -9
  82. package/dist/esm-node/libs/context/context.js +32 -25
  83. package/dist/esm-node/libs/context/index.js +2 -5
  84. package/dist/esm-node/libs/hook-api/index.js +40 -21
  85. package/dist/esm-node/libs/hook-api/route.js +21 -8
  86. package/dist/esm-node/libs/hook-api/template.js +19 -14
  87. package/dist/esm-node/libs/loadConfig.js +11 -28
  88. package/dist/esm-node/libs/logger.js +37 -17
  89. package/dist/esm-node/libs/metrics.js +1 -3
  90. package/dist/esm-node/libs/proxy.js +14 -22
  91. package/dist/esm-node/libs/render/cache/__tests__/cache.fun.test.js +25 -36
  92. package/dist/esm-node/libs/render/cache/__tests__/cache.test.js +23 -11
  93. package/dist/esm-node/libs/render/cache/__tests__/cacheable.js +32 -13
  94. package/dist/esm-node/libs/render/cache/__tests__/error-configuration.js +16 -9
  95. package/dist/esm-node/libs/render/cache/__tests__/matched-cache.js +80 -25
  96. package/dist/esm-node/libs/render/cache/index.js +3 -10
  97. package/dist/esm-node/libs/render/cache/page-caches/index.js +4 -5
  98. package/dist/esm-node/libs/render/cache/page-caches/lru.js +20 -8
  99. package/dist/esm-node/libs/render/cache/spr.js +79 -80
  100. package/dist/esm-node/libs/render/cache/type.js +1 -0
  101. package/dist/esm-node/libs/render/cache/util.js +13 -23
  102. package/dist/esm-node/libs/render/index.js +10 -28
  103. package/dist/esm-node/libs/render/measure.js +7 -13
  104. package/dist/esm-node/libs/render/reader.js +31 -26
  105. package/dist/esm-node/libs/render/ssr.js +5 -21
  106. package/dist/esm-node/libs/render/static.js +1 -4
  107. package/dist/esm-node/libs/render/type.js +3 -6
  108. package/dist/esm-node/libs/render/utils.js +6 -18
  109. package/dist/esm-node/libs/route/index.js +20 -9
  110. package/dist/esm-node/libs/route/matcher.js +28 -17
  111. package/dist/esm-node/libs/route/route.js +23 -5
  112. package/dist/esm-node/libs/serveFile.js +2 -6
  113. package/dist/esm-node/server/index.js +72 -75
  114. package/dist/esm-node/server/modernServer.js +102 -130
  115. package/dist/esm-node/server/modernServerSplit.js +1 -4
  116. package/dist/esm-node/type.js +1 -0
  117. package/dist/esm-node/utils.js +41 -32
  118. package/dist/esm-node/workerServer.js +9 -10
  119. package/dist/types/libs/context/context.d.ts +1 -1
  120. package/dist/types/server/modernServer.d.ts +1 -1
  121. package/dist/types/utils.d.ts +1 -1
  122. package/package.json +12 -8
@@ -1,346 +1,357 @@
1
1
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
- try {
3
- var info = gen[key](arg);
4
- var value = info.value;
5
- } catch (error) {
6
- reject(error);
7
- return;
8
- }
9
- if (info.done) {
10
- resolve(value);
11
- } else {
12
- Promise.resolve(value).then(_next, _throw);
13
- }
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
14
  }
15
- function _asyncToGenerator(fn) {
16
- return function() {
17
- var self = this, args = arguments;
18
- return new Promise(function(resolve, reject) {
19
- var gen = fn.apply(self, args);
20
- function _next(value) {
21
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
- }
23
- function _throw(err) {
24
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
- }
26
- _next(undefined);
27
- });
28
- };
15
+ function _async_to_generator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(void 0);
27
+ });
28
+ };
29
29
  }
30
- function _defineProperty(obj, key, value) {
31
- if (key in obj) {
32
- Object.defineProperty(obj, key, {
33
- value: value,
34
- enumerable: true,
35
- configurable: true,
36
- writable: true
37
- });
38
- } else {
39
- obj[key] = value;
40
- }
41
- return obj;
30
+ function _define_property(obj, key, value) {
31
+ if (key in obj) {
32
+ Object.defineProperty(obj, key, {
33
+ value,
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true
37
+ });
38
+ } else {
39
+ obj[key] = value;
40
+ }
41
+ return obj;
42
42
  }
43
- function _objectSpread(target) {
44
- for(var i = 1; i < arguments.length; i++){
45
- var source = arguments[i] != null ? arguments[i] : {};
46
- var ownKeys = Object.keys(source);
47
- if (typeof Object.getOwnPropertySymbols === "function") {
48
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
49
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
50
- }));
51
- }
52
- ownKeys.forEach(function(key) {
53
- _defineProperty(target, key, source[key]);
54
- });
43
+ function _object_spread(target) {
44
+ for (var i = 1; i < arguments.length; i++) {
45
+ var source = arguments[i] != null ? arguments[i] : {};
46
+ var ownKeys = Object.keys(source);
47
+ if (typeof Object.getOwnPropertySymbols === "function") {
48
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
49
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
50
+ }));
55
51
  }
56
- return target;
52
+ ownKeys.forEach(function(key) {
53
+ _define_property(target, key, source[key]);
54
+ });
55
+ }
56
+ return target;
57
57
  }
58
- var __generator = this && this.__generator || function(thisArg, body) {
59
- var f, y, t, g, _ = {
60
- label: 0,
61
- sent: function() {
62
- if (t[0] & 1) throw t[1];
63
- return t[1];
64
- },
65
- trys: [],
66
- ops: []
58
+ var __generator = function(thisArg, body) {
59
+ var f, y, t, g, _ = {
60
+ label: 0,
61
+ sent: function() {
62
+ if (t[0] & 1)
63
+ throw t[1];
64
+ return t[1];
65
+ },
66
+ trys: [],
67
+ ops: []
68
+ };
69
+ return g = {
70
+ next: verb(0),
71
+ "throw": verb(1),
72
+ "return": verb(2)
73
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
74
+ return this;
75
+ }), g;
76
+ function verb(n) {
77
+ return function(v) {
78
+ return step([
79
+ n,
80
+ v
81
+ ]);
67
82
  };
68
- return(g = {
69
- next: verb(0),
70
- "throw": verb(1),
71
- "return": verb(2)
72
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
73
- return this;
74
- }), g);
75
- function verb(n) {
76
- return function(v) {
77
- return step([
78
- n,
79
- v
80
- ]);
81
- };
82
- }
83
- function step(op) {
84
- if (f) throw new TypeError("Generator is already executing.");
85
- while(_)try {
86
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
87
- if (y = 0, t) op = [
88
- op[0] & 2,
89
- t.value
90
- ];
91
- switch(op[0]){
92
- case 0:
93
- case 1:
94
- t = op;
95
- break;
96
- case 4:
97
- _.label++;
98
- return {
99
- value: op[1],
100
- done: false
101
- };
102
- case 5:
103
- _.label++;
104
- y = op[1];
105
- op = [
106
- 0
107
- ];
108
- continue;
109
- case 7:
110
- op = _.ops.pop();
111
- _.trys.pop();
112
- continue;
113
- default:
114
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
115
- _ = 0;
116
- continue;
117
- }
118
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
119
- _.label = op[1];
120
- break;
121
- }
122
- if (op[0] === 6 && _.label < t[1]) {
123
- _.label = t[1];
124
- t = op;
125
- break;
126
- }
127
- if (t && _.label < t[2]) {
128
- _.label = t[2];
129
- _.ops.push(op);
130
- break;
131
- }
132
- if (t[2]) _.ops.pop();
133
- _.trys.pop();
134
- continue;
135
- }
136
- op = body.call(thisArg, _);
137
- } catch (e) {
83
+ }
84
+ function step(op) {
85
+ if (f)
86
+ throw new TypeError("Generator is already executing.");
87
+ while (_)
88
+ try {
89
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
90
+ return t;
91
+ if (y = 0, t)
92
+ op = [
93
+ op[0] & 2,
94
+ t.value
95
+ ];
96
+ switch (op[0]) {
97
+ case 0:
98
+ case 1:
99
+ t = op;
100
+ break;
101
+ case 4:
102
+ _.label++;
103
+ return {
104
+ value: op[1],
105
+ done: false
106
+ };
107
+ case 5:
108
+ _.label++;
109
+ y = op[1];
138
110
  op = [
139
- 6,
140
- e
111
+ 0
141
112
  ];
142
- y = 0;
143
- } finally{
144
- f = t = 0;
113
+ continue;
114
+ case 7:
115
+ op = _.ops.pop();
116
+ _.trys.pop();
117
+ continue;
118
+ default:
119
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
120
+ _ = 0;
121
+ continue;
122
+ }
123
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
124
+ _.label = op[1];
125
+ break;
126
+ }
127
+ if (op[0] === 6 && _.label < t[1]) {
128
+ _.label = t[1];
129
+ t = op;
130
+ break;
131
+ }
132
+ if (t && _.label < t[2]) {
133
+ _.label = t[2];
134
+ _.ops.push(op);
135
+ break;
136
+ }
137
+ if (t[2])
138
+ _.ops.pop();
139
+ _.trys.pop();
140
+ continue;
145
141
  }
146
- if (op[0] & 5) throw op[1];
147
- return {
148
- value: op[0] ? op[1] : void 0,
149
- done: true
150
- };
151
- }
142
+ op = body.call(thisArg, _);
143
+ } catch (e) {
144
+ op = [
145
+ 6,
146
+ e
147
+ ];
148
+ y = 0;
149
+ } finally {
150
+ f = t = 0;
151
+ }
152
+ if (op[0] & 5)
153
+ throw op[1];
154
+ return {
155
+ value: op[0] ? op[1] : void 0,
156
+ done: true
157
+ };
158
+ }
152
159
  };
153
160
  import { Transform } from "stream";
154
161
  import { ERROR_DIGEST } from "../../../constants";
155
162
  import { createCache } from "./spr";
156
163
  import { namespaceHash, withCoalescedInvoke } from "./util";
157
- var cache_default = function(renderFn, ctx) {
158
- var sprCache = createCache();
159
- var doRender = function() {
160
- var _ref = _asyncToGenerator(function(context) {
161
- var cacheContext, cacheFile, renderResult, cacheHash, renderResult1, render;
162
- function afterRender(source, onAfterRender) {
163
- return _afterRender.apply(this, arguments);
164
- }
165
- function _afterRender() {
166
- _afterRender = _asyncToGenerator(function(source, onAfterRender) {
167
- var htmlForStream, cacheStream;
168
- return __generator(this, function(_state) {
169
- switch(_state.label){
170
- case 0:
171
- if (!source) {
172
- return [
173
- 2,
174
- ""
175
- ];
176
- }
177
- if (!(typeof source === "string")) return [
178
- 3,
179
- 2
180
- ];
181
- return [
182
- 4,
183
- onAfterRender(source)
184
- ];
185
- case 1:
186
- _state.sent();
187
- return [
188
- 2,
189
- source
190
- ];
191
- case 2:
192
- htmlForStream = "";
193
- cacheStream = new Transform({
194
- write: function write(chunk, _, callback) {
195
- htmlForStream += chunk.toString();
196
- this.push(chunk);
197
- callback();
198
- }
199
- });
200
- cacheStream.on("close", function() {
201
- return onAfterRender(htmlForStream);
202
- });
203
- return [
204
- 2,
205
- source(cacheStream)
206
- ];
207
- case 3:
208
- return [
209
- 2
210
- ];
211
- }
212
- });
164
+ export default function(renderFn, ctx) {
165
+ var sprCache = createCache();
166
+ var doRender = function() {
167
+ var _ref = _async_to_generator(function(context) {
168
+ var cacheContext, cacheFile, renderResult, cacheHash, renderResult1, render;
169
+ function afterRender(source, onAfterRender) {
170
+ return _afterRender.apply(this, arguments);
171
+ }
172
+ function _afterRender() {
173
+ _afterRender = _async_to_generator(function(source, onAfterRender) {
174
+ var htmlForStream, cacheStream;
175
+ return __generator(this, function(_state) {
176
+ switch (_state.label) {
177
+ case 0:
178
+ if (!source) {
179
+ return [
180
+ 2,
181
+ ""
182
+ ];
183
+ }
184
+ if (!(typeof source === "string"))
185
+ return [
186
+ 3,
187
+ 2
188
+ ];
189
+ return [
190
+ 4,
191
+ onAfterRender(source)
192
+ ];
193
+ case 1:
194
+ _state.sent();
195
+ return [
196
+ 2,
197
+ source
198
+ ];
199
+ case 2:
200
+ htmlForStream = "";
201
+ cacheStream = new Transform({
202
+ write: function write(chunk, _, callback) {
203
+ htmlForStream += chunk.toString();
204
+ this.push(chunk);
205
+ callback();
206
+ }
213
207
  });
214
- return _afterRender.apply(this, arguments);
208
+ cacheStream.on("close", function() {
209
+ return onAfterRender(htmlForStream);
210
+ });
211
+ return [
212
+ 2,
213
+ source(cacheStream)
214
+ ];
215
+ case 3:
216
+ return [
217
+ 2
218
+ ];
215
219
  }
216
- function saveHtmlIntoCache(html) {
217
- return _saveHtmlIntoCache.apply(this, arguments);
220
+ });
221
+ });
222
+ return _afterRender.apply(this, arguments);
223
+ }
224
+ function saveHtmlIntoCache(html) {
225
+ return _saveHtmlIntoCache.apply(this, arguments);
226
+ }
227
+ function _saveHtmlIntoCache() {
228
+ _saveHtmlIntoCache = _async_to_generator(function(html) {
229
+ var cacheConfig;
230
+ return __generator(this, function(_state) {
231
+ switch (_state.label) {
232
+ case 0:
233
+ cacheConfig = context.cacheConfig;
234
+ if (!(html && cacheConfig))
235
+ return [
236
+ 3,
237
+ 2
238
+ ];
239
+ return [
240
+ 4,
241
+ sprCache.set(cacheContext, html, cacheConfig)
242
+ ];
243
+ case 1:
244
+ _state.sent();
245
+ _state.label = 2;
246
+ case 2:
247
+ return [
248
+ 2
249
+ ];
218
250
  }
219
- function _saveHtmlIntoCache() {
220
- _saveHtmlIntoCache = _asyncToGenerator(function(html) {
221
- var cacheConfig;
222
- return __generator(this, function(_state) {
223
- switch(_state.label){
224
- case 0:
225
- cacheConfig = context.cacheConfig;
226
- if (!(html && cacheConfig)) return [
227
- 3,
228
- 2
229
- ];
230
- return [
231
- 4,
232
- sprCache.set(cacheContext, html, cacheConfig)
233
- ];
234
- case 1:
235
- _state.sent();
236
- _state.label = 2;
237
- case 2:
238
- return [
239
- 2
240
- ];
241
- }
242
- });
251
+ });
252
+ });
253
+ return _saveHtmlIntoCache.apply(this, arguments);
254
+ }
255
+ return __generator(this, function(_state) {
256
+ switch (_state.label) {
257
+ case 0:
258
+ cacheContext = _object_spread({
259
+ entry: context.entryName
260
+ }, context.request);
261
+ return [
262
+ 4,
263
+ sprCache.get(cacheContext)
264
+ ];
265
+ case 1:
266
+ cacheFile = _state.sent();
267
+ if (!!cacheFile)
268
+ return [
269
+ 3,
270
+ 3
271
+ ];
272
+ return [
273
+ 4,
274
+ renderFn(context)
275
+ ];
276
+ case 2:
277
+ renderResult = _state.sent();
278
+ return [
279
+ 2,
280
+ afterRender(renderResult, saveHtmlIntoCache)
281
+ ];
282
+ case 3:
283
+ cacheHash = cacheFile === null || cacheFile === void 0 ? void 0 : cacheFile.hash;
284
+ if (!cacheFile.isGarbage)
285
+ return [
286
+ 3,
287
+ 5
288
+ ];
289
+ return [
290
+ 4,
291
+ renderFn(context)
292
+ ];
293
+ case 4:
294
+ renderResult1 = _state.sent();
295
+ return [
296
+ 2,
297
+ afterRender(renderResult1, saveHtmlIntoCache)
298
+ ];
299
+ case 5:
300
+ if (cacheFile.isStale) {
301
+ render = withCoalescedInvoke(function() {
302
+ return renderFn(context);
303
+ }).bind(null, namespaceHash("render", cacheFile.hash), []);
304
+ render().then(function() {
305
+ var _ref2 = _async_to_generator(function(res) {
306
+ var cacheConfig;
307
+ return __generator(this, function(_state2) {
308
+ if (res.value && res.isOrigin) {
309
+ cacheConfig = context.cacheConfig;
310
+ if (cacheConfig) {
311
+ afterRender(res.value, function() {
312
+ var _ref3 = _async_to_generator(function(html) {
313
+ return __generator(this, function(_state3) {
314
+ sprCache.set(cacheContext, html, cacheConfig);
315
+ return [
316
+ 2
317
+ ];
318
+ });
319
+ });
320
+ return function(html) {
321
+ return _ref3.apply(this, arguments);
322
+ };
323
+ }());
324
+ } else {
325
+ sprCache.del(cacheContext, cacheHash);
326
+ }
327
+ }
328
+ return [
329
+ 2
330
+ ];
331
+ });
243
332
  });
244
- return _saveHtmlIntoCache.apply(this, arguments);
333
+ return function(res) {
334
+ return _ref2.apply(this, arguments);
335
+ };
336
+ }()).catch(function(e) {
337
+ sprCache.del(cacheContext, cacheHash);
338
+ ctx.error(ERROR_DIGEST.ERENDER, e);
339
+ });
245
340
  }
246
- return __generator(this, function(_state) {
247
- switch(_state.label){
248
- case 0:
249
- cacheContext = _objectSpread({
250
- entry: context.entryName
251
- }, context.request);
252
- return [
253
- 4,
254
- sprCache.get(cacheContext)
255
- ];
256
- case 1:
257
- cacheFile = _state.sent();
258
- if (!!cacheFile) return [
259
- 3,
260
- 3
261
- ];
262
- return [
263
- 4,
264
- renderFn(context)
265
- ];
266
- case 2:
267
- renderResult = _state.sent();
268
- return [
269
- 2,
270
- afterRender(renderResult, saveHtmlIntoCache)
271
- ];
272
- case 3:
273
- cacheHash = cacheFile === null || cacheFile === void 0 ? void 0 : cacheFile.hash;
274
- if (!cacheFile.isGarbage) return [
275
- 3,
276
- 5
277
- ];
278
- return [
279
- 4,
280
- renderFn(context)
281
- ];
282
- case 4:
283
- renderResult1 = _state.sent();
284
- return [
285
- 2,
286
- afterRender(renderResult1, saveHtmlIntoCache)
287
- ];
288
- case 5:
289
- if (cacheFile.isStale) {
290
- render = withCoalescedInvoke(function() {
291
- return renderFn(context);
292
- }).bind(null, namespaceHash("render", cacheFile.hash), []);
293
- render().then(function() {
294
- var _ref = _asyncToGenerator(function(res) {
295
- var cacheConfig;
296
- return __generator(this, function(_state) {
297
- if (res.value && res.isOrigin) {
298
- cacheConfig = context.cacheConfig;
299
- if (cacheConfig) {
300
- afterRender(res.value, function() {
301
- var _ref = _asyncToGenerator(function(html) {
302
- return __generator(this, function(_state) {
303
- sprCache.set(cacheContext, html, cacheConfig);
304
- return [
305
- 2
306
- ];
307
- });
308
- });
309
- return function(html) {
310
- return _ref.apply(this, arguments);
311
- };
312
- }());
313
- } else {
314
- sprCache.del(cacheContext, cacheHash);
315
- }
316
- }
317
- return [
318
- 2
319
- ];
320
- });
321
- });
322
- return function(res) {
323
- return _ref.apply(this, arguments);
324
- };
325
- }()).catch(function(e) {
326
- sprCache.del(cacheContext, cacheHash);
327
- ctx.error(ERROR_DIGEST.ERENDER, e);
328
- });
329
- }
330
- _state.label = 6;
331
- case 6:
332
- ctx.res.setHeader("x-modern-spr", "1");
333
- return [
334
- 2,
335
- cacheFile.content
336
- ];
337
- }
338
- });
339
- });
340
- return function doRender(context) {
341
- return _ref.apply(this, arguments);
342
- };
343
- }();
344
- return doRender;
345
- };
346
- export { cache_default as default };
341
+ _state.label = 6;
342
+ case 6:
343
+ ctx.res.setHeader("x-modern-spr", "1");
344
+ return [
345
+ 2,
346
+ cacheFile.content
347
+ ];
348
+ }
349
+ });
350
+ });
351
+ return function doRender2(context) {
352
+ return _ref.apply(this, arguments);
353
+ };
354
+ }();
355
+ return doRender;
356
+ }
357
+ ;