@modern-js/prod-server 2.0.0-beta.3 → 2.0.0-beta.4

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 (130) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/js/modern/constants.js +32 -25
  3. package/dist/js/modern/index.js +11 -6
  4. package/dist/js/modern/libs/context/context.js +52 -84
  5. package/dist/js/modern/libs/context/index.js +5 -2
  6. package/dist/js/modern/libs/hook-api/index.js +42 -35
  7. package/dist/js/modern/libs/hook-api/route.js +6 -7
  8. package/dist/js/modern/libs/hook-api/template.js +20 -34
  9. package/dist/js/modern/libs/loadConfig.js +45 -24
  10. package/dist/js/modern/libs/metrics.js +3 -4
  11. package/dist/js/modern/libs/proxy.js +68 -37
  12. package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +112 -67
  13. package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +246 -216
  14. package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +43 -49
  15. package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +36 -34
  16. package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +83 -113
  17. package/dist/js/modern/libs/render/cache/index.js +88 -54
  18. package/dist/js/modern/libs/render/cache/page-caches/index.js +31 -8
  19. package/dist/js/modern/libs/render/cache/page-caches/lru.js +6 -6
  20. package/dist/js/modern/libs/render/cache/spr.js +133 -117
  21. package/dist/js/modern/libs/render/cache/type.js +0 -1
  22. package/dist/js/modern/libs/render/cache/util.js +71 -39
  23. package/dist/js/modern/libs/render/index.js +76 -56
  24. package/dist/js/modern/libs/render/measure.js +38 -27
  25. package/dist/js/modern/libs/render/reader.js +65 -62
  26. package/dist/js/modern/libs/render/ssr.js +50 -32
  27. package/dist/js/modern/libs/render/static.js +50 -33
  28. package/dist/js/modern/libs/render/type.js +9 -6
  29. package/dist/js/modern/libs/route/index.js +8 -15
  30. package/dist/js/modern/libs/route/matcher.js +20 -34
  31. package/dist/js/modern/libs/route/route.js +9 -18
  32. package/dist/js/modern/libs/serve-file.js +33 -20
  33. package/dist/js/modern/server/index.js +144 -145
  34. package/dist/js/modern/server/modern-server-split.js +46 -12
  35. package/dist/js/modern/server/modern-server.js +377 -417
  36. package/dist/js/modern/type.js +0 -1
  37. package/dist/js/modern/utils.js +62 -43
  38. package/dist/js/modern/worker-server.js +34 -14
  39. package/dist/js/node/constants.js +45 -30
  40. package/dist/js/node/index.js +31 -57
  41. package/dist/js/node/libs/context/context.js +79 -94
  42. package/dist/js/node/libs/context/index.js +23 -13
  43. package/dist/js/node/libs/hook-api/index.js +69 -48
  44. package/dist/js/node/libs/hook-api/route.js +22 -11
  45. package/dist/js/node/libs/hook-api/template.js +36 -39
  46. package/dist/js/node/libs/loadConfig.js +69 -35
  47. package/dist/js/node/libs/metrics.js +21 -9
  48. package/dist/js/node/libs/proxy.js +86 -44
  49. package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +132 -70
  50. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +268 -218
  51. package/dist/js/node/libs/render/cache/__tests__/cacheable.js +61 -55
  52. package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +54 -40
  53. package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +101 -119
  54. package/dist/js/node/libs/render/cache/index.js +110 -64
  55. package/dist/js/node/libs/render/cache/page-caches/index.js +50 -14
  56. package/dist/js/node/libs/render/cache/page-caches/lru.js +29 -12
  57. package/dist/js/node/libs/render/cache/spr.js +156 -129
  58. package/dist/js/node/libs/render/cache/type.js +0 -5
  59. package/dist/js/node/libs/render/cache/util.js +88 -45
  60. package/dist/js/node/libs/render/index.js +102 -67
  61. package/dist/js/node/libs/render/measure.js +55 -31
  62. package/dist/js/node/libs/render/reader.js +87 -70
  63. package/dist/js/node/libs/render/ssr.js +76 -47
  64. package/dist/js/node/libs/render/static.js +75 -40
  65. package/dist/js/node/libs/render/type.js +27 -12
  66. package/dist/js/node/libs/route/index.js +26 -26
  67. package/dist/js/node/libs/route/matcher.js +36 -41
  68. package/dist/js/node/libs/route/route.js +25 -22
  69. package/dist/js/node/libs/serve-file.js +61 -32
  70. package/dist/js/node/server/index.js +160 -160
  71. package/dist/js/node/server/modern-server-split.js +68 -22
  72. package/dist/js/node/server/modern-server.js +395 -441
  73. package/dist/js/node/type.js +0 -3
  74. package/dist/js/node/utils.js +74 -52
  75. package/dist/js/node/worker-server.js +53 -21
  76. package/dist/js/treeshaking/constants.js +26 -25
  77. package/dist/js/treeshaking/index.js +10 -10
  78. package/dist/js/treeshaking/libs/context/context.js +268 -237
  79. package/dist/js/treeshaking/libs/context/index.js +3 -3
  80. package/dist/js/treeshaking/libs/hook-api/index.js +265 -143
  81. package/dist/js/treeshaking/libs/hook-api/route.js +65 -30
  82. package/dist/js/treeshaking/libs/hook-api/template.js +121 -85
  83. package/dist/js/treeshaking/libs/loadConfig.js +80 -37
  84. package/dist/js/treeshaking/libs/metrics.js +4 -10
  85. package/dist/js/treeshaking/libs/proxy.js +240 -76
  86. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.fun.test.js +288 -121
  87. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.test.js +772 -455
  88. package/dist/js/treeshaking/libs/render/cache/__tests__/cacheable.js +65 -51
  89. package/dist/js/treeshaking/libs/render/cache/__tests__/error-configuration.js +45 -35
  90. package/dist/js/treeshaking/libs/render/cache/__tests__/matched-cache.js +144 -118
  91. package/dist/js/treeshaking/libs/render/cache/index.js +337 -175
  92. package/dist/js/treeshaking/libs/render/cache/page-caches/index.js +151 -27
  93. package/dist/js/treeshaking/libs/render/cache/page-caches/lru.js +80 -42
  94. package/dist/js/treeshaking/libs/render/cache/spr.js +470 -340
  95. package/dist/js/treeshaking/libs/render/cache/type.js +1 -1
  96. package/dist/js/treeshaking/libs/render/cache/util.js +271 -92
  97. package/dist/js/treeshaking/libs/render/index.js +228 -95
  98. package/dist/js/treeshaking/libs/render/measure.js +142 -57
  99. package/dist/js/treeshaking/libs/render/reader.js +325 -177
  100. package/dist/js/treeshaking/libs/render/ssr.js +220 -95
  101. package/dist/js/treeshaking/libs/render/static.js +210 -78
  102. package/dist/js/treeshaking/libs/render/type.js +7 -6
  103. package/dist/js/treeshaking/libs/route/index.js +125 -89
  104. package/dist/js/treeshaking/libs/route/matcher.js +132 -107
  105. package/dist/js/treeshaking/libs/route/route.js +40 -26
  106. package/dist/js/treeshaking/libs/serve-file.js +177 -68
  107. package/dist/js/treeshaking/server/index.js +468 -327
  108. package/dist/js/treeshaking/server/modern-server-split.js +352 -144
  109. package/dist/js/treeshaking/server/modern-server.js +1046 -909
  110. package/dist/js/treeshaking/type.js +1 -1
  111. package/dist/js/treeshaking/utils.js +138 -81
  112. package/dist/js/treeshaking/worker-server.js +176 -55
  113. package/dist/types/index.d.ts +2 -0
  114. package/dist/types/libs/context/context.d.ts +4 -1
  115. package/dist/types/libs/loadConfig.d.ts +1 -0
  116. package/dist/types/libs/render/cache/index.d.ts +2 -0
  117. package/dist/types/libs/render/cache/spr.d.ts +2 -0
  118. package/dist/types/libs/route/route.d.ts +0 -1
  119. package/dist/types/server/index.d.ts +3 -0
  120. package/dist/types/utils.d.ts +1 -1
  121. package/dist/types/worker-server.d.ts +1 -2
  122. package/package.json +7 -14
  123. package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
  124. package/dist/js/modern/libs/render/modern/index.js +0 -37
  125. package/dist/js/node/libs/render/modern/browser-list.js +0 -14
  126. package/dist/js/node/libs/render/modern/index.js +0 -46
  127. package/dist/js/treeshaking/libs/render/modern/browser-list.js +0 -7
  128. package/dist/js/treeshaking/libs/render/modern/index.js +0 -39
  129. package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
  130. package/dist/types/libs/render/modern/index.d.ts +0 -3
@@ -1,100 +1,233 @@
1
- import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
- import path from 'path';
4
- import { fs, mime } from '@modern-js/utils';
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
+ }
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
+ };
29
+ }
30
+ var __generator = this && this.__generator || function(thisArg, body) {
31
+ var f, y, t, g, _ = {
32
+ label: 0,
33
+ sent: function() {
34
+ if (t[0] & 1) throw t[1];
35
+ return t[1];
36
+ },
37
+ trys: [],
38
+ ops: []
39
+ };
40
+ return(g = {
41
+ next: verb(0),
42
+ "throw": verb(1),
43
+ "return": verb(2)
44
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
45
+ return this;
46
+ }), g);
47
+ function verb(n) {
48
+ return function(v) {
49
+ return step([
50
+ n,
51
+ v
52
+ ]);
53
+ };
54
+ }
55
+ function step(op) {
56
+ if (f) throw new TypeError("Generator is already executing.");
57
+ while(_)try {
58
+ 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;
59
+ if (y = 0, t) op = [
60
+ op[0] & 2,
61
+ t.value
62
+ ];
63
+ switch(op[0]){
64
+ case 0:
65
+ case 1:
66
+ t = op;
67
+ break;
68
+ case 4:
69
+ _.label++;
70
+ return {
71
+ value: op[1],
72
+ done: false
73
+ };
74
+ case 5:
75
+ _.label++;
76
+ y = op[1];
77
+ op = [
78
+ 0
79
+ ];
80
+ continue;
81
+ case 7:
82
+ op = _.ops.pop();
83
+ _.trys.pop();
84
+ continue;
85
+ default:
86
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
87
+ _ = 0;
88
+ continue;
89
+ }
90
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
91
+ _.label = op[1];
92
+ break;
93
+ }
94
+ if (op[0] === 6 && _.label < t[1]) {
95
+ _.label = t[1];
96
+ t = op;
97
+ break;
98
+ }
99
+ if (t && _.label < t[2]) {
100
+ _.label = t[2];
101
+ _.ops.push(op);
102
+ break;
103
+ }
104
+ if (t[2]) _.ops.pop();
105
+ _.trys.pop();
106
+ continue;
107
+ }
108
+ op = body.call(thisArg, _);
109
+ } catch (e) {
110
+ op = [
111
+ 6,
112
+ e
113
+ ];
114
+ y = 0;
115
+ } finally{
116
+ f = t = 0;
117
+ }
118
+ if (op[0] & 5) throw op[1];
119
+ return {
120
+ value: op[0] ? op[1] : void 0,
121
+ done: true
122
+ };
123
+ }
124
+ };
125
+ import path from "path";
126
+ import { fs, mime } from "@modern-js/utils";
5
127
  import { ERROR_DIGEST } from "../../constants";
6
128
  import { handleDirectory } from "./static";
7
129
  import { readFile } from "./reader";
8
130
  import * as ssr from "./ssr";
9
- import { supportModern, getModernEntry } from "./modern";
10
- export var createRenderHandler = function createRenderHandler(_ref) {
11
- var distDir = _ref.distDir,
12
- staticGenerate = _ref.staticGenerate;
13
- return /*#__PURE__*/function () {
14
- var _render = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
15
- var ctx, route, runner, entryPath, urlPath, entry, result, modernEntry, useModern, templatePath, content, _result;
16
- return _regeneratorRuntime().wrap(function _callee$(_context) {
17
- while (1) {
18
- switch (_context.prev = _context.next) {
19
- case 0:
20
- ctx = _ref2.ctx, route = _ref2.route, runner = _ref2.runner;
21
- if (!ctx.resHasHandled()) {
22
- _context.next = 3;
23
- break;
24
- }
25
- return _context.abrupt("return", null);
26
- case 3:
27
- entryPath = route.entryPath, urlPath = route.urlPath;
28
- entry = path.join(distDir, entryPath);
29
- if (route.isSPA) {
30
- _context.next = 10;
31
- break;
32
- }
33
- _context.next = 8;
34
- return handleDirectory(ctx, entry, urlPath);
35
- case 8:
36
- result = _context.sent;
37
- return _context.abrupt("return", result);
38
- case 10:
39
- // only spa can use es6-html
40
- modernEntry = getModernEntry(entry);
41
- useModern =
42
- // route.enableModernMode &&
43
- supportModern(ctx) && fs.existsSync(modernEntry);
44
- templatePath = useModern ? modernEntry : entry;
45
- if (fs.existsSync(templatePath)) {
46
- _context.next = 15;
47
- break;
48
- }
49
- throw new Error("Could not find template file: ".concat(templatePath));
50
- case 15:
51
- _context.next = 17;
52
- return readFile(templatePath);
53
- case 17:
54
- content = _context.sent;
55
- if (content) {
56
- _context.next = 20;
57
- break;
58
- }
59
- return _context.abrupt("return", null);
60
- case 20:
61
- if (!route.isSSR) {
62
- _context.next = 32;
63
- break;
64
- }
65
- _context.prev = 21;
66
- _context.next = 24;
67
- return ssr.render(ctx, {
68
- distDir: distDir,
69
- entryName: route.entryName,
70
- urlPath: route.urlPath,
71
- bundle: route.bundle,
72
- template: content.toString(),
73
- staticGenerate: staticGenerate
74
- }, runner);
75
- case 24:
76
- _result = _context.sent;
77
- return _context.abrupt("return", _result);
78
- case 28:
79
- _context.prev = 28;
80
- _context.t0 = _context["catch"](21);
81
- ctx.error(ERROR_DIGEST.ERENDER, _context.t0.stack || _context.t0.message);
82
- ctx.res.setHeader('x-modern-ssr-fallback', '1');
83
- case 32:
84
- return _context.abrupt("return", {
85
- content: content,
86
- contentType: mime.contentType(path.extname(templatePath))
87
- });
88
- case 33:
89
- case "end":
90
- return _context.stop();
91
- }
131
+ var createRenderHandler = function(param) {
132
+ var distDir = param.distDir, staticGenerate = param.staticGenerate;
133
+ return function() {
134
+ var _render = _asyncToGenerator(function(param) {
135
+ var ctx, route, runner, entryPath, urlPath, entry, result, templatePath, content, result1, err;
136
+ return __generator(this, function(_state) {
137
+ switch(_state.label){
138
+ case 0:
139
+ ctx = param.ctx, route = param.route, runner = param.runner;
140
+ if (ctx.resHasHandled()) {
141
+ return [
142
+ 2,
143
+ null
144
+ ];
145
+ }
146
+ entryPath = route.entryPath, urlPath = route.urlPath;
147
+ entry = path.join(distDir, entryPath);
148
+ if (!!route.isSPA) return [
149
+ 3,
150
+ 2
151
+ ];
152
+ return [
153
+ 4,
154
+ handleDirectory(ctx, entry, urlPath)
155
+ ];
156
+ case 1:
157
+ result = _state.sent();
158
+ return [
159
+ 2,
160
+ result
161
+ ];
162
+ case 2:
163
+ templatePath = entry;
164
+ if (!fs.existsSync(templatePath)) {
165
+ throw new Error("Could not find template file: ".concat(templatePath));
166
+ }
167
+ return [
168
+ 4,
169
+ readFile(templatePath)
170
+ ];
171
+ case 3:
172
+ content = _state.sent();
173
+ if (!content) {
174
+ return [
175
+ 2,
176
+ null
177
+ ];
178
+ }
179
+ if (!route.isSSR) return [
180
+ 3,
181
+ 7
182
+ ];
183
+ _state.label = 4;
184
+ case 4:
185
+ _state.trys.push([
186
+ 4,
187
+ 6,
188
+ ,
189
+ 7
190
+ ]);
191
+ return [
192
+ 4,
193
+ ssr.render(ctx, {
194
+ distDir: distDir,
195
+ entryName: route.entryName,
196
+ urlPath: route.urlPath,
197
+ bundle: route.bundle,
198
+ template: content.toString(),
199
+ staticGenerate: staticGenerate
200
+ }, runner)
201
+ ];
202
+ case 5:
203
+ result1 = _state.sent();
204
+ return [
205
+ 2,
206
+ result1
207
+ ];
208
+ case 6:
209
+ err = _state.sent();
210
+ ctx.error(ERROR_DIGEST.ERENDER, err.stack || err.message);
211
+ ctx.res.setHeader("x-modern-ssr-fallback", "1");
212
+ return [
213
+ 3,
214
+ 7
215
+ ];
216
+ case 7:
217
+ return [
218
+ 2,
219
+ {
220
+ content: content,
221
+ contentType: mime.contentType(path.extname(templatePath))
222
+ }
223
+ ];
224
+ }
225
+ });
226
+ });
227
+ function render(_) {
228
+ return _render.apply(this, arguments);
92
229
  }
93
- }, _callee, null, [[21, 28]]);
94
- }));
95
- function render(_x) {
96
- return _render.apply(this, arguments);
97
- }
98
- return render;
99
- }();
100
- };
230
+ return render;
231
+ }();
232
+ };
233
+ export { createRenderHandler };
@@ -1,61 +1,146 @@
1
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
- /* eslint-disable no-param-reassign */
3
-
4
- import { headersWithoutCookie } from "../../utils";
5
- export var createMetrics = function createMetrics(context, metrics) {
6
- var entry = context.entryName,
7
- request = context.request;
8
- var _ref = request || {},
9
- _ref$pathname = _ref.pathname,
10
- pathname = _ref$pathname === void 0 ? '' : _ref$pathname;
11
- var emitTimer = function emitTimer(name, cost) {
12
- var tags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
13
- metrics.emitTimer(name, cost, _objectSpread(_objectSpread({}, tags), {}, {
14
- pathname: pathname,
15
- entry: entry
16
- }));
17
- };
18
- var emitCounter = function emitCounter(name, counter) {
19
- var tags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
20
- metrics.emitCounter(name, counter, _objectSpread(_objectSpread({}, tags), {}, {
21
- pathname: pathname,
22
- entry: entry
23
- }));
24
- };
25
- return {
26
- emitTimer: emitTimer,
27
- emitCounter: emitCounter
28
- };
29
- };
30
- export var createLogger = function createLogger(serverContext, logger) {
31
- var request = serverContext.request || {};
32
- var _request$headers = request.headers,
33
- headers = _request$headers === void 0 ? {} : _request$headers,
34
- _request$pathname = request.pathname,
35
- pathname = _request$pathname === void 0 ? '' : _request$pathname;
36
- var debug = function debug(message) {
37
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
38
- args[_key - 1] = arguments[_key];
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 _arrayWithoutHoles(arr) {
7
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
8
+ }
9
+ function _defineProperty(obj, key, value) {
10
+ if (key in obj) {
11
+ Object.defineProperty(obj, key, {
12
+ value: value,
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true
16
+ });
17
+ } else {
18
+ obj[key] = value;
19
+ }
20
+ return obj;
21
+ }
22
+ function _instanceof(left, right) {
23
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
24
+ return !!right[Symbol.hasInstance](left);
25
+ } else {
26
+ return left instanceof right;
39
27
  }
40
- logger.debug.apply(logger, ["SSR Debug - ".concat(message, ", req.url = %s")].concat(args, [pathname]));
41
- };
42
- var info = function info(message) {
43
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
44
- args[_key2 - 1] = arguments[_key2];
28
+ }
29
+ function _iterableToArray(iter) {
30
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
31
+ }
32
+ function _nonIterableSpread() {
33
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
34
+ }
35
+ function _objectSpread(target) {
36
+ for(var i = 1; i < arguments.length; i++){
37
+ var source = arguments[i] != null ? arguments[i] : {};
38
+ var ownKeys = Object.keys(source);
39
+ if (typeof Object.getOwnPropertySymbols === "function") {
40
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
41
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
42
+ }));
43
+ }
44
+ ownKeys.forEach(function(key) {
45
+ _defineProperty(target, key, source[key]);
46
+ });
45
47
  }
46
- logger.info.apply(logger, ["SSR Info - ".concat(message, ", req.url = %s")].concat(args, [pathname]));
47
- };
48
- var error = function error(message, e) {
49
- if (!e) {
50
- e = message;
51
- message = '';
48
+ return target;
49
+ }
50
+ function ownKeys(object, enumerableOnly) {
51
+ var keys = Object.keys(object);
52
+ if (Object.getOwnPropertySymbols) {
53
+ var symbols = Object.getOwnPropertySymbols(object);
54
+ if (enumerableOnly) {
55
+ symbols = symbols.filter(function(sym) {
56
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
57
+ });
58
+ }
59
+ keys.push.apply(keys, symbols);
52
60
  }
53
- logger.error("SSR Error - ".concat(message, ", error = %s, req.url = %s, req.headers = %o"), e instanceof Error ? e.stack || e.message : e, pathname, headersWithoutCookie(headers));
54
- };
55
- return {
56
- error: error,
57
- info: info,
58
- debug: debug
59
- };
61
+ return keys;
62
+ }
63
+ function _objectSpreadProps(target, source) {
64
+ source = source != null ? source : {};
65
+ if (Object.getOwnPropertyDescriptors) {
66
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
67
+ } else {
68
+ ownKeys(Object(source)).forEach(function(key) {
69
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
70
+ });
71
+ }
72
+ return target;
73
+ }
74
+ function _toConsumableArray(arr) {
75
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
76
+ }
77
+ function _unsupportedIterableToArray(o, minLen) {
78
+ if (!o) return;
79
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
80
+ var n = Object.prototype.toString.call(o).slice(8, -1);
81
+ if (n === "Object" && o.constructor) n = o.constructor.name;
82
+ if (n === "Map" || n === "Set") return Array.from(n);
83
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
84
+ }
85
+ import { headersWithoutCookie } from "../../utils";
86
+ var createMetrics = function(context, metrics) {
87
+ var entry = context.entryName, request = context.request;
88
+ var ref = request || {}, _pathname = ref.pathname, pathname = _pathname === void 0 ? "" : _pathname;
89
+ var emitTimer = function(name, cost) {
90
+ var tags = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
91
+ metrics.emitTimer(name, cost, _objectSpreadProps(_objectSpread({}, tags), {
92
+ pathname: pathname,
93
+ entry: entry
94
+ }));
95
+ };
96
+ var emitCounter = function(name, counter) {
97
+ var tags = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
98
+ metrics.emitCounter(name, counter, _objectSpreadProps(_objectSpread({}, tags), {
99
+ pathname: pathname,
100
+ entry: entry
101
+ }));
102
+ };
103
+ return {
104
+ emitTimer: emitTimer,
105
+ emitCounter: emitCounter
106
+ };
107
+ };
108
+ var createLogger = function(serverContext, logger) {
109
+ var request = serverContext.request || {};
110
+ var _headers = request.headers, headers = _headers === void 0 ? {} : _headers, _pathname = request.pathname, pathname = _pathname === void 0 ? "" : _pathname;
111
+ var debug = function(message) {
112
+ for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
113
+ args[_key - 1] = arguments[_key];
114
+ }
115
+ var _logger;
116
+ (_logger = logger).debug.apply(_logger, [
117
+ "SSR Debug - ".concat(message, ", req.url = %s")
118
+ ].concat(_toConsumableArray(args), [
119
+ pathname
120
+ ]));
121
+ };
122
+ var info = function(message) {
123
+ for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
124
+ args[_key - 1] = arguments[_key];
125
+ }
126
+ var _logger;
127
+ (_logger = logger).info.apply(_logger, [
128
+ "SSR Info - ".concat(message, ", req.url = %s")
129
+ ].concat(_toConsumableArray(args), [
130
+ pathname
131
+ ]));
132
+ };
133
+ var error = function(message, e) {
134
+ if (!e) {
135
+ e = message;
136
+ message = "";
137
+ }
138
+ logger.error("SSR Error - ".concat(message, ", error = %s, req.url = %s, req.headers = %o"), _instanceof(e, Error) ? e.stack || e.message : e, pathname, headersWithoutCookie(headers));
139
+ };
140
+ return {
141
+ error: error,
142
+ info: info,
143
+ debug: debug
144
+ };
60
145
  };
61
- /* eslint-enable no-param-reassign */
146
+ export { createLogger, createMetrics };