@modern-js/prod-server 2.6.0 → 2.6.1-alpha.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 (141) hide show
  1. package/dist/cjs/index.js +2 -2
  2. package/dist/cjs/libs/{serve-file.js → serveFile.js} +3 -3
  3. package/dist/cjs/server/index.js +6 -4
  4. package/dist/cjs/server/{modern-server.js → modernServer.js} +8 -9
  5. package/dist/cjs/server/{modern-server-split.js → modernServerSplit.js} +8 -8
  6. package/dist/cjs/{worker-server.js → workerServer.js} +3 -3
  7. package/dist/esm/index.js +1 -1
  8. package/dist/esm/server/index.js +5 -3
  9. package/dist/esm/server/{modern-server.js → modernServer.js} +4 -5
  10. package/dist/esm/server/modernServerSplit.js +360 -0
  11. package/dist/esm-node/index.js +1 -1
  12. package/dist/esm-node/server/index.js +5 -3
  13. package/dist/esm-node/server/{modern-server.js → modernServer.js} +3 -4
  14. package/dist/esm-node/server/{modern-server-split.js → modernServerSplit.js} +1 -1
  15. package/dist/js/modern/constants.js +35 -0
  16. package/dist/js/modern/index.js +18 -0
  17. package/dist/js/modern/libs/context/context.js +160 -0
  18. package/dist/js/modern/libs/context/index.js +6 -0
  19. package/dist/js/modern/libs/hook-api/index.js +134 -0
  20. package/dist/js/modern/libs/hook-api/route.js +20 -0
  21. package/dist/js/modern/libs/hook-api/template.js +73 -0
  22. package/dist/js/modern/libs/loadConfig.js +62 -0
  23. package/dist/js/modern/libs/logger.js +111 -0
  24. package/dist/js/modern/libs/metrics.js +11 -0
  25. package/dist/js/modern/libs/proxy.js +92 -0
  26. package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +114 -0
  27. package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +254 -0
  28. package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +47 -0
  29. package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +37 -0
  30. package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +91 -0
  31. package/dist/js/modern/libs/render/cache/index.js +115 -0
  32. package/dist/js/modern/libs/render/cache/page-caches/index.js +32 -0
  33. package/dist/js/modern/libs/render/cache/page-caches/lru.js +29 -0
  34. package/dist/js/modern/libs/render/cache/spr.js +248 -0
  35. package/dist/js/modern/libs/render/cache/type.js +0 -0
  36. package/dist/js/modern/libs/render/cache/util.js +102 -0
  37. package/dist/js/modern/libs/render/index.js +86 -0
  38. package/dist/js/modern/libs/render/measure.js +68 -0
  39. package/dist/js/modern/libs/render/reader.js +107 -0
  40. package/dist/js/modern/libs/render/ssr.js +100 -0
  41. package/dist/js/modern/libs/render/static.js +60 -0
  42. package/dist/js/modern/libs/render/type.js +9 -0
  43. package/dist/js/modern/libs/route/index.js +54 -0
  44. package/dist/js/modern/libs/route/matcher.js +87 -0
  45. package/dist/js/modern/libs/route/route.js +16 -0
  46. package/dist/js/modern/libs/serve-file.js +67 -0
  47. package/dist/js/modern/server/index.js +208 -0
  48. package/dist/js/modern/server/modern-server-split.js +74 -0
  49. package/dist/js/modern/server/modern-server.js +554 -0
  50. package/dist/js/modern/type.js +0 -0
  51. package/dist/js/modern/utils.js +136 -0
  52. package/dist/js/modern/worker-server.js +89 -0
  53. package/dist/js/node/constants.js +62 -0
  54. package/dist/js/node/index.js +44 -0
  55. package/dist/js/node/libs/context/context.js +189 -0
  56. package/dist/js/node/libs/context/index.js +30 -0
  57. package/dist/js/node/libs/hook-api/index.js +164 -0
  58. package/dist/js/node/libs/hook-api/route.js +43 -0
  59. package/dist/js/node/libs/hook-api/template.js +97 -0
  60. package/dist/js/node/libs/loadConfig.js +91 -0
  61. package/dist/js/node/libs/logger.js +133 -0
  62. package/dist/js/node/libs/metrics.js +34 -0
  63. package/dist/js/node/libs/proxy.js +114 -0
  64. package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +115 -0
  65. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +245 -0
  66. package/dist/js/node/libs/render/cache/__tests__/cacheable.js +70 -0
  67. package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +60 -0
  68. package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +114 -0
  69. package/dist/js/node/libs/render/cache/index.js +134 -0
  70. package/dist/js/node/libs/render/cache/page-caches/index.js +55 -0
  71. package/dist/js/node/libs/render/cache/page-caches/lru.js +58 -0
  72. package/dist/js/node/libs/render/cache/spr.js +270 -0
  73. package/dist/js/node/libs/render/cache/type.js +15 -0
  74. package/dist/js/node/libs/render/cache/util.js +138 -0
  75. package/dist/js/node/libs/render/index.js +115 -0
  76. package/dist/js/node/libs/render/measure.js +90 -0
  77. package/dist/js/node/libs/render/reader.js +140 -0
  78. package/dist/js/node/libs/render/ssr.js +123 -0
  79. package/dist/js/node/libs/render/static.js +89 -0
  80. package/dist/js/node/libs/render/type.js +32 -0
  81. package/dist/js/node/libs/route/index.js +78 -0
  82. package/dist/js/node/libs/route/matcher.js +106 -0
  83. package/dist/js/node/libs/route/route.js +39 -0
  84. package/dist/js/node/libs/serve-file.js +97 -0
  85. package/dist/js/node/server/index.js +219 -0
  86. package/dist/js/node/server/modern-server-split.js +97 -0
  87. package/dist/js/node/server/modern-server.js +559 -0
  88. package/dist/js/node/type.js +15 -0
  89. package/dist/js/node/utils.js +166 -0
  90. package/dist/js/node/worker-server.js +113 -0
  91. package/dist/js/treeshaking/constants.js +29 -0
  92. package/dist/js/treeshaking/index.js +13 -0
  93. package/dist/js/treeshaking/libs/context/context.js +274 -0
  94. package/dist/js/treeshaking/libs/context/index.js +5 -0
  95. package/dist/js/treeshaking/libs/hook-api/index.js +281 -0
  96. package/dist/js/treeshaking/libs/hook-api/route.js +68 -0
  97. package/dist/js/treeshaking/libs/hook-api/template.js +127 -0
  98. package/dist/js/treeshaking/libs/loadConfig.js +82 -0
  99. package/dist/js/treeshaking/libs/logger.js +205 -0
  100. package/dist/js/treeshaking/libs/metrics.js +6 -0
  101. package/dist/js/treeshaking/libs/proxy.js +244 -0
  102. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.fun.test.js +291 -0
  103. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.test.js +781 -0
  104. package/dist/js/treeshaking/libs/render/cache/__tests__/cacheable.js +67 -0
  105. package/dist/js/treeshaking/libs/render/cache/__tests__/error-configuration.js +45 -0
  106. package/dist/js/treeshaking/libs/render/cache/__tests__/matched-cache.js +147 -0
  107. package/dist/js/treeshaking/libs/render/cache/index.js +346 -0
  108. package/dist/js/treeshaking/libs/render/cache/page-caches/index.js +154 -0
  109. package/dist/js/treeshaking/libs/render/cache/page-caches/lru.js +84 -0
  110. package/dist/js/treeshaking/libs/render/cache/spr.js +492 -0
  111. package/dist/js/treeshaking/libs/render/cache/type.js +1 -0
  112. package/dist/js/treeshaking/libs/render/cache/util.js +280 -0
  113. package/dist/js/treeshaking/libs/render/index.js +234 -0
  114. package/dist/js/treeshaking/libs/render/measure.js +146 -0
  115. package/dist/js/treeshaking/libs/render/reader.js +339 -0
  116. package/dist/js/treeshaking/libs/render/ssr.js +223 -0
  117. package/dist/js/treeshaking/libs/render/static.js +216 -0
  118. package/dist/js/treeshaking/libs/render/type.js +7 -0
  119. package/dist/js/treeshaking/libs/route/index.js +130 -0
  120. package/dist/js/treeshaking/libs/route/matcher.js +143 -0
  121. package/dist/js/treeshaking/libs/route/route.js +40 -0
  122. package/dist/js/treeshaking/libs/serve-file.js +184 -0
  123. package/dist/js/treeshaking/server/index.js +505 -0
  124. package/dist/js/treeshaking/server/modern-server.js +1089 -0
  125. package/dist/js/treeshaking/type.js +1 -0
  126. package/dist/js/treeshaking/utils.js +147 -0
  127. package/dist/js/treeshaking/worker-server.js +233 -0
  128. package/dist/types/index.d.ts +1 -1
  129. package/dist/types/libs/context/context.d.ts +1 -1
  130. package/dist/types/type.d.ts +8 -1
  131. package/dist/types/utils.d.ts +1 -1
  132. package/package.json +14 -14
  133. /package/dist/esm/libs/{serve-file.js → serveFile.js} +0 -0
  134. /package/dist/esm/{worker-server.js → workerServer.js} +0 -0
  135. /package/dist/esm-node/libs/{serve-file.js → serveFile.js} +0 -0
  136. /package/dist/esm-node/{worker-server.js → workerServer.js} +0 -0
  137. /package/dist/{esm → js/treeshaking}/server/modern-server-split.js +0 -0
  138. /package/dist/types/libs/{serve-file.d.ts → serveFile.d.ts} +0 -0
  139. /package/dist/types/server/{modern-server.d.ts → modernServer.d.ts} +0 -0
  140. /package/dist/types/server/{modern-server-split.d.ts → modernServerSplit.d.ts} +0 -0
  141. /package/dist/types/{worker-server.d.ts → workerServer.d.ts} +0 -0
@@ -0,0 +1,291 @@
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 asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
10
+ try {
11
+ var info = gen[key](arg);
12
+ var value = info.value;
13
+ } catch (error) {
14
+ reject(error);
15
+ return;
16
+ }
17
+ if (info.done) {
18
+ resolve(value);
19
+ } else {
20
+ Promise.resolve(value).then(_next, _throw);
21
+ }
22
+ }
23
+ function _asyncToGenerator(fn) {
24
+ return function() {
25
+ var self = this, args = arguments;
26
+ return new Promise(function(resolve, reject) {
27
+ var gen = fn.apply(self, args);
28
+ function _next(value) {
29
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
30
+ }
31
+ function _throw(err) {
32
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
33
+ }
34
+ _next(undefined);
35
+ });
36
+ };
37
+ }
38
+ function _iterableToArrayLimit(arr, i) {
39
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
40
+ if (_i == null) return;
41
+ var _arr = [];
42
+ var _n = true;
43
+ var _d = false;
44
+ var _s, _e;
45
+ try {
46
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
47
+ _arr.push(_s.value);
48
+ if (i && _arr.length === i) break;
49
+ }
50
+ } catch (err) {
51
+ _d = true;
52
+ _e = err;
53
+ } finally{
54
+ try {
55
+ if (!_n && _i["return"] != null) _i["return"]();
56
+ } finally{
57
+ if (_d) throw _e;
58
+ }
59
+ }
60
+ return _arr;
61
+ }
62
+ function _nonIterableRest() {
63
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
64
+ }
65
+ function _slicedToArray(arr, i) {
66
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
67
+ }
68
+ function _unsupportedIterableToArray(o, minLen) {
69
+ if (!o) return;
70
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
71
+ var n = Object.prototype.toString.call(o).slice(8, -1);
72
+ if (n === "Object" && o.constructor) n = o.constructor.name;
73
+ if (n === "Map" || n === "Set") return Array.from(n);
74
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
75
+ }
76
+ var __generator = this && this.__generator || function(thisArg, body) {
77
+ var f, y, t, g, _ = {
78
+ label: 0,
79
+ sent: function() {
80
+ if (t[0] & 1) throw t[1];
81
+ return t[1];
82
+ },
83
+ trys: [],
84
+ ops: []
85
+ };
86
+ return g = {
87
+ next: verb(0),
88
+ "throw": verb(1),
89
+ "return": verb(2)
90
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
91
+ return this;
92
+ }), g;
93
+ function verb(n) {
94
+ return function(v) {
95
+ return step([
96
+ n,
97
+ v
98
+ ]);
99
+ };
100
+ }
101
+ function step(op) {
102
+ if (f) throw new TypeError("Generator is already executing.");
103
+ while(_)try {
104
+ 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;
105
+ if (y = 0, t) op = [
106
+ op[0] & 2,
107
+ t.value
108
+ ];
109
+ switch(op[0]){
110
+ case 0:
111
+ case 1:
112
+ t = op;
113
+ break;
114
+ case 4:
115
+ _.label++;
116
+ return {
117
+ value: op[1],
118
+ done: false
119
+ };
120
+ case 5:
121
+ _.label++;
122
+ y = op[1];
123
+ op = [
124
+ 0
125
+ ];
126
+ continue;
127
+ case 7:
128
+ op = _.ops.pop();
129
+ _.trys.pop();
130
+ continue;
131
+ default:
132
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
133
+ _ = 0;
134
+ continue;
135
+ }
136
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
137
+ _.label = op[1];
138
+ break;
139
+ }
140
+ if (op[0] === 6 && _.label < t[1]) {
141
+ _.label = t[1];
142
+ t = op;
143
+ break;
144
+ }
145
+ if (t && _.label < t[2]) {
146
+ _.label = t[2];
147
+ _.ops.push(op);
148
+ break;
149
+ }
150
+ if (t[2]) _.ops.pop();
151
+ _.trys.pop();
152
+ continue;
153
+ }
154
+ op = body.call(thisArg, _);
155
+ } catch (e) {
156
+ op = [
157
+ 6,
158
+ e
159
+ ];
160
+ y = 0;
161
+ } finally{
162
+ f = t = 0;
163
+ }
164
+ if (op[0] & 5) throw op[1];
165
+ return {
166
+ value: op[0] ? op[1] : void 0,
167
+ done: true
168
+ };
169
+ }
170
+ };
171
+ import url from "url";
172
+ import { createCache, destroyCache } from "../spr";
173
+ import { cacheAddition, connectFactor, fname, maybeSync, namespaceHash, valueFactory, withCoalescedInvoke } from "../util";
174
+ describe("test spr util functions", function() {
175
+ it("should return value correctly", function() {
176
+ expect(connectFactor("bar", "foo")).toBe("bar-foo");
177
+ expect(fname(1)).toBe("f1");
178
+ expect(namespaceHash("modern", "!@#$%^&")).toBe("modern/!@#$%^&");
179
+ });
180
+ it("should create or destroy instance correctly", function() {
181
+ var ins1 = createCache();
182
+ var ins2 = createCache();
183
+ expect(ins1 === ins2).toBe(true);
184
+ destroyCache();
185
+ var ins3 = createCache();
186
+ expect(ins1 === ins3).toBe(false);
187
+ expect(ins2 === ins3).toBe(false);
188
+ });
189
+ it("should return function correctly", function() {
190
+ var urlParams = function() {
191
+ return new url.URLSearchParams();
192
+ }();
193
+ urlParams.set("name", "modern");
194
+ var getParam = valueFactory(urlParams);
195
+ expect(getParam("name")).toBe("modern");
196
+ var headers = {
197
+ age: "12345"
198
+ };
199
+ var getHeader = valueFactory(headers);
200
+ expect(getHeader("age")).toBe("12345");
201
+ });
202
+ it("should add target html content", function() {
203
+ var contentNoHead = "<div>123</div>";
204
+ var html = cacheAddition(contentNoHead, Math.random().toString());
205
+ expect(html).toBe(contentNoHead);
206
+ var contentWithHead = "<head></head><div>123</div>";
207
+ var hash = Math.random().toString();
208
+ var htmlWithHead = cacheAddition(contentWithHead, hash);
209
+ expect(htmlWithHead).toBe('<head><meta name="x-moden-spr" content="'.concat(hash, '"></head><div>123</div>'));
210
+ });
211
+ it("should only invoke func one time", /*#__PURE__*/ _asyncToGenerator(function() {
212
+ var index, fn, key, _ref, res1, res2;
213
+ return __generator(this, function(_state) {
214
+ switch(_state.label){
215
+ case 0:
216
+ index = 0;
217
+ fn = withCoalescedInvoke(/*#__PURE__*/ _asyncToGenerator(function() {
218
+ return __generator(this, function(_state) {
219
+ return [
220
+ 2,
221
+ new Promise(function(resolve) {
222
+ setTimeout(function() {
223
+ index += 1;
224
+ resolve(index);
225
+ }, 500);
226
+ })
227
+ ];
228
+ });
229
+ }));
230
+ key = "test";
231
+ return [
232
+ 4,
233
+ Promise.all([
234
+ fn(key, []),
235
+ fn(key, [])
236
+ ])
237
+ ];
238
+ case 1:
239
+ _ref = _slicedToArray.apply(void 0, [
240
+ _state.sent(),
241
+ 2
242
+ ]), res1 = _ref[0], res2 = _ref[1];
243
+ expect(res1.isOrigin && res2.isOrigin).toBe(false);
244
+ expect(res1.isOrigin || res2.isOrigin).toBe(true);
245
+ expect(res1.value).toBe(1);
246
+ expect(res2.value).toBe(1);
247
+ return [
248
+ 2
249
+ ];
250
+ }
251
+ });
252
+ }));
253
+ it("should invoke sync or async", /*#__PURE__*/ _asyncToGenerator(function() {
254
+ var foo, async, sync;
255
+ return __generator(this, function(_state) {
256
+ switch(_state.label){
257
+ case 0:
258
+ foo = "";
259
+ return [
260
+ 4,
261
+ maybeSync(function() {
262
+ return new Promise(function(resolve) {
263
+ setTimeout(function() {
264
+ resolve(foo);
265
+ }, 100);
266
+ });
267
+ })(false)
268
+ ];
269
+ case 1:
270
+ async = _state.sent();
271
+ expect(async).toBeUndefined();
272
+ return [
273
+ 4,
274
+ maybeSync(function() {
275
+ return new Promise(function(resolve) {
276
+ setTimeout(function() {
277
+ resolve(foo);
278
+ }, 100);
279
+ });
280
+ })(true)
281
+ ];
282
+ case 2:
283
+ sync = _state.sent();
284
+ expect(sync).toBe(foo);
285
+ return [
286
+ 2
287
+ ];
288
+ }
289
+ });
290
+ }));
291
+ });