@koeroesi86/node-worker-express 23.3.4393791752-main → 23.3.4393924423-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/.cache/eslint/.cache_l4ex1j +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +48 -58
- package/dist/index.js.map +1 -1
- package/dist/staticWorker.js +7 -18
- package/dist/staticWorker.js.map +1 -1
- package/dist/types/index.d.ts +7 -2
- package/dist/utils/getClientIp.d.ts +1 -1
- package/dist/workerInvoke.js +25 -18
- package/dist/workerInvoke.js.map +1 -1
- package/package.json +8 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"/home/runner/work/node-worker-express/node-worker-express/src/constants/index.ts":"1","/home/runner/work/node-worker-express/node-worker-express/src/index.ts":"2","/home/runner/work/node-worker-express/node-worker-express/src/middleware/bodyParser.ts":"3","/home/runner/work/node-worker-express/node-worker-express/src/middleware/index.ts":"4","/home/runner/work/node-worker-express/node-worker-express/src/staticWorker.ts":"5","/home/runner/work/node-worker-express/node-worker-express/src/types/index.ts":"6","/home/runner/work/node-worker-express/node-worker-express/src/utils/constructWsMessage.ts":"7","/home/runner/work/node-worker-express/node-worker-express/src/utils/getClientIp.ts":"8","/home/runner/work/node-worker-express/node-worker-express/src/utils/isWebSocket.ts":"9","/home/runner/work/node-worker-express/node-worker-express/src/utils/parseWsMessage.ts":"10","/home/runner/work/node-worker-express/node-worker-express/src/utils/workerPool.ts":"11","/home/runner/work/node-worker-express/node-worker-express/src/workerInvoke.ts":"12"},{"size":421,"mtime":1678564499285,"results":"13","hashOfConfig":"14"},{"size":54,"mtime":1678564499285,"results":"15","hashOfConfig":"14"},{"size":920,"mtime":1678564499285,"results":"16","hashOfConfig":"14"},{"size":9502,"mtime":1678564499285,"results":"17","hashOfConfig":"14"},{"size":6851,"mtime":1678564499285,"results":"18","hashOfConfig":"14"},{"size":1057,"mtime":1678564499285,"results":"19","hashOfConfig":"14"},{"size":900,"mtime":1678564499285,"results":"20","hashOfConfig":"14"},{"size":1405,"mtime":1678564499285,"results":"21","hashOfConfig":"14"},{"size":407,"mtime":1678564499285,"results":"22","hashOfConfig":"14"},{"size":438,"mtime":1678564499285,"results":"23","hashOfConfig":"14"},{"size":3065,"mtime":1678564499285,"results":"24","hashOfConfig":"14"},{"size":1821,"mtime":1678564499285,"results":"25","hashOfConfig":"14"},{"filePath":"26","messages":"27","suppressedMessages":"28","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"tq6ffx",{"filePath":"29","messages":"30","suppressedMessages":"31","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"32","messages":"33","suppressedMessages":"34","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"35","messages":"36","suppressedMessages":"37","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"38","messages":"39","suppressedMessages":"40","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"41","messages":"42","suppressedMessages":"43","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"44","messages":"45","suppressedMessages":"46","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"47","messages":"48","suppressedMessages":"49","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"50","messages":"51","suppressedMessages":"52","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"53","messages":"54","suppressedMessages":"55","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"56","messages":"57","suppressedMessages":"58","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"59","messages":"60","suppressedMessages":"61","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/runner/work/node-worker-express/node-worker-express/src/constants/index.ts",[],[],"/home/runner/work/node-worker-express/node-worker-express/src/index.ts",[],[],"/home/runner/work/node-worker-express/node-worker-express/src/middleware/bodyParser.ts",[],[],"/home/runner/work/node-worker-express/node-worker-express/src/middleware/index.ts",[],[],"/home/runner/work/node-worker-express/node-worker-express/src/staticWorker.ts",[],[],"/home/runner/work/node-worker-express/node-worker-express/src/types/index.ts",[],[],"/home/runner/work/node-worker-express/node-worker-express/src/utils/constructWsMessage.ts",[],[],"/home/runner/work/node-worker-express/node-worker-express/src/utils/getClientIp.ts",[],[],"/home/runner/work/node-worker-express/node-worker-express/src/utils/isWebSocket.ts",[],[],"/home/runner/work/node-worker-express/node-worker-express/src/utils/parseWsMessage.ts",[],[],"/home/runner/work/node-worker-express/node-worker-express/src/utils/workerPool.ts",[],[],"/home/runner/work/node-worker-express/node-worker-express/src/workerInvoke.ts",[],[]]
|
package/dist/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as middleware } from
|
|
1
|
+
export { default as middleware } from './middleware';
|
package/dist/index.js
CHANGED
|
@@ -7,12 +7,11 @@ var url = require('url');
|
|
|
7
7
|
var index = require('./index-aad82b3f.js');
|
|
8
8
|
var Worker = require('@koeroesi86/node-worker');
|
|
9
9
|
|
|
10
|
-
/** @var {WorkerPool[]} */
|
|
11
10
|
const pools = [];
|
|
12
11
|
process.once('exit', () => {
|
|
13
|
-
pools.forEach(pool => pool.onClose());
|
|
12
|
+
pools.forEach((pool) => pool.onClose());
|
|
14
13
|
});
|
|
15
|
-
const createWorkerCommand = workerPath => {
|
|
14
|
+
const createWorkerCommand = (workerPath) => {
|
|
16
15
|
const ext = path.extname(workerPath);
|
|
17
16
|
switch (ext) {
|
|
18
17
|
case '.js':
|
|
@@ -21,8 +20,7 @@ const createWorkerCommand = workerPath => {
|
|
|
21
20
|
}
|
|
22
21
|
};
|
|
23
22
|
class WorkerPool {
|
|
24
|
-
constructor({ overallLimit = 0, idleCheckTimeout = 5, onExit = () => {
|
|
25
|
-
} }) {
|
|
23
|
+
constructor({ overallLimit = 0, idleCheckTimeout = 5, onExit = () => { } }) {
|
|
26
24
|
this.overallLimit = overallLimit;
|
|
27
25
|
this.idleCheckTimeout = idleCheckTimeout;
|
|
28
26
|
this.onExit = onExit;
|
|
@@ -35,17 +33,19 @@ class WorkerPool {
|
|
|
35
33
|
this.getWorkerCount = this.getWorkerCount.bind(this);
|
|
36
34
|
}
|
|
37
35
|
onClose() {
|
|
38
|
-
Object.keys(this.workers).forEach(workerPath => {
|
|
36
|
+
Object.keys(this.workers).forEach((workerPath) => {
|
|
39
37
|
const current = this.workers[workerPath];
|
|
40
|
-
Object.keys(current).forEach(id => {
|
|
38
|
+
Object.keys(current).forEach((id) => {
|
|
41
39
|
current[id].terminate();
|
|
42
40
|
});
|
|
43
41
|
});
|
|
44
42
|
}
|
|
45
43
|
getNonBusyId(workerPath) {
|
|
46
|
-
return this.workers[workerPath]
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
return this.workers[workerPath]
|
|
45
|
+
? Object.keys(this.workers[workerPath] || {}).find((id) => {
|
|
46
|
+
return !this.workers[workerPath][id].busy;
|
|
47
|
+
})
|
|
48
|
+
: undefined;
|
|
49
49
|
}
|
|
50
50
|
getWorkerCountForPath(p) {
|
|
51
51
|
return this.workers[p] ? Object.keys(this.workers[p]).length : 0;
|
|
@@ -54,8 +54,8 @@ class WorkerPool {
|
|
|
54
54
|
return Object.keys(this.workers).reduce((result, current) => this.getWorkerCountForPath(current) + result, 0);
|
|
55
55
|
}
|
|
56
56
|
isBeyondLimit(workerPath, limit) {
|
|
57
|
-
return (this.workers[workerPath] && limit > 0 && this.getWorkerCountForPath(workerPath) >= limit)
|
|
58
|
-
|
|
57
|
+
return ((this.workers[workerPath] && limit > 0 && this.getWorkerCountForPath(workerPath) >= limit) ||
|
|
58
|
+
(this.overallLimit > 0 && this.getWorkerCount() >= this.overallLimit));
|
|
59
59
|
}
|
|
60
60
|
async getWorker(workerPath, options = {}, limit = 0) {
|
|
61
61
|
const nonBusyId = this.getNonBusyId(workerPath);
|
|
@@ -64,7 +64,7 @@ class WorkerPool {
|
|
|
64
64
|
return this.workers[workerPath][nonBusyId];
|
|
65
65
|
}
|
|
66
66
|
else if (this.isBeyondLimit(workerPath, limit) || this._creating) {
|
|
67
|
-
await new Promise(r => setTimeout(r, this.idleCheckTimeout));
|
|
67
|
+
await new Promise((r) => setTimeout(r, this.idleCheckTimeout));
|
|
68
68
|
return this.getWorker(workerPath, options, limit);
|
|
69
69
|
}
|
|
70
70
|
this._creating = true;
|
|
@@ -89,9 +89,7 @@ const isWebSocket = (request) => {
|
|
|
89
89
|
return false;
|
|
90
90
|
const connection = request.headers.connection || '';
|
|
91
91
|
const upgrade = request.headers.upgrade || '';
|
|
92
|
-
return request.method === 'GET' &&
|
|
93
|
-
connection.toLowerCase().split(/ *, */).indexOf('upgrade') >= 0 &&
|
|
94
|
-
upgrade.toLowerCase() === 'websocket';
|
|
92
|
+
return request.method === 'GET' && connection.toLowerCase().split(/ *, */).indexOf('upgrade') >= 0 && upgrade.toLowerCase() === 'websocket';
|
|
95
93
|
};
|
|
96
94
|
|
|
97
95
|
// TODO: improve
|
|
@@ -107,7 +105,7 @@ const parseWsMessage = (data) => {
|
|
|
107
105
|
let i = ifm + 4;
|
|
108
106
|
const masks = data.slice(ifm, i);
|
|
109
107
|
let index = 0;
|
|
110
|
-
let output =
|
|
108
|
+
let output = '';
|
|
111
109
|
const l = data.length;
|
|
112
110
|
while (i < l) {
|
|
113
111
|
output += String.fromCharCode(data[i++] ^ masks[index++ % 4]);
|
|
@@ -137,33 +135,34 @@ const constructWsMessage = (text) => {
|
|
|
137
135
|
return buffer;
|
|
138
136
|
};
|
|
139
137
|
|
|
138
|
+
const headerToString = (header) => (typeof header === 'string' ? header : header[0]);
|
|
140
139
|
const getClientIp = (request) => {
|
|
141
140
|
if (request.headers['x-client-ip']) {
|
|
142
|
-
return request.headers['x-client-ip'];
|
|
141
|
+
return headerToString(request.headers['x-client-ip']);
|
|
143
142
|
}
|
|
144
143
|
if (request.headers['x-forwarded-for']) {
|
|
145
|
-
return request.headers['x-forwarded-for'];
|
|
144
|
+
return headerToString(request.headers['x-forwarded-for']);
|
|
146
145
|
}
|
|
147
146
|
if (request.headers['cf-connecting-ip']) {
|
|
148
|
-
return request.headers['cf-connecting-ip'];
|
|
147
|
+
return headerToString(request.headers['cf-connecting-ip']);
|
|
149
148
|
}
|
|
150
149
|
if (request.headers['fastly-client-ip']) {
|
|
151
|
-
return request.headers['fastly-client-ip'];
|
|
150
|
+
return headerToString(request.headers['fastly-client-ip']);
|
|
152
151
|
}
|
|
153
152
|
if (request.headers['true-client-ip']) {
|
|
154
|
-
return request.headers['true-client-ip'];
|
|
153
|
+
return headerToString(request.headers['true-client-ip']);
|
|
155
154
|
}
|
|
156
155
|
if (request.headers['x-real-ip']) {
|
|
157
|
-
return request.headers['x-real-ip'];
|
|
156
|
+
return headerToString(request.headers['x-real-ip']);
|
|
158
157
|
}
|
|
159
158
|
if (request.headers['x-cluster-client-ip']) {
|
|
160
|
-
return request.headers['x-cluster-client-ip'];
|
|
159
|
+
return headerToString(request.headers['x-cluster-client-ip']);
|
|
161
160
|
}
|
|
162
161
|
if (request.headers['x-forwarded']) {
|
|
163
|
-
return request.headers['x-forwarded'];
|
|
162
|
+
return headerToString(request.headers['x-forwarded']);
|
|
164
163
|
}
|
|
165
164
|
if (request.headers['forwarded-for']) {
|
|
166
|
-
return request.headers['forwarded-for'];
|
|
165
|
+
return headerToString(request.headers['forwarded-for']);
|
|
167
166
|
}
|
|
168
167
|
if (request.headers.forwarded) {
|
|
169
168
|
return request.headers.forwarded;
|
|
@@ -182,12 +181,12 @@ const bodyParser = (config = { limitRequestBody: 1000000, shouldError: true }) =
|
|
|
182
181
|
next();
|
|
183
182
|
return;
|
|
184
183
|
}
|
|
185
|
-
request.on('data', data => {
|
|
184
|
+
request.on('data', (data) => {
|
|
186
185
|
body += data;
|
|
187
186
|
// Too much POST data, kill the connection!
|
|
188
187
|
// 1e6 === 1 * Math.pow(10, 6) === 1 * 1000000 ~~~ 1MB
|
|
189
188
|
if (body.length > (config.limitRequestBody || 1000000)) {
|
|
190
|
-
body =
|
|
189
|
+
body = '';
|
|
191
190
|
if (config.shouldError) {
|
|
192
191
|
response.writeHead(413, { 'Content-Type': 'text/plain' });
|
|
193
192
|
response.end();
|
|
@@ -204,9 +203,7 @@ const bodyParser = (config = { limitRequestBody: 1000000, shouldError: true }) =
|
|
|
204
203
|
});
|
|
205
204
|
};
|
|
206
205
|
|
|
207
|
-
const ForbiddenPaths = [
|
|
208
|
-
'..'
|
|
209
|
-
];
|
|
206
|
+
const ForbiddenPaths = ['..'];
|
|
210
207
|
const Protocols = {
|
|
211
208
|
http: 'HTTP',
|
|
212
209
|
websocket: 'WS',
|
|
@@ -218,12 +215,9 @@ const DefaultOptions = {
|
|
|
218
215
|
limitRequestBody: 1000000,
|
|
219
216
|
limitRequestTimeout: 5000,
|
|
220
217
|
idleCheckTimeout: 5,
|
|
221
|
-
onStdout: () => {
|
|
222
|
-
},
|
|
223
|
-
|
|
224
|
-
},
|
|
225
|
-
onExit: () => {
|
|
226
|
-
},
|
|
218
|
+
onStdout: () => { },
|
|
219
|
+
onStderr: () => { },
|
|
220
|
+
onExit: () => { },
|
|
227
221
|
onForbiddenPath: (request, response) => {
|
|
228
222
|
response.writeHead(500, { 'Content-Type': 'text/plain' });
|
|
229
223
|
response.end();
|
|
@@ -259,16 +253,13 @@ const workerMiddleware = (options) => {
|
|
|
259
253
|
let currentPathFragments = pathFragments.slice(0);
|
|
260
254
|
let pathExists = false;
|
|
261
255
|
await new Promise((resolve, reject) => {
|
|
262
|
-
if (pathFragments.find(p => ForbiddenPaths.includes(p))) {
|
|
256
|
+
if (pathFragments.find((p) => ForbiddenPaths.includes(p))) {
|
|
263
257
|
config.onForbiddenPath(request, response);
|
|
264
258
|
reject();
|
|
265
259
|
}
|
|
266
260
|
resolve();
|
|
267
261
|
});
|
|
268
|
-
await Promise.race([
|
|
269
|
-
new Promise((res, rej) => setTimeout(rej, config.limitRequestTimeout)),
|
|
270
|
-
new Promise(res => bodyParser$1(request, response, res)),
|
|
271
|
-
]);
|
|
262
|
+
await Promise.race([new Promise((res, rej) => setTimeout(rej, config.limitRequestTimeout)), new Promise((res) => bodyParser$1(request, response, res))]);
|
|
272
263
|
let indexPath;
|
|
273
264
|
if (aliasCache[pathname] && fs.existsSync(aliasCache[pathname])) {
|
|
274
265
|
isWorker = true;
|
|
@@ -291,7 +282,7 @@ const workerMiddleware = (options) => {
|
|
|
291
282
|
const currentStats = fs.statSync(currentPath);
|
|
292
283
|
if (pathExists && currentStats.isDirectory()) {
|
|
293
284
|
// index fallback
|
|
294
|
-
pathExists = !!config.index.find(indexFile => {
|
|
285
|
+
pathExists = !!config.index.find((indexFile) => {
|
|
295
286
|
const checkIndexFilePath = path.join(currentPath, indexFile);
|
|
296
287
|
if (fs.existsSync(checkIndexFilePath)) {
|
|
297
288
|
isWorker = true;
|
|
@@ -319,7 +310,6 @@ const workerMiddleware = (options) => {
|
|
|
319
310
|
}
|
|
320
311
|
}
|
|
321
312
|
}
|
|
322
|
-
/** @type {RequestEvent} */
|
|
323
313
|
const event = {
|
|
324
314
|
httpMethod: request.method.toUpperCase(),
|
|
325
315
|
protocol: isWebSocket(request) ? Protocols.websocket : Protocols.http,
|
|
@@ -331,17 +321,19 @@ const workerMiddleware = (options) => {
|
|
|
331
321
|
body: `${request.body}`,
|
|
332
322
|
rootPath: rootPath,
|
|
333
323
|
};
|
|
334
|
-
const worker = isWorker
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
324
|
+
const worker = isWorker
|
|
325
|
+
? await workerPool.getWorker(indexPath, {
|
|
326
|
+
stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
|
|
327
|
+
env: { ...process.env, ...config.env },
|
|
328
|
+
cwd: config.cwd,
|
|
329
|
+
}, typeof config.limitPerPath === 'function' ? config.limitPerPath(indexPath) : config.limitPerPath)
|
|
330
|
+
: await workerPool.getWorker(config.staticWorker, {
|
|
331
|
+
cwd: process.cwd(),
|
|
332
|
+
stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
|
|
333
|
+
}, 1);
|
|
342
334
|
const requestId = uuid.v4();
|
|
343
335
|
let firstReceived = false;
|
|
344
|
-
const requestSocketListener = data => {
|
|
336
|
+
const requestSocketListener = (data) => {
|
|
345
337
|
const frame = parseWsMessage(data);
|
|
346
338
|
// TODO: filter open frame better
|
|
347
339
|
if (data.length === 8 && !firstReceived) {
|
|
@@ -352,7 +344,7 @@ const workerMiddleware = (options) => {
|
|
|
352
344
|
worker.postMessage({
|
|
353
345
|
type: index.WORKER_EVENT.WS_MESSAGE_RECEIVE,
|
|
354
346
|
requestId,
|
|
355
|
-
event: { ...event, frame }
|
|
347
|
+
event: { ...event, frame },
|
|
356
348
|
});
|
|
357
349
|
};
|
|
358
350
|
if (event.protocol === Protocols.websocket) {
|
|
@@ -362,14 +354,13 @@ const workerMiddleware = (options) => {
|
|
|
362
354
|
worker.instance.stdout.on('data', config.onStdout);
|
|
363
355
|
worker.instance.stderr.off('data', config.onStderr);
|
|
364
356
|
worker.instance.stderr.on('data', config.onStderr);
|
|
365
|
-
const messageListener = responseEvent => {
|
|
357
|
+
const messageListener = (responseEvent) => {
|
|
366
358
|
if (responseEvent.requestId === requestId) {
|
|
367
359
|
if (responseEvent.type === index.WORKER_EVENT.RESPONSE) {
|
|
368
360
|
worker.postMessage({
|
|
369
361
|
type: index.WORKER_EVENT.RESPONSE_ACKNOWLEDGE,
|
|
370
362
|
requestId,
|
|
371
363
|
});
|
|
372
|
-
/** @type {ResponseEvent|WSFrameEvent} event */
|
|
373
364
|
const { event } = responseEvent;
|
|
374
365
|
const bufferEncoding = event.isBase64Encoded ? 'base64' : 'utf8';
|
|
375
366
|
response.writeHead(event.statusCode, event.headers);
|
|
@@ -381,7 +372,6 @@ const workerMiddleware = (options) => {
|
|
|
381
372
|
type: index.WORKER_EVENT.RESPONSE_ACKNOWLEDGE,
|
|
382
373
|
requestId,
|
|
383
374
|
});
|
|
384
|
-
/** @type {ResponseEvent|WSFrameEvent} event */
|
|
385
375
|
const { event } = responseEvent;
|
|
386
376
|
const bufferEncoding = event.isBase64Encoded ? 'base64' : 'utf8';
|
|
387
377
|
if (!response.headersSent) {
|
|
@@ -406,7 +396,7 @@ const workerMiddleware = (options) => {
|
|
|
406
396
|
worker.postMessage({
|
|
407
397
|
type: index.WORKER_EVENT.WS_CONNECTION_CLOSE,
|
|
408
398
|
requestId,
|
|
409
|
-
event
|
|
399
|
+
event,
|
|
410
400
|
});
|
|
411
401
|
if (request.socket && request.socket.off)
|
|
412
402
|
request.socket.off('close', requestCloseListener);
|
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","bodyParser","createBodyParser","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/middleware/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["uuid","bodyParser","createBodyParser","WORKER_EVENT"],"mappings":"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"}
|
package/dist/staticWorker.js
CHANGED
|
@@ -100,30 +100,19 @@ function etag(body) {
|
|
|
100
100
|
return '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';
|
|
101
101
|
}
|
|
102
102
|
// compute hash of entity
|
|
103
|
-
const hash = crypto
|
|
104
|
-
.createHash('sha1')
|
|
105
|
-
.update(body, 'utf8')
|
|
106
|
-
.digest('base64')
|
|
107
|
-
.substring(0, 27);
|
|
103
|
+
const hash = crypto.createHash('sha1').update(body, 'utf8').digest('base64').substring(0, 27);
|
|
108
104
|
// compute length of entity
|
|
109
|
-
const len = typeof body === 'string'
|
|
110
|
-
? Buffer.byteLength(body, 'utf8')
|
|
111
|
-
: body.length;
|
|
105
|
+
const len = typeof body === 'string' ? Buffer.byteLength(body, 'utf8') : body.length;
|
|
112
106
|
return `"${len.toString(16)}-${hash}"`;
|
|
113
107
|
}
|
|
114
|
-
|
|
115
|
-
* TODO: implement
|
|
116
|
-
* @param {Buffer} body
|
|
117
|
-
* @param {string} fileName
|
|
118
|
-
* @returns {boolean|string}
|
|
119
|
-
*/
|
|
108
|
+
// TODO: implement
|
|
120
109
|
function getCharset(body, fileName) {
|
|
121
110
|
// Byte order mark
|
|
122
|
-
if (body[0] ===
|
|
111
|
+
if (body[0] === 0xef && body[1] === 0xbb && body[2] === 0xbf)
|
|
123
112
|
return 'utf8';
|
|
124
|
-
if (body[0] ===
|
|
113
|
+
if (body[0] === 0xfe && body[1] === 0xff)
|
|
125
114
|
return 'utf16be';
|
|
126
|
-
if (body[0] ===
|
|
115
|
+
if (body[0] === 0xff && body[1] === 0xfe)
|
|
127
116
|
return 'utf16le';
|
|
128
117
|
if (body.indexOf('') === 0)
|
|
129
118
|
return 'iso-8859-1';
|
|
@@ -167,7 +156,7 @@ const staticWorker = (event, callback = () => { }) => {
|
|
|
167
156
|
'Content-Type': `${contentType}${charset ? `; charset=${charset}` : ''}`,
|
|
168
157
|
'Cache-Control': 'public, max-age=0',
|
|
169
158
|
'Content-Length': String(bodyBuffer.byteLength),
|
|
170
|
-
|
|
159
|
+
ETag: currentEtag,
|
|
171
160
|
...(stats.mtime && { 'Last-Modified': lastModified.toUTCString() }),
|
|
172
161
|
},
|
|
173
162
|
body: isModified ? bodyBuffer.toString('base64') : '',
|
package/dist/staticWorker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticWorker.js","sources":["../src/staticWorker.ts"],"sourcesContent":[null],"names":["execSync"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"staticWorker.js","sources":["../src/staticWorker.ts"],"sourcesContent":[null],"names":["execSync"],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { WORKER_EVENT } from '../constants';
|
|
1
2
|
export type RequestEvent = {
|
|
2
3
|
httpMethod: string;
|
|
3
4
|
protocol: string;
|
|
@@ -21,9 +22,13 @@ export type WorkerInputEvent = {
|
|
|
21
22
|
event?: RequestEvent;
|
|
22
23
|
};
|
|
23
24
|
export type WorkerOutputEvent = {
|
|
24
|
-
type:
|
|
25
|
+
type: Exclude<WORKER_EVENT, WORKER_EVENT.WS_MESSAGE_SEND>;
|
|
26
|
+
requestId: string;
|
|
27
|
+
event?: ResponseEvent;
|
|
28
|
+
} | {
|
|
29
|
+
type: WORKER_EVENT.WS_MESSAGE_SEND;
|
|
25
30
|
requestId: string;
|
|
26
|
-
event?:
|
|
31
|
+
event?: WSFrameEvent;
|
|
27
32
|
};
|
|
28
33
|
export type ResponseEvent = {
|
|
29
34
|
statusCode: number;
|
package/dist/workerInvoke.js
CHANGED
|
@@ -2,34 +2,42 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-aad82b3f.js');
|
|
4
4
|
|
|
5
|
-
/** @namespace Middleware */
|
|
6
|
-
/** @type {InvokableWorker} worker */
|
|
7
5
|
const worker = require(process.argv[2]);
|
|
8
|
-
/** @type {WorkerInputEvent} message */
|
|
9
6
|
function messageListener(message) {
|
|
10
7
|
if (message.type === index.WORKER_EVENT.REQUEST) {
|
|
11
8
|
process.send({
|
|
12
9
|
type: index.WORKER_EVENT.REQUEST_ACKNOWLEDGE,
|
|
13
10
|
requestId: message.requestId,
|
|
14
11
|
});
|
|
15
|
-
const callback = responseEvent => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (responseEvent
|
|
25
|
-
e
|
|
12
|
+
const callback = (responseEvent) => {
|
|
13
|
+
let e;
|
|
14
|
+
if ('sendWsMessage' in responseEvent) {
|
|
15
|
+
e = {
|
|
16
|
+
type: index.WORKER_EVENT.WS_MESSAGE_SEND,
|
|
17
|
+
requestId: message.requestId,
|
|
18
|
+
event: responseEvent,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
else if ('emit' in responseEvent) {
|
|
22
|
+
e = {
|
|
23
|
+
type: index.WORKER_EVENT.RESPONSE_EMIT,
|
|
24
|
+
requestId: message.requestId,
|
|
25
|
+
event: responseEvent,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
e = {
|
|
30
|
+
type: index.WORKER_EVENT.RESPONSE,
|
|
31
|
+
requestId: message.requestId,
|
|
32
|
+
event: responseEvent,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
26
35
|
process.send(e);
|
|
27
36
|
};
|
|
28
37
|
worker(message.event, callback);
|
|
29
38
|
}
|
|
30
39
|
if (message.type === index.WORKER_EVENT.WS_MESSAGE_RECEIVE) {
|
|
31
|
-
const callback = responseEvent => {
|
|
32
|
-
/** @type {WorkerOutputEvent} e */
|
|
40
|
+
const callback = (responseEvent) => {
|
|
33
41
|
const e = {
|
|
34
42
|
type: index.WORKER_EVENT.WS_MESSAGE_SEND,
|
|
35
43
|
requestId: message.requestId,
|
|
@@ -40,8 +48,7 @@ function messageListener(message) {
|
|
|
40
48
|
worker(message.event, callback);
|
|
41
49
|
}
|
|
42
50
|
if (message.type === index.WORKER_EVENT.WS_CONNECTION_CLOSE) {
|
|
43
|
-
|
|
44
|
-
worker({ ...message.event, closed: true }, responseEvent => {
|
|
51
|
+
worker({ ...message.event, closed: true }, (responseEvent) => {
|
|
45
52
|
process.send({
|
|
46
53
|
type: index.WORKER_EVENT.WS_CONNECTION_CLOSE_ACKNOWLEDGE,
|
|
47
54
|
requestId: message.requestId,
|
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,CAAC,CAAC,CAAoB,CAAC;AAE3D,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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@koeroesi86/node-worker-express",
|
|
3
|
-
"version": "v23.03.
|
|
3
|
+
"version": "v23.03.4393924423-main",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist",
|
|
6
6
|
"typings": "dist",
|
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
"access": "public"
|
|
14
14
|
},
|
|
15
15
|
"scripts": {
|
|
16
|
-
"
|
|
16
|
+
"lint": "eslint --ext .ts --cache --cache-location .cache/eslint/ .",
|
|
17
17
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
18
|
+
"build": "rm -rf ./dist && rollup -c rollup.config.js",
|
|
18
19
|
"start": "nodemon examples/server.js",
|
|
19
20
|
"generate-version": "node scripts/version.js"
|
|
20
21
|
},
|
|
@@ -27,8 +28,13 @@
|
|
|
27
28
|
"@rollup/plugin-typescript": "^11.0.0",
|
|
28
29
|
"@types/express": "^4.17.17",
|
|
29
30
|
"@types/node": "^18.15.0",
|
|
31
|
+
"@typescript-eslint/eslint-plugin": "^5.54.1",
|
|
32
|
+
"@typescript-eslint/parser": "^5.54.1",
|
|
33
|
+
"eslint": "^8.36.0",
|
|
34
|
+
"eslint-plugin-prettier": "^4.2.1",
|
|
30
35
|
"express": "^4.18.2",
|
|
31
36
|
"nodemon": "^2.0.21",
|
|
37
|
+
"prettier": "^2.8.4",
|
|
32
38
|
"rollup": "^3.19.1",
|
|
33
39
|
"tslib": "^2.5.0",
|
|
34
40
|
"typescript": "^4.9.5"
|