@koeroesi86/node-worker-express 23.3.4419247067-main → 23.3.4508640840-main
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.
- package/dist/constants/index.d.ts +7 -0
- package/dist/fileExists-a913e146.js +11 -0
- package/dist/fileExists-a913e146.js.map +1 -0
- package/dist/index-749bd23e.js +47 -0
- package/dist/index-749bd23e.js.map +1 -0
- package/dist/index.js +136 -139
- package/dist/index.js.map +1 -1
- package/dist/middleware/index.d.ts +1 -16
- package/dist/staticWorker.js +121 -112
- package/dist/staticWorker.js.map +1 -1
- package/dist/types/index.d.ts +19 -1
- package/dist/utils/fileExists.d.ts +2 -0
- package/dist/utils/getCharset.d.ts +3 -0
- package/dist/utils/getContentType.d.ts +2 -0
- package/dist/utils/getEtag.d.ts +3 -0
- package/dist/utils/resolvePath.d.ts +9 -0
- package/dist/utils/workerPool.d.ts +15 -13
- package/dist/workerInvoke.js +3 -2
- package/dist/workerInvoke.js.map +1 -1
- package/package.json +1 -1
- package/dist/index-aad82b3f.js +0 -15
- package/dist/index-aad82b3f.js.map +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { MiddlewareOptions } from '../types';
|
|
1
2
|
export declare enum WORKER_EVENT {
|
|
2
3
|
REQUEST = "WORKER_REQUEST",
|
|
3
4
|
REQUEST_ACKNOWLEDGE = "WORKER_REQUEST_ACK",
|
|
@@ -9,3 +10,9 @@ export declare enum WORKER_EVENT {
|
|
|
9
10
|
WS_CONNECTION_CLOSE = "WS_CONNECTION_CLOSE",
|
|
10
11
|
WS_CONNECTION_CLOSE_ACKNOWLEDGE = "WS_CONNECTION_CLOSE_ACK"
|
|
11
12
|
}
|
|
13
|
+
export declare const ForbiddenPaths: readonly string[];
|
|
14
|
+
export declare enum Protocols {
|
|
15
|
+
http = "HTTP",
|
|
16
|
+
websocket = "WS"
|
|
17
|
+
}
|
|
18
|
+
export declare const DefaultOptions: MiddlewareOptions;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fs = require('fs/promises');
|
|
4
|
+
|
|
5
|
+
const fileExists = (fileName) => fs
|
|
6
|
+
.access(fileName, fs.constants.R_OK)
|
|
7
|
+
.then(() => true)
|
|
8
|
+
.catch(() => false);
|
|
9
|
+
|
|
10
|
+
exports.fileExists = fileExists;
|
|
11
|
+
//# sourceMappingURL=fileExists-a913e146.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileExists-a913e146.js","sources":["../src/utils/fileExists.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAEA,MAAM,UAAU,GAAG,CAAC,QAAgB,KAClC,EAAE;KACC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;AACnC,KAAA,IAAI,CAAC,MAAM,IAAI,CAAC;AAChB,KAAA,KAAK,CAAC,MAAM,KAAK;;;;"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var path = require('path');
|
|
4
|
+
|
|
5
|
+
exports.WORKER_EVENT = void 0;
|
|
6
|
+
(function (WORKER_EVENT) {
|
|
7
|
+
WORKER_EVENT["REQUEST"] = "WORKER_REQUEST";
|
|
8
|
+
WORKER_EVENT["REQUEST_ACKNOWLEDGE"] = "WORKER_REQUEST_ACK";
|
|
9
|
+
WORKER_EVENT["RESPONSE"] = "WORKER_RESPONSE";
|
|
10
|
+
WORKER_EVENT["RESPONSE_EMIT"] = "WORKER_RESPONSE_EMIT";
|
|
11
|
+
WORKER_EVENT["RESPONSE_ACKNOWLEDGE"] = "WORKER_RESPONSE_ACK";
|
|
12
|
+
WORKER_EVENT["WS_MESSAGE_RECEIVE"] = "WS_MESSAGE_RECEIVE";
|
|
13
|
+
WORKER_EVENT["WS_MESSAGE_SEND"] = "WS_MESSAGE_SEND";
|
|
14
|
+
WORKER_EVENT["WS_CONNECTION_CLOSE"] = "WS_CONNECTION_CLOSE";
|
|
15
|
+
WORKER_EVENT["WS_CONNECTION_CLOSE_ACKNOWLEDGE"] = "WS_CONNECTION_CLOSE_ACK";
|
|
16
|
+
})(exports.WORKER_EVENT || (exports.WORKER_EVENT = {}));
|
|
17
|
+
const ForbiddenPaths = ['..'];
|
|
18
|
+
exports.Protocols = void 0;
|
|
19
|
+
(function (Protocols) {
|
|
20
|
+
Protocols["http"] = "HTTP";
|
|
21
|
+
Protocols["websocket"] = "WS";
|
|
22
|
+
})(exports.Protocols || (exports.Protocols = {}));
|
|
23
|
+
const DefaultOptions = {
|
|
24
|
+
root: '',
|
|
25
|
+
limit: 0,
|
|
26
|
+
limitPerPath: 0,
|
|
27
|
+
limitRequestBody: 1000000,
|
|
28
|
+
limitRequestTimeout: 5000,
|
|
29
|
+
idleCheckTimeout: 5,
|
|
30
|
+
onStdout: () => { },
|
|
31
|
+
onStderr: () => { },
|
|
32
|
+
onExit: () => { },
|
|
33
|
+
onForbiddenPath: (request, response) => {
|
|
34
|
+
response.writeHead(500, { 'Content-Type': 'text/plain' });
|
|
35
|
+
response.end();
|
|
36
|
+
request.connection.destroy();
|
|
37
|
+
throw new Error('Forbidden path');
|
|
38
|
+
},
|
|
39
|
+
index: [],
|
|
40
|
+
env: {},
|
|
41
|
+
staticWorker: path.resolve(__dirname, './staticWorker.js'),
|
|
42
|
+
cwd: process.cwd(),
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
exports.DefaultOptions = DefaultOptions;
|
|
46
|
+
exports.ForbiddenPaths = ForbiddenPaths;
|
|
47
|
+
//# sourceMappingURL=index-749bd23e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-749bd23e.js","sources":["../src/constants/index.ts"],"sourcesContent":[null],"names":["WORKER_EVENT","Protocols"],"mappings":";;;;AAGYA,8BAUX;AAVD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,gBAA0B,CAAA;AAC1B,IAAA,YAAA,CAAA,qBAAA,CAAA,GAAA,oBAA0C,CAAA;AAC1C,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,iBAA4B,CAAA;AAC5B,IAAA,YAAA,CAAA,eAAA,CAAA,GAAA,sBAAsC,CAAA;AACtC,IAAA,YAAA,CAAA,sBAAA,CAAA,GAAA,qBAA4C,CAAA;AAC5C,IAAA,YAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,YAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,YAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3C,IAAA,YAAA,CAAA,iCAAA,CAAA,GAAA,yBAA2D,CAAA;AAC7D,CAAC,EAVWA,oBAAY,KAAZA,oBAAY,GAUvB,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,cAAc,GAAsB,CAAC,IAAI,EAAW;AAErDC,2BAGX;AAHD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,IAAgB,CAAA;AAClB,CAAC,EAHWA,iBAAS,KAATA,iBAAS,GAGpB,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,cAAc,GAAsB;AAC/C,IAAA,IAAI,EAAE,EAAE;AACR,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,gBAAgB,EAAE,OAAO;AACzB,IAAA,mBAAmB,EAAE,IAAI;AACzB,IAAA,gBAAgB,EAAE,CAAC;AACnB,IAAA,QAAQ,EAAE,MAAK,GAAG;AAClB,IAAA,QAAQ,EAAE,MAAK,GAAG;AAClB,IAAA,MAAM,EAAE,MAAK,GAAG;AAChB,IAAA,eAAe,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAI;QACrC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;QAC1D,QAAQ,CAAC,GAAG,EAAE,CAAC;AACf,QAAA,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC7B,QAAA,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;KACnC;AACD,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,GAAG,EAAE,EAAE;IACP,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC;AAC1D,IAAA,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;;;;;;"}
|
package/dist/index.js
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
var uuid = require('uuid');
|
|
4
4
|
var path = require('path');
|
|
5
|
-
var fs = require('fs');
|
|
6
5
|
var url = require('url');
|
|
7
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-749bd23e.js');
|
|
8
7
|
var Worker = require('@koeroesi86/node-worker');
|
|
8
|
+
var fs = require('fs/promises');
|
|
9
|
+
var fileExists = require('./fileExists-a913e146.js');
|
|
9
10
|
|
|
10
11
|
const pools = [];
|
|
11
12
|
process.once('exit', () => {
|
|
@@ -21,66 +22,62 @@ const createWorkerCommand = (workerPath) => {
|
|
|
21
22
|
};
|
|
22
23
|
class WorkerPool {
|
|
23
24
|
constructor({ overallLimit = 0, idleCheckTimeout = 5, onExit = () => { } }) {
|
|
25
|
+
this.onClose = () => {
|
|
26
|
+
Object.keys(this.workers).forEach((workerPath) => {
|
|
27
|
+
const current = this.workers[workerPath];
|
|
28
|
+
Object.keys(current).forEach((id) => {
|
|
29
|
+
current[id].terminate();
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
this.getNonBusyId = (workerPath) => {
|
|
34
|
+
return this.workers[workerPath]
|
|
35
|
+
? Object.keys(this.workers[workerPath] || {}).find((id) => {
|
|
36
|
+
return true; // !this.workers[workerPath][id].busy;
|
|
37
|
+
})
|
|
38
|
+
: undefined;
|
|
39
|
+
};
|
|
40
|
+
this.getWorkerCountForPath = (p) => {
|
|
41
|
+
return this.workers[p] ? Object.keys(this.workers[p]).length : 0;
|
|
42
|
+
};
|
|
43
|
+
this.getWorkerCount = () => {
|
|
44
|
+
return Object.keys(this.workers).reduce((result, current) => this.getWorkerCountForPath(current) + result, 0);
|
|
45
|
+
};
|
|
46
|
+
this.isBeyondLimit = (workerPath, limit) => {
|
|
47
|
+
return ((this.workers[workerPath] && limit > 0 && this.getWorkerCountForPath(workerPath) >= limit) ||
|
|
48
|
+
(this.overallLimit > 0 && this.getWorkerCount() >= this.overallLimit));
|
|
49
|
+
};
|
|
50
|
+
this.getWorker = async (workerPath, options = {}, limit = 0) => {
|
|
51
|
+
const nonBusyId = this.getNonBusyId(workerPath);
|
|
52
|
+
// TODO: tidy up
|
|
53
|
+
if (nonBusyId !== undefined) {
|
|
54
|
+
return this.workers[workerPath][nonBusyId];
|
|
55
|
+
}
|
|
56
|
+
else if (this.isBeyondLimit(workerPath, limit) || this.creating) {
|
|
57
|
+
await new Promise((r) => setTimeout(r, this.idleCheckTimeout));
|
|
58
|
+
return this.getWorker(workerPath, options, limit);
|
|
59
|
+
}
|
|
60
|
+
this.creating = true;
|
|
61
|
+
const id = uuid.v4();
|
|
62
|
+
const instance = new Worker(createWorkerCommand(workerPath), options);
|
|
63
|
+
if (!this.workers[workerPath]) {
|
|
64
|
+
this.workers[workerPath] = {};
|
|
65
|
+
}
|
|
66
|
+
instance.addEventListenerOnce('close', (code) => {
|
|
67
|
+
this.workers[workerPath][id] = null;
|
|
68
|
+
delete this.workers[workerPath][id];
|
|
69
|
+
this.onExit(code, workerPath, id);
|
|
70
|
+
});
|
|
71
|
+
this.workers[workerPath][id] = instance;
|
|
72
|
+
this.creating = false;
|
|
73
|
+
return instance;
|
|
74
|
+
};
|
|
24
75
|
this.overallLimit = overallLimit;
|
|
25
76
|
this.idleCheckTimeout = idleCheckTimeout;
|
|
26
77
|
this.onExit = onExit;
|
|
27
78
|
this.workers = {};
|
|
28
79
|
pools.push(this);
|
|
29
|
-
this.
|
|
30
|
-
this.getWorker = this.getWorker.bind(this);
|
|
31
|
-
this.onClose = this.onClose.bind(this);
|
|
32
|
-
this.getNonBusyId = this.getNonBusyId.bind(this);
|
|
33
|
-
this.getWorkerCount = this.getWorkerCount.bind(this);
|
|
34
|
-
}
|
|
35
|
-
onClose() {
|
|
36
|
-
Object.keys(this.workers).forEach((workerPath) => {
|
|
37
|
-
const current = this.workers[workerPath];
|
|
38
|
-
Object.keys(current).forEach((id) => {
|
|
39
|
-
current[id].terminate();
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
getNonBusyId(workerPath) {
|
|
44
|
-
return this.workers[workerPath]
|
|
45
|
-
? Object.keys(this.workers[workerPath] || {}).find((id) => {
|
|
46
|
-
return !this.workers[workerPath][id].busy;
|
|
47
|
-
})
|
|
48
|
-
: undefined;
|
|
49
|
-
}
|
|
50
|
-
getWorkerCountForPath(p) {
|
|
51
|
-
return this.workers[p] ? Object.keys(this.workers[p]).length : 0;
|
|
52
|
-
}
|
|
53
|
-
getWorkerCount() {
|
|
54
|
-
return Object.keys(this.workers).reduce((result, current) => this.getWorkerCountForPath(current) + result, 0);
|
|
55
|
-
}
|
|
56
|
-
isBeyondLimit(workerPath, limit) {
|
|
57
|
-
return ((this.workers[workerPath] && limit > 0 && this.getWorkerCountForPath(workerPath) >= limit) ||
|
|
58
|
-
(this.overallLimit > 0 && this.getWorkerCount() >= this.overallLimit));
|
|
59
|
-
}
|
|
60
|
-
async getWorker(workerPath, options = {}, limit = 0) {
|
|
61
|
-
const nonBusyId = this.getNonBusyId(workerPath);
|
|
62
|
-
// TODO: tidy up
|
|
63
|
-
if (nonBusyId !== undefined) {
|
|
64
|
-
return this.workers[workerPath][nonBusyId];
|
|
65
|
-
}
|
|
66
|
-
else if (this.isBeyondLimit(workerPath, limit) || this._creating) {
|
|
67
|
-
await new Promise((r) => setTimeout(r, this.idleCheckTimeout));
|
|
68
|
-
return this.getWorker(workerPath, options, limit);
|
|
69
|
-
}
|
|
70
|
-
this._creating = true;
|
|
71
|
-
const id = uuid.v4();
|
|
72
|
-
const instance = new Worker(createWorkerCommand(workerPath), options);
|
|
73
|
-
if (!this.workers[workerPath]) {
|
|
74
|
-
this.workers[workerPath] = {};
|
|
75
|
-
}
|
|
76
|
-
instance.addEventListenerOnce('close', (code) => {
|
|
77
|
-
this.workers[workerPath][id] = null;
|
|
78
|
-
delete this.workers[workerPath][id];
|
|
79
|
-
this.onExit(code, workerPath, id);
|
|
80
|
-
});
|
|
81
|
-
this.workers[workerPath][id] = instance;
|
|
82
|
-
this._creating = false;
|
|
83
|
-
return instance;
|
|
80
|
+
this.creating = false;
|
|
84
81
|
}
|
|
85
82
|
}
|
|
86
83
|
|
|
@@ -203,34 +200,55 @@ const createBodyParser = (config = { limitRequestBody: 1000000, shouldError: tru
|
|
|
203
200
|
});
|
|
204
201
|
};
|
|
205
202
|
|
|
206
|
-
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
203
|
+
async function resolvePath(rootPath, pathFragments, indexFiles) {
|
|
204
|
+
const currentPathFragments = pathFragments.slice();
|
|
205
|
+
let indexPath = path.join(rootPath, ...currentPathFragments);
|
|
206
|
+
let isWorker = false;
|
|
207
|
+
let pathExists = false;
|
|
208
|
+
let stats;
|
|
209
|
+
for (let i = currentPathFragments.length; i >= 0 && !pathExists; i--) {
|
|
210
|
+
if (pathExists)
|
|
211
|
+
continue;
|
|
212
|
+
currentPathFragments.splice(i);
|
|
213
|
+
const currentPath = path.join(rootPath, ...currentPathFragments);
|
|
214
|
+
pathExists = await fileExists.fileExists(currentPath);
|
|
215
|
+
if (!pathExists)
|
|
216
|
+
continue;
|
|
217
|
+
stats = await fs.stat(currentPath);
|
|
218
|
+
if (stats.isDirectory()) {
|
|
219
|
+
// index fallback
|
|
220
|
+
let checkIndexFilePath = '';
|
|
221
|
+
for (let indexFile of indexFiles) {
|
|
222
|
+
if (checkIndexFilePath) {
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
const current = path.join(currentPath, indexFile);
|
|
226
|
+
if (await fileExists.fileExists(current)) {
|
|
227
|
+
checkIndexFilePath = indexFile;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
if (checkIndexFilePath) {
|
|
231
|
+
isWorker = true;
|
|
232
|
+
indexPath = path.join(currentPath, checkIndexFilePath);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
isWorker = true;
|
|
236
|
+
indexPath = path.join(...currentPathFragments);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
else if (stats.isFile() && indexFiles.includes(currentPathFragments[currentPathFragments.length - 1])) {
|
|
240
|
+
isWorker = true;
|
|
241
|
+
}
|
|
242
|
+
if (isWorker) {
|
|
243
|
+
break;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return { indexPath, isWorker, pathExists, stats };
|
|
247
|
+
}
|
|
248
|
+
|
|
231
249
|
const workerMiddleware = (options) => {
|
|
232
250
|
const config = {
|
|
233
|
-
...DefaultOptions,
|
|
251
|
+
...index.DefaultOptions,
|
|
234
252
|
...(options && options),
|
|
235
253
|
};
|
|
236
254
|
if (!config.root) {
|
|
@@ -252,67 +270,46 @@ const workerMiddleware = (options) => {
|
|
|
252
270
|
const pathFragments = pathname.split(/\//gi).filter(Boolean);
|
|
253
271
|
let currentPathFragments = pathFragments.slice(0);
|
|
254
272
|
let pathExists = false;
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
}
|
|
260
|
-
resolve();
|
|
261
|
-
});
|
|
273
|
+
if (pathFragments.find((p) => index.ForbiddenPaths.includes(p))) {
|
|
274
|
+
config.onForbiddenPath(request, response);
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
262
277
|
await Promise.race([new Promise((_res, rej) => setTimeout(rej, config.limitRequestTimeout)), new Promise((res) => bodyParser(request, response, res))]);
|
|
263
278
|
let indexPath;
|
|
264
|
-
if (aliasCache[pathname] &&
|
|
265
|
-
isWorker =
|
|
279
|
+
if (aliasCache[pathname] && (await fileExists.fileExists(aliasCache[pathname]))) {
|
|
280
|
+
isWorker = false;
|
|
266
281
|
indexPath = aliasCache[pathname];
|
|
282
|
+
pathExists = true;
|
|
267
283
|
}
|
|
268
|
-
else if (workerCache[pathname] &&
|
|
284
|
+
else if (workerCache[pathname] && (await fileExists.fileExists(workerCache[pathname]))) {
|
|
269
285
|
isWorker = true;
|
|
270
286
|
indexPath = workerCache[pathname];
|
|
287
|
+
pathExists = true;
|
|
271
288
|
}
|
|
272
289
|
else {
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
aliasCache[pathname] = '';
|
|
293
|
-
delete aliasCache[pathname];
|
|
294
|
-
}, 5000);
|
|
295
|
-
return true;
|
|
296
|
-
}
|
|
297
|
-
});
|
|
298
|
-
if (pathExists)
|
|
299
|
-
break;
|
|
300
|
-
}
|
|
301
|
-
else if (pathExists && currentStats.isFile()) {
|
|
302
|
-
if (config.index.includes(currentPathFragments[currentPathFragments.length - 1])) {
|
|
303
|
-
isWorker = true;
|
|
304
|
-
workerCache[pathname] = currentPath;
|
|
305
|
-
setTimeout(() => {
|
|
306
|
-
workerCache[pathname] = '';
|
|
307
|
-
delete workerCache[pathname];
|
|
308
|
-
}, 5000);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
}
|
|
290
|
+
const resolved = await resolvePath(rootPath, currentPathFragments, config.index);
|
|
291
|
+
indexPath = resolved.indexPath;
|
|
292
|
+
isWorker = resolved.isWorker;
|
|
293
|
+
pathExists = resolved.pathExists;
|
|
294
|
+
}
|
|
295
|
+
if (!pathExists) {
|
|
296
|
+
//
|
|
297
|
+
}
|
|
298
|
+
else if (isWorker) {
|
|
299
|
+
workerCache[pathname] = indexPath;
|
|
300
|
+
setTimeout(() => {
|
|
301
|
+
delete workerCache[pathname];
|
|
302
|
+
}, 5000);
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
aliasCache[pathname] = indexPath;
|
|
306
|
+
setTimeout(() => {
|
|
307
|
+
delete aliasCache[pathname];
|
|
308
|
+
}, 5000);
|
|
312
309
|
}
|
|
313
310
|
const event = {
|
|
314
311
|
httpMethod: request.method.toUpperCase(),
|
|
315
|
-
protocol: isWebSocket(request) ? Protocols.websocket : Protocols.http,
|
|
312
|
+
protocol: isWebSocket(request) ? index.Protocols.websocket : index.Protocols.http,
|
|
316
313
|
path: pathname,
|
|
317
314
|
pathFragments: pathFragments,
|
|
318
315
|
queryStringParameters: JSON.parse(JSON.stringify(queryStringParameters)),
|
|
@@ -330,7 +327,7 @@ const workerMiddleware = (options) => {
|
|
|
330
327
|
: await workerPool.getWorker(config.staticWorker, {
|
|
331
328
|
cwd: process.cwd(),
|
|
332
329
|
stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
|
|
333
|
-
},
|
|
330
|
+
}, typeof config.limitPerPath === 'function' ? config.limitPerPath(indexPath) : config.limitPerPath);
|
|
334
331
|
const requestId = uuid.v4();
|
|
335
332
|
let firstReceived = false;
|
|
336
333
|
const requestSocketListener = (data) => {
|
|
@@ -347,7 +344,7 @@ const workerMiddleware = (options) => {
|
|
|
347
344
|
event: { ...event, frame },
|
|
348
345
|
});
|
|
349
346
|
};
|
|
350
|
-
if (event.protocol === Protocols.websocket) {
|
|
347
|
+
if (event.protocol === index.Protocols.websocket) {
|
|
351
348
|
request.socket.on('data', requestSocketListener);
|
|
352
349
|
}
|
|
353
350
|
worker.instance.stdout.off('data', config.onStdout);
|
|
@@ -387,9 +384,9 @@ const workerMiddleware = (options) => {
|
|
|
387
384
|
if (responseEvent.type === index.WORKER_EVENT.WS_MESSAGE_SEND) {
|
|
388
385
|
request.socket.write(constructWsMessage(responseEvent.event.frame));
|
|
389
386
|
}
|
|
390
|
-
if (responseEvent.type ===
|
|
391
|
-
|
|
392
|
-
}
|
|
387
|
+
// if (responseEvent.type === WORKER_EVENT.REQUEST_ACKNOWLEDGE) {
|
|
388
|
+
// worker.busy = false;
|
|
389
|
+
// }
|
|
393
390
|
}
|
|
394
391
|
};
|
|
395
392
|
const requestCloseListener = () => {
|
|
@@ -421,7 +418,7 @@ const workerMiddleware = (options) => {
|
|
|
421
418
|
}
|
|
422
419
|
};
|
|
423
420
|
request.on('aborted', cleanupConnection);
|
|
424
|
-
if (event.protocol === Protocols.http) {
|
|
421
|
+
if (event.protocol === index.Protocols.http) {
|
|
425
422
|
request.on('close', cleanupConnection);
|
|
426
423
|
response.on('finish', cleanupConnection);
|
|
427
424
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/utils/workerPool.ts","../src/utils/isWebSocket.ts","../src/utils/parseWsMessage.ts","../src/utils/constructWsMessage.ts","../src/utils/getClientIp.ts","../src/middleware/bodyParser.ts","../src/middleware/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["uuid","WORKER_EVENT"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/utils/workerPool.ts","../src/utils/isWebSocket.ts","../src/utils/parseWsMessage.ts","../src/utils/constructWsMessage.ts","../src/utils/getClientIp.ts","../src/middleware/bodyParser.ts","../src/utils/resolvePath.ts","../src/middleware/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["uuid","fileExists","DefaultOptions","ForbiddenPaths","Protocols","WORKER_EVENT"],"mappings":"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"}
|
|
@@ -1,19 +1,4 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { RequestHandler } from 'express';
|
|
3
|
-
|
|
4
|
-
root: string;
|
|
5
|
-
limit?: number;
|
|
6
|
-
limitPerPath?: number | ((path: string) => number);
|
|
7
|
-
limitRequestBody?: number;
|
|
8
|
-
limitRequestTimeout?: number;
|
|
9
|
-
idleCheckTimeout?: number;
|
|
10
|
-
onStdout?: (data: Buffer) => void;
|
|
11
|
-
onStderr?: (data: Buffer) => void;
|
|
12
|
-
onExit?: void;
|
|
13
|
-
index?: string[];
|
|
14
|
-
env?: object;
|
|
15
|
-
staticWorker?: string;
|
|
16
|
-
cwd?: string;
|
|
17
|
-
};
|
|
2
|
+
import { MiddlewareOptions } from 'src/types';
|
|
18
3
|
declare const workerMiddleware: (options: MiddlewareOptions) => RequestHandler;
|
|
19
4
|
export default workerMiddleware;
|
package/dist/staticWorker.js
CHANGED
|
@@ -1,154 +1,161 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var path = require('path');
|
|
4
|
-
var fs = require('fs');
|
|
4
|
+
var fs = require('fs/promises');
|
|
5
|
+
require('fs');
|
|
6
|
+
require('stream');
|
|
7
|
+
var fileExists = require('./fileExists-a913e146.js');
|
|
5
8
|
var crypto = require('crypto');
|
|
6
9
|
var child_process = require('child_process');
|
|
7
|
-
require('stream');
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
const contentTypes = {
|
|
12
|
+
'.aac': 'audio/aac',
|
|
13
|
+
'.abw': 'application/x-abiword',
|
|
14
|
+
'.arc': 'application/x-freearc',
|
|
15
|
+
'.avi': 'video/x-msvideo',
|
|
16
|
+
'.azw': 'application/vnd.amazon.ebook',
|
|
17
|
+
'.bin': 'application/octet-stream',
|
|
18
|
+
'.bmp': 'image/bmp',
|
|
19
|
+
'.bz': 'application/x-bzip',
|
|
20
|
+
'.bz2': 'application/x-bzip2',
|
|
21
|
+
'.csh': 'application/x-csh',
|
|
22
|
+
'.css': 'text/css',
|
|
23
|
+
'.csv': 'text/csv',
|
|
24
|
+
'.doc': 'application/msword',
|
|
25
|
+
'.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
26
|
+
'.eot': 'application/vnd.ms-fontobject',
|
|
27
|
+
'.epub': 'application/epub+zip',
|
|
28
|
+
'.gz': 'application/gzip',
|
|
29
|
+
'.gif': 'image/gif',
|
|
30
|
+
'.htm': 'text/html',
|
|
31
|
+
'.html': 'text/html',
|
|
32
|
+
'.ico': 'image/vnd.microsoft.icon',
|
|
33
|
+
'.ics': 'text/calendar',
|
|
34
|
+
'.jar': 'application/java-archive',
|
|
35
|
+
'.jpeg': 'image/jpeg',
|
|
36
|
+
'.jpg': 'image/jpeg',
|
|
37
|
+
'.js': 'text/javascript',
|
|
38
|
+
'.json': 'application/json',
|
|
39
|
+
'.jsonld': 'application/ld+json',
|
|
40
|
+
'.mid': 'audio/midi',
|
|
41
|
+
'.midi': 'audio/x-midi',
|
|
42
|
+
'.mjs': 'text/javascript',
|
|
43
|
+
'.mp3': 'audio/mpeg',
|
|
44
|
+
'.mpeg': 'video/mpeg',
|
|
45
|
+
'.mpkg': 'application/vnd.apple.installer+xml',
|
|
46
|
+
'.odp': 'application/vnd.oasis.opendocument.presentation',
|
|
47
|
+
'.ods': 'application/vnd.oasis.opendocument.spreadsheet',
|
|
48
|
+
'.odt': 'application/vnd.oasis.opendocument.text',
|
|
49
|
+
'.oga': 'audio/ogg',
|
|
50
|
+
'.ogv': 'video/ogg',
|
|
51
|
+
'.ogx': 'application/ogg',
|
|
52
|
+
'.opus': 'audio/opus',
|
|
53
|
+
'.otf': 'font/otf',
|
|
54
|
+
'.png': 'image/png',
|
|
55
|
+
'.pdf': 'application/pdf',
|
|
56
|
+
'.php': 'application/php',
|
|
57
|
+
'.ppt': 'application/vnd.ms-powerpoint',
|
|
58
|
+
'.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
|
59
|
+
'.rar': 'application/vnd.rar',
|
|
60
|
+
'.rtf': 'application/rtf',
|
|
61
|
+
'.sh': 'application/x-sh',
|
|
62
|
+
'.svg': 'image/svg+xml',
|
|
63
|
+
'.swf': 'application/x-shockwave-flash',
|
|
64
|
+
'.tar': 'application/x-tar',
|
|
65
|
+
'.tif': 'image/tiff',
|
|
66
|
+
'.tiff': 'image/tiff',
|
|
67
|
+
'.ts': 'video/mp2t',
|
|
68
|
+
'.ttf': 'font/ttf',
|
|
69
|
+
'.txt': 'text/plain',
|
|
70
|
+
'.vsd': 'application/vnd.visio',
|
|
71
|
+
'.wav': 'audio/wav',
|
|
72
|
+
'.weba': 'audio/webm',
|
|
73
|
+
'.webm': 'video/webm',
|
|
74
|
+
'.webp': 'image/webp',
|
|
75
|
+
'.woff': 'font/woff',
|
|
76
|
+
'.woff2': 'font/woff2',
|
|
77
|
+
'.xhtml': 'application/xhtml+xml',
|
|
78
|
+
'.xls': 'application/vnd.ms-excel',
|
|
79
|
+
'.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
80
|
+
'.xml': 'application/xml',
|
|
81
|
+
'.xul': 'application/vnd.mozilla.xul+xml',
|
|
82
|
+
'.zip': 'application/zip',
|
|
83
|
+
'.3gp': 'video/3gpp',
|
|
84
|
+
'.3g2': 'video/3gpp2',
|
|
85
|
+
'.7z': 'application/x-7z-compressed',
|
|
86
|
+
};
|
|
18
87
|
function getContentType(extension = '') {
|
|
19
|
-
const contentTypes = {
|
|
20
|
-
'.aac': 'audio/aac',
|
|
21
|
-
'.abw': 'application/x-abiword',
|
|
22
|
-
'.arc': 'application/x-freearc',
|
|
23
|
-
'.avi': 'video/x-msvideo',
|
|
24
|
-
'.azw': 'application/vnd.amazon.ebook',
|
|
25
|
-
'.bin': 'application/octet-stream',
|
|
26
|
-
'.bmp': 'image/bmp',
|
|
27
|
-
'.bz': 'application/x-bzip',
|
|
28
|
-
'.bz2': 'application/x-bzip2',
|
|
29
|
-
'.csh': 'application/x-csh',
|
|
30
|
-
'.css': 'text/css',
|
|
31
|
-
'.csv': 'text/csv',
|
|
32
|
-
'.doc': 'application/msword',
|
|
33
|
-
'.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
34
|
-
'.eot': 'application/vnd.ms-fontobject',
|
|
35
|
-
'.epub': 'application/epub+zip',
|
|
36
|
-
'.gz': 'application/gzip',
|
|
37
|
-
'.gif': 'image/gif',
|
|
38
|
-
'.htm': 'text/html',
|
|
39
|
-
'.html': 'text/html',
|
|
40
|
-
'.ico': 'image/vnd.microsoft.icon',
|
|
41
|
-
'.ics': 'text/calendar',
|
|
42
|
-
'.jar': 'application/java-archive',
|
|
43
|
-
'.jpeg': 'image/jpeg',
|
|
44
|
-
'.jpg': 'image/jpeg',
|
|
45
|
-
'.js': 'text/javascript',
|
|
46
|
-
'.json': 'application/json',
|
|
47
|
-
'.jsonld': 'application/ld+json',
|
|
48
|
-
'.mid': 'audio/midi',
|
|
49
|
-
'.midi': 'audio/x-midi',
|
|
50
|
-
'.mjs': 'text/javascript',
|
|
51
|
-
'.mp3': 'audio/mpeg',
|
|
52
|
-
'.mpeg': 'video/mpeg',
|
|
53
|
-
'.mpkg': 'application/vnd.apple.installer+xml',
|
|
54
|
-
'.odp': 'application/vnd.oasis.opendocument.presentation',
|
|
55
|
-
'.ods': 'application/vnd.oasis.opendocument.spreadsheet',
|
|
56
|
-
'.odt': 'application/vnd.oasis.opendocument.text',
|
|
57
|
-
'.oga': 'audio/ogg',
|
|
58
|
-
'.ogv': 'video/ogg',
|
|
59
|
-
'.ogx': 'application/ogg',
|
|
60
|
-
'.opus': 'audio/opus',
|
|
61
|
-
'.otf': 'font/otf',
|
|
62
|
-
'.png': 'image/png',
|
|
63
|
-
'.pdf': 'application/pdf',
|
|
64
|
-
'.php': 'application/php',
|
|
65
|
-
'.ppt': 'application/vnd.ms-powerpoint',
|
|
66
|
-
'.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
|
67
|
-
'.rar': 'application/vnd.rar',
|
|
68
|
-
'.rtf': 'application/rtf',
|
|
69
|
-
'.sh': 'application/x-sh',
|
|
70
|
-
'.svg': 'image/svg+xml',
|
|
71
|
-
'.swf': 'application/x-shockwave-flash',
|
|
72
|
-
'.tar': 'application/x-tar',
|
|
73
|
-
'.tif': 'image/tiff',
|
|
74
|
-
'.tiff': 'image/tiff',
|
|
75
|
-
'.ts': 'video/mp2t',
|
|
76
|
-
'.ttf': 'font/ttf',
|
|
77
|
-
'.txt': 'text/plain',
|
|
78
|
-
'.vsd': 'application/vnd.visio',
|
|
79
|
-
'.wav': 'audio/wav',
|
|
80
|
-
'.weba': 'audio/webm',
|
|
81
|
-
'.webm': 'video/webm',
|
|
82
|
-
'.webp': 'image/webp',
|
|
83
|
-
'.woff': 'font/woff',
|
|
84
|
-
'.woff2': 'font/woff2',
|
|
85
|
-
'.xhtml': 'application/xhtml+xml',
|
|
86
|
-
'.xls': 'application/vnd.ms-excel',
|
|
87
|
-
'.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
88
|
-
'.xml': 'application/xml',
|
|
89
|
-
'.xul': 'application/vnd.mozilla.xul+xml',
|
|
90
|
-
'.zip': 'application/zip',
|
|
91
|
-
'.3gp': 'video/3gpp',
|
|
92
|
-
'.3g2': 'video/3gpp2',
|
|
93
|
-
'.7z': 'application/x-7z-compressed',
|
|
94
|
-
};
|
|
95
88
|
return contentTypes[extension] || contentTypes['.txt'];
|
|
96
89
|
}
|
|
97
|
-
|
|
90
|
+
|
|
91
|
+
const emptyEtag = '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';
|
|
92
|
+
function getEtag(body) {
|
|
98
93
|
if (body.length === 0) {
|
|
99
94
|
// fast-path empty
|
|
100
|
-
return
|
|
95
|
+
return emptyEtag;
|
|
101
96
|
}
|
|
102
97
|
// compute hash of entity
|
|
103
|
-
const hash = crypto.createHash('sha1').update(body, 'utf8').digest('base64').substring(0, 27);
|
|
98
|
+
const hash = crypto.createHash('sha1').update(body.toString('utf8'), 'utf8').digest('base64').substring(0, 27);
|
|
104
99
|
// compute length of entity
|
|
105
100
|
const len = typeof body === 'string' ? Buffer.byteLength(body, 'utf8') : body.length;
|
|
106
101
|
return `"${len.toString(16)}-${hash}"`;
|
|
107
102
|
}
|
|
103
|
+
|
|
104
|
+
// Byte order mark
|
|
105
|
+
const isUtf8 = (body) => body[0] === 0xef && body[1] === 0xbb && body[2] === 0xbf;
|
|
106
|
+
const isUtf16be = (body) => body[0] === 0xfe && body[1] === 0xff;
|
|
107
|
+
const isUtf16le = (body) => body[0] === 0xff && body[1] === 0xfe;
|
|
108
108
|
// TODO: implement
|
|
109
|
-
function getCharset(body, fileName) {
|
|
110
|
-
|
|
111
|
-
if (body[0] === 0xef && body[1] === 0xbb && body[2] === 0xbf)
|
|
109
|
+
async function getCharset(body, fileName) {
|
|
110
|
+
if (isUtf8(body))
|
|
112
111
|
return 'utf8';
|
|
113
|
-
if (body
|
|
112
|
+
if (isUtf16be(body))
|
|
114
113
|
return 'utf16be';
|
|
115
|
-
if (body
|
|
114
|
+
if (isUtf16le(body))
|
|
116
115
|
return 'utf16le';
|
|
117
116
|
if (body.indexOf('') === 0)
|
|
118
117
|
return 'iso-8859-1';
|
|
119
118
|
try {
|
|
120
|
-
return child_process.execSync(`file -b --mime-encoding ${fileName}
|
|
119
|
+
return child_process.execSync(`file -b --mime-encoding ${fileName}`, { encoding: 'utf8' }).trim();
|
|
121
120
|
}
|
|
122
121
|
catch (e) {
|
|
123
122
|
//
|
|
124
123
|
}
|
|
125
|
-
return
|
|
124
|
+
return '';
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
let timer;
|
|
128
|
+
function debounce(fn = () => { }, timeout = 0) {
|
|
129
|
+
if (timer)
|
|
130
|
+
clearTimeout(timer);
|
|
131
|
+
timer = setTimeout(() => {
|
|
132
|
+
timer = undefined;
|
|
133
|
+
fn();
|
|
134
|
+
}, timeout);
|
|
126
135
|
}
|
|
127
|
-
const staticWorker = (event, callback = () => { }) => {
|
|
136
|
+
const staticWorker = async (event, callback = () => { }) => {
|
|
128
137
|
debounce(() => {
|
|
129
138
|
console.log('Exiting static worker.');
|
|
130
139
|
process.exit(0);
|
|
131
140
|
}, 1000 * 60 * 30);
|
|
132
141
|
const currentPath = `${event.path.replace(/\.{2,}/, '')}${/\/$/.test(event.path) ? 'index.html' : ''}`;
|
|
133
142
|
const fileName = path.resolve(event.rootPath, `.${currentPath}`);
|
|
134
|
-
if (['GET', 'HEAD'].includes(event.httpMethod) &&
|
|
143
|
+
if (['GET', 'HEAD'].includes(event.httpMethod) && (await fileExists.fileExists(fileName))) {
|
|
135
144
|
// TODO: range request
|
|
136
|
-
const bodyBuffer = fs.
|
|
137
|
-
const stats = fs.
|
|
145
|
+
const bodyBuffer = await fs.readFile(fileName);
|
|
146
|
+
const stats = await fs.stat(fileName);
|
|
138
147
|
const extension = path.extname(fileName);
|
|
139
148
|
const contentType = getContentType(extension);
|
|
140
|
-
const currentEtag =
|
|
141
|
-
const charset = getCharset(bodyBuffer, fileName);
|
|
149
|
+
const currentEtag = getEtag(bodyBuffer);
|
|
150
|
+
const charset = await getCharset(bodyBuffer, fileName);
|
|
142
151
|
const lastModified = new Date(stats.mtime);
|
|
143
152
|
let isModified = true;
|
|
144
153
|
if (event.headers['if-none-match'] === currentEtag) {
|
|
145
154
|
isModified = false;
|
|
146
155
|
}
|
|
147
|
-
else if (event.headers['if-modified-since']) {
|
|
156
|
+
else if (stats.mtime && event.headers['if-modified-since']) {
|
|
148
157
|
const ifModifiedSince = new Date(event.headers['if-modified-since']);
|
|
149
|
-
|
|
150
|
-
isModified = false;
|
|
151
|
-
}
|
|
158
|
+
isModified = ifModifiedSince.toUTCString() !== lastModified.toUTCString();
|
|
152
159
|
}
|
|
153
160
|
const response = {
|
|
154
161
|
statusCode: isModified ? 200 : 304,
|
|
@@ -159,12 +166,14 @@ const staticWorker = (event, callback = () => { }) => {
|
|
|
159
166
|
ETag: currentEtag,
|
|
160
167
|
...(stats.mtime && { 'Last-Modified': lastModified.toUTCString() }),
|
|
161
168
|
},
|
|
162
|
-
body:
|
|
163
|
-
isBase64Encoded:
|
|
169
|
+
body: '',
|
|
170
|
+
isBase64Encoded: false,
|
|
164
171
|
};
|
|
165
|
-
{
|
|
166
|
-
|
|
172
|
+
if (isModified) {
|
|
173
|
+
response.body = bodyBuffer.toString('base64');
|
|
174
|
+
response.isBase64Encoded = true;
|
|
167
175
|
}
|
|
176
|
+
callback(response);
|
|
168
177
|
}
|
|
169
178
|
else {
|
|
170
179
|
callback({
|
|
@@ -173,7 +182,7 @@ const staticWorker = (event, callback = () => { }) => {
|
|
|
173
182
|
'Content-Type': 'text/plain',
|
|
174
183
|
'Cache-Control': 'public, max-age=0',
|
|
175
184
|
},
|
|
176
|
-
body: `${
|
|
185
|
+
body: `${currentPath} does not exist`,
|
|
177
186
|
isBase64Encoded: false,
|
|
178
187
|
});
|
|
179
188
|
}
|
package/dist/staticWorker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticWorker.js","sources":["../src/staticWorker.ts"],"sourcesContent":[null],"names":["execSync"],"mappings":"
|
|
1
|
+
{"version":3,"file":"staticWorker.js","sources":["../src/utils/getContentType.ts","../src/utils/getEtag.ts","../src/utils/getCharset.ts","../src/staticWorker.ts"],"sourcesContent":[null,null,null,null],"names":["createHash","execSync","fileExists"],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { WORKER_EVENT } from '../constants';
|
|
3
|
+
import { Request, Response } from 'express';
|
|
2
4
|
export type RequestEvent = {
|
|
3
5
|
httpMethod: string;
|
|
4
6
|
protocol: string;
|
|
@@ -43,4 +45,20 @@ export type WSFrameEvent = {
|
|
|
43
45
|
sendWsMessage: boolean;
|
|
44
46
|
frame: string;
|
|
45
47
|
};
|
|
46
|
-
export type InvokableWorker = (event: RequestEvent, callback: (e: ResponseEvent) => void) =>
|
|
48
|
+
export type InvokableWorker = (event: RequestEvent, callback: (e: ResponseEvent) => void) => unknown;
|
|
49
|
+
export interface MiddlewareOptions {
|
|
50
|
+
root: string;
|
|
51
|
+
limit?: number;
|
|
52
|
+
limitPerPath?: number | ((path: string) => number);
|
|
53
|
+
limitRequestBody?: number;
|
|
54
|
+
limitRequestTimeout?: number;
|
|
55
|
+
idleCheckTimeout?: number;
|
|
56
|
+
onStdout?: (data: Buffer) => void;
|
|
57
|
+
onStderr?: (data: Buffer) => void;
|
|
58
|
+
onExit?: (code: number, workerPath: string, id: string) => void;
|
|
59
|
+
onForbiddenPath: (request: Request, response: Response) => unknown;
|
|
60
|
+
index?: string[];
|
|
61
|
+
env?: object;
|
|
62
|
+
staticWorker?: string;
|
|
63
|
+
cwd?: string;
|
|
64
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Stats } from 'fs';
|
|
3
|
+
declare function resolvePath(rootPath: string, pathFragments: string[], indexFiles: string[]): Promise<{
|
|
4
|
+
indexPath: string;
|
|
5
|
+
isWorker: boolean;
|
|
6
|
+
pathExists: boolean;
|
|
7
|
+
stats: Stats;
|
|
8
|
+
}>;
|
|
9
|
+
export default resolvePath;
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
+
import Worker from '@koeroesi86/node-worker';
|
|
2
|
+
interface WorkerPoolParams {
|
|
3
|
+
overallLimit?: number;
|
|
4
|
+
idleCheckTimeout?: number;
|
|
5
|
+
onExit?: (code: number, workerPath: string, id: string) => void;
|
|
6
|
+
}
|
|
1
7
|
declare class WorkerPool {
|
|
2
8
|
protected readonly overallLimit: number;
|
|
3
9
|
protected readonly idleCheckTimeout: number;
|
|
4
10
|
protected readonly onExit: (code: number, workerPath: string, id: string) => void;
|
|
5
|
-
protected readonly workers:
|
|
6
|
-
private
|
|
7
|
-
constructor({ overallLimit, idleCheckTimeout, onExit }:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
getWorkerCountForPath(p: any): number;
|
|
15
|
-
getWorkerCount(): number;
|
|
16
|
-
isBeyondLimit(workerPath: any, limit: any): boolean;
|
|
17
|
-
getWorker(workerPath: any, options?: {}, limit?: number): any;
|
|
11
|
+
protected readonly workers: Record<string, Record<string, Worker>>;
|
|
12
|
+
private creating;
|
|
13
|
+
constructor({ overallLimit, idleCheckTimeout, onExit }: WorkerPoolParams);
|
|
14
|
+
onClose: () => void;
|
|
15
|
+
getNonBusyId: (workerPath: any) => string;
|
|
16
|
+
getWorkerCountForPath: (p: any) => number;
|
|
17
|
+
getWorkerCount: () => number;
|
|
18
|
+
isBeyondLimit: (workerPath: any, limit: any) => boolean;
|
|
19
|
+
getWorker: (workerPath: any, options?: {}, limit?: number) => Promise<Worker>;
|
|
18
20
|
}
|
|
19
21
|
export default WorkerPool;
|
package/dist/workerInvoke.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-749bd23e.js');
|
|
4
|
+
require('path');
|
|
4
5
|
|
|
5
|
-
const worker = require(process.argv
|
|
6
|
+
const worker = require(process.argv.pop());
|
|
6
7
|
function messageListener(message) {
|
|
7
8
|
if (message.type === index.WORKER_EVENT.REQUEST) {
|
|
8
9
|
process.send({
|
package/dist/workerInvoke.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerInvoke.js","sources":["../src/workerInvoke.ts"],"sourcesContent":[null],"names":["WORKER_EVENT"],"mappings":"
|
|
1
|
+
{"version":3,"file":"workerInvoke.js","sources":["../src/workerInvoke.ts"],"sourcesContent":[null],"names":["WORKER_EVENT"],"mappings":";;;;;AAGA,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAoB,CAAC;AAE9D,SAAS,eAAe,CAAC,OAAyB,EAAA;AAChD,IAAA,IAAI,OAAO,CAAC,IAAI,KAAKA,kBAAY,CAAC,OAAO,EAAE;QACzC,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAEA,kBAAY,CAAC,mBAAmB;YACtC,SAAS,EAAE,OAAO,CAAC,SAAS;AAC7B,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,QAAQ,GAAG,CAAC,aAA2C,KAAI;AAC/D,YAAA,IAAI,CAAoB,CAAC;YAEzB,IAAI,eAAe,IAAI,aAAa,EAAE;AACpC,gBAAA,CAAC,GAAG;oBACF,IAAI,EAAEA,kBAAY,CAAC,eAAe;oBAClC,SAAS,EAAE,OAAO,CAAC,SAAS;AAC5B,oBAAA,KAAK,EAAE,aAAa;iBACrB,CAAC;AACH,aAAA;iBAAM,IAAI,MAAM,IAAI,aAAa,EAAE;AAClC,gBAAA,CAAC,GAAG;oBACF,IAAI,EAAEA,kBAAY,CAAC,aAAa;oBAChC,SAAS,EAAE,OAAO,CAAC,SAAS;AAC5B,oBAAA,KAAK,EAAE,aAAa;iBACrB,CAAC;AACH,aAAA;AAAM,iBAAA;AACL,gBAAA,CAAC,GAAG;oBACF,IAAI,EAAEA,kBAAY,CAAC,QAAQ;oBAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;AAC5B,oBAAA,KAAK,EAAE,aAAa;iBACrB,CAAC;AACH,aAAA;AACD,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,SAAC,CAAC;AACF,QAAA,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACjC,KAAA;AAED,IAAA,IAAI,OAAO,CAAC,IAAI,KAAKA,kBAAY,CAAC,kBAAkB,EAAE;AACpD,QAAA,MAAM,QAAQ,GAAG,CAAC,aAAa,KAAI;AACjC,YAAA,MAAM,CAAC,GAAsB;gBAC3B,IAAI,EAAEA,kBAAY,CAAC,eAAe;gBAClC,SAAS,EAAE,OAAO,CAAC,SAAS;AAC5B,gBAAA,KAAK,EAAE,aAAa;aACrB,CAAC;AACF,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,SAAC,CAAC;AACF,QAAA,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACjC,KAAA;AAED,IAAA,IAAI,OAAO,CAAC,IAAI,KAAKA,kBAAY,CAAC,mBAAmB,EAAE;AACrD,QAAA,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAA4B,KAAI;YAC1E,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAEA,kBAAY,CAAC,+BAA+B;gBAClD,SAAS,EAAE,OAAO,CAAC,SAAS;AAC5B,gBAAA,KAAK,EAAE,aAAa;AACrB,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AACJ,KAAA;AACH,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;;"}
|
package/package.json
CHANGED
package/dist/index-aad82b3f.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
exports.WORKER_EVENT = void 0;
|
|
4
|
-
(function (WORKER_EVENT) {
|
|
5
|
-
WORKER_EVENT["REQUEST"] = "WORKER_REQUEST";
|
|
6
|
-
WORKER_EVENT["REQUEST_ACKNOWLEDGE"] = "WORKER_REQUEST_ACK";
|
|
7
|
-
WORKER_EVENT["RESPONSE"] = "WORKER_RESPONSE";
|
|
8
|
-
WORKER_EVENT["RESPONSE_EMIT"] = "WORKER_RESPONSE_EMIT";
|
|
9
|
-
WORKER_EVENT["RESPONSE_ACKNOWLEDGE"] = "WORKER_RESPONSE_ACK";
|
|
10
|
-
WORKER_EVENT["WS_MESSAGE_RECEIVE"] = "WS_MESSAGE_RECEIVE";
|
|
11
|
-
WORKER_EVENT["WS_MESSAGE_SEND"] = "WS_MESSAGE_SEND";
|
|
12
|
-
WORKER_EVENT["WS_CONNECTION_CLOSE"] = "WS_CONNECTION_CLOSE";
|
|
13
|
-
WORKER_EVENT["WS_CONNECTION_CLOSE_ACKNOWLEDGE"] = "WS_CONNECTION_CLOSE_ACK";
|
|
14
|
-
})(exports.WORKER_EVENT || (exports.WORKER_EVENT = {}));
|
|
15
|
-
//# sourceMappingURL=index-aad82b3f.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-aad82b3f.js","sources":["../src/constants/index.ts"],"sourcesContent":[null],"names":["WORKER_EVENT"],"mappings":";;AAAYA,8BAUX;AAVD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,gBAA0B,CAAA;AAC1B,IAAA,YAAA,CAAA,qBAAA,CAAA,GAAA,oBAA0C,CAAA;AAC1C,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,iBAA4B,CAAA;AAC5B,IAAA,YAAA,CAAA,eAAA,CAAA,GAAA,sBAAsC,CAAA;AACtC,IAAA,YAAA,CAAA,sBAAA,CAAA,GAAA,qBAA4C,CAAA;AAC5C,IAAA,YAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,YAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,YAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3C,IAAA,YAAA,CAAA,iCAAA,CAAA,GAAA,yBAA2D,CAAA;AAC7D,CAAC,EAVWA,oBAAY,KAAZA,oBAAY,GAUvB,EAAA,CAAA,CAAA;;"}
|