@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,158 +1,168 @@
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 _classCallCheck(instance, Constructor) {
31
- if (!(instance instanceof Constructor)) {
32
- throw new TypeError("Cannot call a class as a function");
33
- }
30
+ function _class_call_check(instance, Constructor) {
31
+ if (!(instance instanceof Constructor)) {
32
+ throw new TypeError("Cannot call a class as a function");
33
+ }
34
34
  }
35
35
  function _defineProperties(target, props) {
36
- for(var i = 0; i < props.length; i++){
37
- var descriptor = props[i];
38
- descriptor.enumerable = descriptor.enumerable || false;
39
- descriptor.configurable = true;
40
- if ("value" in descriptor) descriptor.writable = true;
41
- Object.defineProperty(target, descriptor.key, descriptor);
42
- }
36
+ for (var i = 0; i < props.length; i++) {
37
+ var descriptor = props[i];
38
+ descriptor.enumerable = descriptor.enumerable || false;
39
+ descriptor.configurable = true;
40
+ if ("value" in descriptor)
41
+ descriptor.writable = true;
42
+ Object.defineProperty(target, descriptor.key, descriptor);
43
+ }
43
44
  }
44
- function _createClass(Constructor, protoProps, staticProps) {
45
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
46
- if (staticProps) _defineProperties(Constructor, staticProps);
47
- return Constructor;
45
+ function _create_class(Constructor, protoProps, staticProps) {
46
+ if (protoProps)
47
+ _defineProperties(Constructor.prototype, protoProps);
48
+ if (staticProps)
49
+ _defineProperties(Constructor, staticProps);
50
+ return Constructor;
48
51
  }
49
- function _defineProperty(obj, key, value) {
50
- if (key in obj) {
51
- Object.defineProperty(obj, key, {
52
- value: value,
53
- enumerable: true,
54
- configurable: true,
55
- writable: true
56
- });
57
- } else {
58
- obj[key] = value;
59
- }
60
- return obj;
52
+ function _define_property(obj, key, value) {
53
+ if (key in obj) {
54
+ Object.defineProperty(obj, key, {
55
+ value,
56
+ enumerable: true,
57
+ configurable: true,
58
+ writable: true
59
+ });
60
+ } else {
61
+ obj[key] = value;
62
+ }
63
+ return obj;
61
64
  }
62
- var __generator = this && this.__generator || function(thisArg, body) {
63
- var f, y, t, g, _ = {
64
- label: 0,
65
- sent: function() {
66
- if (t[0] & 1) throw t[1];
67
- return t[1];
68
- },
69
- trys: [],
70
- ops: []
65
+ var __generator = function(thisArg, body) {
66
+ var f, y, t, g, _ = {
67
+ label: 0,
68
+ sent: function() {
69
+ if (t[0] & 1)
70
+ throw t[1];
71
+ return t[1];
72
+ },
73
+ trys: [],
74
+ ops: []
75
+ };
76
+ return g = {
77
+ next: verb(0),
78
+ "throw": verb(1),
79
+ "return": verb(2)
80
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
81
+ return this;
82
+ }), g;
83
+ function verb(n) {
84
+ return function(v) {
85
+ return step([
86
+ n,
87
+ v
88
+ ]);
71
89
  };
72
- return(g = {
73
- next: verb(0),
74
- "throw": verb(1),
75
- "return": verb(2)
76
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
77
- return this;
78
- }), g);
79
- function verb(n) {
80
- return function(v) {
81
- return step([
82
- n,
83
- v
84
- ]);
85
- };
86
- }
87
- function step(op) {
88
- if (f) throw new TypeError("Generator is already executing.");
89
- while(_)try {
90
- 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;
91
- if (y = 0, t) op = [
92
- op[0] & 2,
93
- t.value
94
- ];
95
- switch(op[0]){
96
- case 0:
97
- case 1:
98
- t = op;
99
- break;
100
- case 4:
101
- _.label++;
102
- return {
103
- value: op[1],
104
- done: false
105
- };
106
- case 5:
107
- _.label++;
108
- y = op[1];
109
- op = [
110
- 0
111
- ];
112
- continue;
113
- case 7:
114
- op = _.ops.pop();
115
- _.trys.pop();
116
- continue;
117
- default:
118
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
119
- _ = 0;
120
- continue;
121
- }
122
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
123
- _.label = op[1];
124
- break;
125
- }
126
- if (op[0] === 6 && _.label < t[1]) {
127
- _.label = t[1];
128
- t = op;
129
- break;
130
- }
131
- if (t && _.label < t[2]) {
132
- _.label = t[2];
133
- _.ops.push(op);
134
- break;
135
- }
136
- if (t[2]) _.ops.pop();
137
- _.trys.pop();
138
- continue;
139
- }
140
- op = body.call(thisArg, _);
141
- } catch (e) {
90
+ }
91
+ function step(op) {
92
+ if (f)
93
+ throw new TypeError("Generator is already executing.");
94
+ while (_)
95
+ try {
96
+ 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)
97
+ return t;
98
+ if (y = 0, t)
99
+ op = [
100
+ op[0] & 2,
101
+ t.value
102
+ ];
103
+ switch (op[0]) {
104
+ case 0:
105
+ case 1:
106
+ t = op;
107
+ break;
108
+ case 4:
109
+ _.label++;
110
+ return {
111
+ value: op[1],
112
+ done: false
113
+ };
114
+ case 5:
115
+ _.label++;
116
+ y = op[1];
142
117
  op = [
143
- 6,
144
- e
118
+ 0
145
119
  ];
146
- y = 0;
147
- } finally{
148
- f = t = 0;
120
+ continue;
121
+ case 7:
122
+ op = _.ops.pop();
123
+ _.trys.pop();
124
+ continue;
125
+ default:
126
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
127
+ _ = 0;
128
+ continue;
129
+ }
130
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
131
+ _.label = op[1];
132
+ break;
133
+ }
134
+ if (op[0] === 6 && _.label < t[1]) {
135
+ _.label = t[1];
136
+ t = op;
137
+ break;
138
+ }
139
+ if (t && _.label < t[2]) {
140
+ _.label = t[2];
141
+ _.ops.push(op);
142
+ break;
143
+ }
144
+ if (t[2])
145
+ _.ops.pop();
146
+ _.trys.pop();
147
+ continue;
149
148
  }
150
- if (op[0] & 5) throw op[1];
151
- return {
152
- value: op[0] ? op[1] : void 0,
153
- done: true
154
- };
155
- }
149
+ op = body.call(thisArg, _);
150
+ } catch (e) {
151
+ op = [
152
+ 6,
153
+ e
154
+ ];
155
+ y = 0;
156
+ } finally {
157
+ f = t = 0;
158
+ }
159
+ if (op[0] & 5)
160
+ throw op[1];
161
+ return {
162
+ value: op[0] ? op[1] : void 0,
163
+ done: true
164
+ };
165
+ }
156
166
  };
157
167
  import { fs } from "@modern-js/utils";
158
168
  import LRU from "lru-cache";
@@ -160,180 +170,181 @@ var Byte = 1;
160
170
  var KB = 1024 * Byte;
161
171
  var MB = 1024 * KB;
162
172
  var getContentLength = function(cache) {
163
- return cache.content.length;
173
+ return cache.content.length;
164
174
  };
165
175
  var createCacheItem = function() {
166
- var _ref = _asyncToGenerator(function(filepath, mtime) {
167
- var content;
168
- return __generator(this, function(_state) {
169
- switch(_state.label){
170
- case 0:
171
- return [
172
- 4,
173
- fs.readFile(filepath)
174
- ];
175
- case 1:
176
- content = _state.sent();
177
- return [
178
- 2,
179
- {
180
- content: content,
181
- mtime: mtime
182
- }
183
- ];
176
+ var _ref = _async_to_generator(function(filepath, mtime) {
177
+ var content;
178
+ return __generator(this, function(_state) {
179
+ switch (_state.label) {
180
+ case 0:
181
+ return [
182
+ 4,
183
+ fs.readFile(filepath)
184
+ ];
185
+ case 1:
186
+ content = _state.sent();
187
+ return [
188
+ 2,
189
+ {
190
+ content,
191
+ mtime
184
192
  }
185
- });
193
+ ];
194
+ }
186
195
  });
187
- return function createCacheItem(filepath, mtime) {
188
- return _ref.apply(this, arguments);
189
- };
196
+ });
197
+ return function createCacheItem2(filepath, mtime) {
198
+ return _ref.apply(this, arguments);
199
+ };
190
200
  }();
191
- var LruReader = /*#__PURE__*/ function() {
192
- "use strict";
193
- function LruReader() {
194
- _classCallCheck(this, LruReader);
195
- _defineProperty(this, "cache", void 0);
196
- this.cache = new LRU({
197
- max: 256 * MB,
198
- length: getContentLength,
199
- maxAge: 5 * 60 * 5e3
200
- });
201
- }
202
- _createClass(LruReader, [
203
- {
204
- key: "init",
205
- value: function init() {}
206
- },
207
- {
208
- key: "close",
209
- value: function close() {}
210
- },
211
- {
212
- key: "read",
213
- value: function read(filepath) {
214
- var _this = this;
215
- return _asyncToGenerator(function() {
216
- var content, stat, item;
217
- return __generator(this, function(_state) {
218
- switch(_state.label){
219
- case 0:
220
- if (_this.cache.has(filepath)) {
221
- content = _this.cache.get(filepath).content;
222
- return [
223
- 2,
224
- {
225
- content: content
226
- }
227
- ];
228
- }
229
- if (!fs.existsSync(filepath)) {
230
- return [
231
- 2,
232
- null
233
- ];
234
- }
235
- stat = fs.statSync(filepath);
236
- if (stat.isDirectory()) {
237
- return [
238
- 2,
239
- null
240
- ];
241
- }
242
- if (stat.size > 20 * MB) {
243
- return [
244
- 2,
245
- null
246
- ];
247
- }
248
- return [
249
- 4,
250
- createCacheItem(filepath, stat.mtime)
251
- ];
252
- case 1:
253
- item = _state.sent();
254
- _this.cache.set(filepath, item);
255
- return [
256
- 2,
257
- item
258
- ];
259
- }
260
- });
261
- })();
262
- }
263
- },
264
- {
265
- key: "update",
266
- value: function update() {
267
- var cache = this.cache;
268
- var files = cache.keys();
269
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
270
- try {
271
- for(var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
272
- var filepath = _step.value;
273
- if (!fs.existsSync(filepath)) {
274
- cache.del(filepath);
275
- }
276
- try {
277
- var item = cache.get(filepath);
278
- var stat = fs.statSync(filepath);
279
- var mtime = stat.mtime;
280
- if (item.mtime < mtime) {
281
- cache.del(filepath);
282
- }
283
- } catch (e) {
284
- cache.del(filepath);
285
- }
286
- }
287
- } catch (err) {
288
- _didIteratorError = true;
289
- _iteratorError = err;
290
- } finally{
291
- try {
292
- if (!_iteratorNormalCompletion && _iterator.return != null) {
293
- _iterator.return();
294
- }
295
- } finally{
296
- if (_didIteratorError) {
297
- throw _iteratorError;
298
- }
201
+ export var LruReader = /* @__PURE__ */ function() {
202
+ "use strict";
203
+ function LruReader2() {
204
+ _class_call_check(this, LruReader2);
205
+ _define_property(this, "cache", void 0);
206
+ this.cache = new LRU({
207
+ max: 256 * MB,
208
+ length: getContentLength,
209
+ maxAge: 5 * 60 * 5e3
210
+ });
211
+ }
212
+ _create_class(LruReader2, [
213
+ {
214
+ key: "init",
215
+ value: function init2() {
216
+ }
217
+ },
218
+ {
219
+ key: "close",
220
+ value: function close2() {
221
+ }
222
+ },
223
+ {
224
+ key: "read",
225
+ value: function read(filepath) {
226
+ var _this = this;
227
+ return _async_to_generator(function() {
228
+ var content, stat, item;
229
+ return __generator(this, function(_state) {
230
+ switch (_state.label) {
231
+ case 0:
232
+ if (_this.cache.has(filepath)) {
233
+ content = _this.cache.get(filepath).content;
234
+ return [
235
+ 2,
236
+ {
237
+ content
299
238
  }
239
+ ];
240
+ }
241
+ if (!fs.existsSync(filepath)) {
242
+ return [
243
+ 2,
244
+ null
245
+ ];
300
246
  }
247
+ stat = fs.statSync(filepath);
248
+ if (stat.isDirectory()) {
249
+ return [
250
+ 2,
251
+ null
252
+ ];
253
+ }
254
+ if (stat.size > 20 * MB) {
255
+ return [
256
+ 2,
257
+ null
258
+ ];
259
+ }
260
+ return [
261
+ 4,
262
+ createCacheItem(filepath, stat.mtime)
263
+ ];
264
+ case 1:
265
+ item = _state.sent();
266
+ _this.cache.set(filepath, item);
267
+ return [
268
+ 2,
269
+ item
270
+ ];
271
+ }
272
+ });
273
+ })();
274
+ }
275
+ },
276
+ {
277
+ key: "update",
278
+ value: function update() {
279
+ var cache = this.cache;
280
+ var files = cache.keys();
281
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
282
+ try {
283
+ for (var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
284
+ var filepath = _step.value;
285
+ if (!fs.existsSync(filepath)) {
286
+ cache.del(filepath);
287
+ }
288
+ try {
289
+ var item = cache.get(filepath);
290
+ var stat = fs.statSync(filepath);
291
+ var mtime = stat.mtime;
292
+ if (item.mtime < mtime) {
293
+ cache.del(filepath);
294
+ }
295
+ } catch (e) {
296
+ cache.del(filepath);
297
+ }
298
+ }
299
+ } catch (err) {
300
+ _didIteratorError = true;
301
+ _iteratorError = err;
302
+ } finally {
303
+ try {
304
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
305
+ _iterator.return();
301
306
  }
307
+ } finally {
308
+ if (_didIteratorError) {
309
+ throw _iteratorError;
310
+ }
311
+ }
302
312
  }
303
- ]);
304
- return LruReader;
313
+ }
314
+ }
315
+ ]);
316
+ return LruReader2;
305
317
  }();
306
318
  var reader = new LruReader();
307
- var readFile = function() {
308
- var _ref = _asyncToGenerator(function(filepath) {
309
- var file;
310
- return __generator(this, function(_state) {
311
- switch(_state.label){
312
- case 0:
313
- return [
314
- 4,
315
- reader.read(filepath)
316
- ];
317
- case 1:
318
- file = _state.sent();
319
- return [
320
- 2,
321
- file === null || file === void 0 ? void 0 : file.content
322
- ];
323
- }
324
- });
319
+ export var readFile = function() {
320
+ var _ref = _async_to_generator(function(filepath) {
321
+ var file;
322
+ return __generator(this, function(_state) {
323
+ switch (_state.label) {
324
+ case 0:
325
+ return [
326
+ 4,
327
+ reader.read(filepath)
328
+ ];
329
+ case 1:
330
+ file = _state.sent();
331
+ return [
332
+ 2,
333
+ file === null || file === void 0 ? void 0 : file.content
334
+ ];
335
+ }
325
336
  });
326
- return function readFile(filepath) {
327
- return _ref.apply(this, arguments);
328
- };
337
+ });
338
+ return function readFile2(filepath) {
339
+ return _ref.apply(this, arguments);
340
+ };
329
341
  }();
330
- var updateFile = function() {
331
- reader.update();
342
+ export var updateFile = function() {
343
+ reader.update();
332
344
  };
333
- var init = function() {
334
- reader.init();
345
+ export var init = function() {
346
+ reader.init();
335
347
  };
336
- var close = function() {
337
- reader.close();
348
+ export var close = function() {
349
+ reader.close();
338
350
  };
339
- export { LruReader, close, init, readFile, updateFile };