@koeroesi86/node-worker-express 22.3.12-fd2e588 → 23.3.4361459321-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.
Files changed (42) hide show
  1. package/README.md +1 -1
  2. package/dist/constants/index.d.ts +11 -0
  3. package/dist/index-aad82b3f.js +15 -0
  4. package/dist/index-aad82b3f.js.map +1 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.js +446 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/middleware/bodyParser.d.ts +5 -0
  9. package/dist/middleware/index.d.ts +19 -0
  10. package/dist/staticWorker.d.ts +3 -0
  11. package/dist/staticWorker.js +194 -0
  12. package/dist/staticWorker.js.map +1 -0
  13. package/dist/types/index.d.ts +41 -0
  14. package/dist/utils/constructWsMessage.d.ts +3 -0
  15. package/dist/utils/getClientIp.d.ts +3 -0
  16. package/dist/utils/isWebSocket.d.ts +3 -0
  17. package/dist/utils/parseWsMessage.d.ts +3 -0
  18. package/dist/utils/workerPool.d.ts +19 -0
  19. package/dist/workerInvoke.d.ts +1 -0
  20. package/dist/workerInvoke.js +54 -0
  21. package/dist/workerInvoke.js.map +1 -0
  22. package/package.json +8 -3
  23. package/rollup.config.js +12 -0
  24. package/.travis.yml +0 -17
  25. package/constants/index.js +0 -12
  26. package/examples/public/favicon.ico +0 -0
  27. package/examples/public/websocket/worker.js +0 -60
  28. package/examples/public/worker.js +0 -42
  29. package/examples/server.js +0 -29
  30. package/examples/staticWorker.js +0 -237
  31. package/index.d.ts +0 -64
  32. package/index.js +0 -3
  33. package/middleware/bodyParser.js +0 -36
  34. package/middleware/index.js +0 -288
  35. package/middleware/workerInvoke.js +0 -54
  36. package/nodemon.json +0 -6
  37. package/scripts/version.js +0 -9
  38. package/utils/constructWsMessage.js +0 -27
  39. package/utils/getClientIp.js +0 -71
  40. package/utils/isWebSocket.js +0 -16
  41. package/utils/parseWsMessage.js +0 -25
  42. package/utils/workerPool.js +0 -101
package/README.md CHANGED
@@ -19,4 +19,4 @@ yarn install
19
19
  yarn start
20
20
  ```
21
21
 
22
- For all options see [types](./index.d.ts).
22
+ For all options see [types](https://github.com/Koeroesi86/node-worker-express/blob/main/src/middleware/index.ts).
@@ -0,0 +1,11 @@
1
+ export declare enum WORKER_EVENT {
2
+ REQUEST = "WORKER_REQUEST",
3
+ REQUEST_ACKNOWLEDGE = "WORKER_REQUEST_ACK",
4
+ RESPONSE = "WORKER_RESPONSE",
5
+ RESPONSE_EMIT = "WORKER_RESPONSE_EMIT",
6
+ RESPONSE_ACKNOWLEDGE = "WORKER_RESPONSE_ACK",
7
+ WS_MESSAGE_RECEIVE = "WS_MESSAGE_RECEIVE",
8
+ WS_MESSAGE_SEND = "WS_MESSAGE_SEND",
9
+ WS_CONNECTION_CLOSE = "WS_CONNECTION_CLOSE",
10
+ WS_CONNECTION_CLOSE_ACKNOWLEDGE = "WS_CONNECTION_CLOSE_ACK"
11
+ }
@@ -0,0 +1,15 @@
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
@@ -0,0 +1 @@
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;;"}
@@ -0,0 +1 @@
1
+ export { default as middleware } from "./middleware";
package/dist/index.js ADDED
@@ -0,0 +1,446 @@
1
+ 'use strict';
2
+
3
+ var uuid = require('uuid');
4
+ var path = require('path');
5
+ var fs = require('fs');
6
+ var url = require('url');
7
+ var index = require('./index-aad82b3f.js');
8
+ var Worker = require('@koeroesi86/node-worker');
9
+
10
+ /** @var {WorkerPool[]} */
11
+ const pools = [];
12
+ process.once('exit', () => {
13
+ pools.forEach(pool => pool.onClose());
14
+ });
15
+ const createWorkerCommand = workerPath => {
16
+ const ext = path.extname(workerPath);
17
+ switch (ext) {
18
+ case '.js':
19
+ default:
20
+ return `node --expose-gc ${path.resolve(__dirname, './workerInvoke.js')} ${workerPath}`;
21
+ }
22
+ };
23
+ class WorkerPool {
24
+ constructor({ overallLimit = 0, idleCheckTimeout = 5, onExit = () => {
25
+ } }) {
26
+ this.overallLimit = overallLimit;
27
+ this.idleCheckTimeout = idleCheckTimeout;
28
+ this.onExit = onExit;
29
+ this.workers = {};
30
+ pools.push(this);
31
+ this._creating = false;
32
+ this.getWorker = this.getWorker.bind(this);
33
+ this.onClose = this.onClose.bind(this);
34
+ this.getNonBusyId = this.getNonBusyId.bind(this);
35
+ this.getWorkerCount = this.getWorkerCount.bind(this);
36
+ }
37
+ onClose() {
38
+ Object.keys(this.workers).forEach(workerPath => {
39
+ const current = this.workers[workerPath];
40
+ Object.keys(current).forEach(id => {
41
+ current[id].terminate();
42
+ });
43
+ });
44
+ }
45
+ getNonBusyId(workerPath) {
46
+ return this.workers[workerPath] ? Object.keys(this.workers[workerPath] || {}).find(id => {
47
+ return !this.workers[workerPath][id].busy;
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;
84
+ }
85
+ }
86
+
87
+ const isWebSocket = (request) => {
88
+ if (request.method !== 'GET')
89
+ return false;
90
+ const connection = request.headers.connection || '';
91
+ const upgrade = request.headers.upgrade || '';
92
+ return request.method === 'GET' &&
93
+ connection.toLowerCase().split(/ *, */).indexOf('upgrade') >= 0 &&
94
+ upgrade.toLowerCase() === 'websocket';
95
+ };
96
+
97
+ // TODO: improve
98
+ const parseWsMessage = (data) => {
99
+ const dl = data[1] & 127;
100
+ let ifm = 2;
101
+ if (dl === 126) {
102
+ ifm = 4;
103
+ }
104
+ else if (dl === 127) {
105
+ ifm = 10;
106
+ }
107
+ let i = ifm + 4;
108
+ const masks = data.slice(ifm, i);
109
+ let index = 0;
110
+ let output = "";
111
+ const l = data.length;
112
+ while (i < l) {
113
+ output += String.fromCharCode(data[i++] ^ masks[index++ % 4]);
114
+ }
115
+ return output;
116
+ };
117
+
118
+ // TODO: improve
119
+ const constructWsMessage = (text) => {
120
+ const jsonByteLength = Buffer.byteLength(text);
121
+ // Note: we're not supporting > 65535 byte payloads at this stage
122
+ const lengthByteCount = jsonByteLength < 126 ? 0 : 2;
123
+ const payloadLength = lengthByteCount === 0 ? jsonByteLength : 126;
124
+ const buffer = Buffer.alloc(2 + lengthByteCount + jsonByteLength);
125
+ // Write out the first byte, using opcode `1` to indicate that the message
126
+ // payload contains text data
127
+ buffer.writeUInt8(0b10000001, 0);
128
+ buffer.writeUInt8(payloadLength, 1);
129
+ // Write the length of the JSON payload to the second byte
130
+ let payloadOffset = 2;
131
+ if (lengthByteCount > 0) {
132
+ buffer.writeUInt16BE(jsonByteLength, 2);
133
+ payloadOffset += lengthByteCount;
134
+ }
135
+ // Write the JSON data to the data buffer
136
+ buffer.write(text, payloadOffset);
137
+ return buffer;
138
+ };
139
+
140
+ const getClientIp = (request) => {
141
+ if (request.headers['x-client-ip']) {
142
+ return request.headers['x-client-ip'];
143
+ }
144
+ if (request.headers['x-forwarded-for']) {
145
+ return request.headers['x-forwarded-for'];
146
+ }
147
+ if (request.headers['cf-connecting-ip']) {
148
+ return request.headers['cf-connecting-ip'];
149
+ }
150
+ if (request.headers['fastly-client-ip']) {
151
+ return request.headers['fastly-client-ip'];
152
+ }
153
+ if (request.headers['true-client-ip']) {
154
+ return request.headers['true-client-ip'];
155
+ }
156
+ if (request.headers['x-real-ip']) {
157
+ return request.headers['x-real-ip'];
158
+ }
159
+ if (request.headers['x-cluster-client-ip']) {
160
+ return request.headers['x-cluster-client-ip'];
161
+ }
162
+ if (request.headers['x-forwarded']) {
163
+ return request.headers['x-forwarded'];
164
+ }
165
+ if (request.headers['forwarded-for']) {
166
+ return request.headers['forwarded-for'];
167
+ }
168
+ if (request.headers.forwarded) {
169
+ return request.headers.forwarded;
170
+ }
171
+ if (request.socket && request.socket.remoteAddress) {
172
+ return request.socket.remoteAddress;
173
+ }
174
+ return '';
175
+ };
176
+
177
+ const ignoredMethods = ['get', 'delete', 'options', 'head'];
178
+ const bodyParser = (config = { limitRequestBody: 1000000, shouldError: true }) => (request, response, next) => {
179
+ let body = '';
180
+ if (ignoredMethods.includes(request.method.toLowerCase())) {
181
+ request.body = body;
182
+ next();
183
+ return;
184
+ }
185
+ request.on('data', data => {
186
+ body += data;
187
+ // Too much POST data, kill the connection!
188
+ // 1e6 === 1 * Math.pow(10, 6) === 1 * 1000000 ~~~ 1MB
189
+ if (body.length > (config.limitRequestBody || 1000000)) {
190
+ body = "";
191
+ if (config.shouldError) {
192
+ response.writeHead(413, { 'Content-Type': 'text/plain' });
193
+ response.end();
194
+ request.connection.destroy();
195
+ }
196
+ else {
197
+ next();
198
+ }
199
+ }
200
+ });
201
+ request.on('end', () => {
202
+ request.body = body;
203
+ next();
204
+ });
205
+ };
206
+
207
+ const ForbiddenPaths = [
208
+ '..'
209
+ ];
210
+ const Protocols = {
211
+ http: 'HTTP',
212
+ websocket: 'WS',
213
+ };
214
+ const DefaultOptions = {
215
+ root: null,
216
+ limit: 0,
217
+ limitPerPath: 0,
218
+ limitRequestBody: 1000000,
219
+ limitRequestTimeout: 5000,
220
+ idleCheckTimeout: 5,
221
+ onStdout: () => {
222
+ },
223
+ onStderr: () => {
224
+ },
225
+ onExit: () => {
226
+ },
227
+ onForbiddenPath: (request, response) => {
228
+ response.writeHead(500, { 'Content-Type': 'text/plain' });
229
+ response.end();
230
+ request.connection.destroy();
231
+ },
232
+ index: [],
233
+ env: {},
234
+ staticWorker: path.resolve(__dirname, './staticWorker.js'),
235
+ cwd: process.cwd(),
236
+ };
237
+ const workerMiddleware = (options) => {
238
+ const config = {
239
+ ...DefaultOptions,
240
+ ...(options && options),
241
+ };
242
+ if (!config.root) {
243
+ throw new Error('No root path defined in configuration!');
244
+ }
245
+ const rootPath = path.resolve(config.root);
246
+ const workerPool = new WorkerPool({
247
+ overallLimit: config.limit,
248
+ onExit: config.onExit,
249
+ idleCheckTimeout: config.idleCheckTimeout,
250
+ });
251
+ const bodyParser$1 = bodyParser({ limitRequestBody: config.limitRequestBody, shouldError: true });
252
+ const aliasCache = {};
253
+ const workerCache = {};
254
+ return async (request, response, next) => {
255
+ const { query: queryStringParameters, pathname } = url.parse(request.url, true);
256
+ try {
257
+ let isWorker = false;
258
+ const pathFragments = pathname.split(/\//gi).filter(Boolean);
259
+ let currentPathFragments = pathFragments.slice(0);
260
+ let pathExists = false;
261
+ await new Promise((resolve, reject) => {
262
+ if (pathFragments.find(p => ForbiddenPaths.includes(p))) {
263
+ config.onForbiddenPath(request, response);
264
+ reject();
265
+ }
266
+ resolve();
267
+ });
268
+ await Promise.race([
269
+ new Promise((res, rej) => setTimeout(rej, config.limitRequestTimeout)),
270
+ new Promise(res => bodyParser$1(request, response, res)),
271
+ ]);
272
+ let indexPath;
273
+ if (aliasCache[pathname] && fs.existsSync(aliasCache[pathname])) {
274
+ isWorker = true;
275
+ indexPath = aliasCache[pathname];
276
+ }
277
+ else if (workerCache[pathname] && fs.existsSync(workerCache[pathname])) {
278
+ isWorker = true;
279
+ indexPath = workerCache[pathname];
280
+ }
281
+ else {
282
+ indexPath = path.join(rootPath, ...currentPathFragments);
283
+ for (let i = currentPathFragments.length; i >= 0 && !pathExists; i--) {
284
+ if (pathExists)
285
+ continue;
286
+ currentPathFragments.splice(i);
287
+ const currentPath = path.join(rootPath, ...currentPathFragments);
288
+ pathExists = fs.existsSync(currentPath);
289
+ if (!pathExists)
290
+ continue;
291
+ const currentStats = fs.statSync(currentPath);
292
+ if (pathExists && currentStats.isDirectory()) {
293
+ // index fallback
294
+ pathExists = !!config.index.find(indexFile => {
295
+ const checkIndexFilePath = path.join(currentPath, indexFile);
296
+ if (fs.existsSync(checkIndexFilePath)) {
297
+ isWorker = true;
298
+ indexPath = checkIndexFilePath;
299
+ aliasCache[pathname] = checkIndexFilePath;
300
+ setTimeout(() => {
301
+ aliasCache[pathname] = null;
302
+ delete aliasCache[pathname];
303
+ }, 5000);
304
+ return true;
305
+ }
306
+ });
307
+ if (pathExists)
308
+ break;
309
+ }
310
+ else if (pathExists && currentStats.isFile()) {
311
+ if (config.index.includes(currentPathFragments[currentPathFragments.length - 1])) {
312
+ isWorker = true;
313
+ workerCache[pathname] = currentPath;
314
+ setTimeout(() => {
315
+ workerCache[pathname] = null;
316
+ delete workerCache[pathname];
317
+ }, 5000);
318
+ }
319
+ }
320
+ }
321
+ }
322
+ /** @type {RequestEvent} */
323
+ const event = {
324
+ httpMethod: request.method.toUpperCase(),
325
+ protocol: isWebSocket(request) ? Protocols.websocket : Protocols.http,
326
+ path: pathname,
327
+ pathFragments: pathFragments,
328
+ queryStringParameters: JSON.parse(JSON.stringify(queryStringParameters)),
329
+ headers: request.headers,
330
+ remoteAddress: getClientIp(request),
331
+ body: `${request.body}`,
332
+ rootPath: rootPath,
333
+ };
334
+ const worker = isWorker ? await workerPool.getWorker(indexPath, {
335
+ stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
336
+ env: { ...process.env, ...config.env },
337
+ cwd: config.cwd,
338
+ }, typeof config.limitPerPath === "function" ? config.limitPerPath(indexPath) : config.limitPerPath) : await workerPool.getWorker(config.staticWorker, {
339
+ cwd: process.cwd(),
340
+ stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
341
+ }, 1);
342
+ const requestId = uuid.v4();
343
+ let firstReceived = false;
344
+ const requestSocketListener = data => {
345
+ const frame = parseWsMessage(data);
346
+ // TODO: filter open frame better
347
+ if (data.length === 8 && !firstReceived) {
348
+ firstReceived = true;
349
+ return;
350
+ }
351
+ firstReceived = true;
352
+ worker.postMessage({
353
+ type: index.WORKER_EVENT.WS_MESSAGE_RECEIVE,
354
+ requestId,
355
+ event: { ...event, frame }
356
+ });
357
+ };
358
+ if (event.protocol === Protocols.websocket) {
359
+ request.socket.on('data', requestSocketListener);
360
+ }
361
+ worker.instance.stdout.off('data', config.onStdout);
362
+ worker.instance.stdout.on('data', config.onStdout);
363
+ worker.instance.stderr.off('data', config.onStderr);
364
+ worker.instance.stderr.on('data', config.onStderr);
365
+ const messageListener = responseEvent => {
366
+ if (responseEvent.requestId === requestId) {
367
+ if (responseEvent.type === index.WORKER_EVENT.RESPONSE) {
368
+ worker.postMessage({
369
+ type: index.WORKER_EVENT.RESPONSE_ACKNOWLEDGE,
370
+ requestId,
371
+ });
372
+ /** @type {ResponseEvent|WSFrameEvent} event */
373
+ const { event } = responseEvent;
374
+ const bufferEncoding = event.isBase64Encoded ? 'base64' : 'utf8';
375
+ response.writeHead(event.statusCode, event.headers);
376
+ response.write(Buffer.from(event.body, bufferEncoding));
377
+ response.end();
378
+ }
379
+ if (responseEvent.type === index.WORKER_EVENT.RESPONSE_EMIT) {
380
+ worker.postMessage({
381
+ type: index.WORKER_EVENT.RESPONSE_ACKNOWLEDGE,
382
+ requestId,
383
+ });
384
+ /** @type {ResponseEvent|WSFrameEvent} event */
385
+ const { event } = responseEvent;
386
+ const bufferEncoding = event.isBase64Encoded ? 'base64' : 'utf8';
387
+ if (!response.headersSent) {
388
+ response.writeHead(event.statusCode, event.headers);
389
+ }
390
+ if (event.body !== null) {
391
+ response.write(Buffer.from(event.body, bufferEncoding).toString());
392
+ }
393
+ else {
394
+ response.end();
395
+ }
396
+ }
397
+ if (responseEvent.type === index.WORKER_EVENT.WS_MESSAGE_SEND) {
398
+ request.socket.write(constructWsMessage(responseEvent.event.frame));
399
+ }
400
+ if (responseEvent.type === index.WORKER_EVENT.REQUEST_ACKNOWLEDGE) {
401
+ worker.busy = false;
402
+ }
403
+ }
404
+ };
405
+ const requestCloseListener = () => {
406
+ worker.postMessage({
407
+ type: index.WORKER_EVENT.WS_CONNECTION_CLOSE,
408
+ requestId,
409
+ event
410
+ });
411
+ if (request.socket && request.socket.off)
412
+ request.socket.off('close', requestCloseListener);
413
+ worker.removeEventListener('message', messageListener);
414
+ };
415
+ request.socket.on('close', requestCloseListener);
416
+ worker.addEventListener('message', messageListener);
417
+ worker.postMessage({
418
+ type: index.WORKER_EVENT.REQUEST,
419
+ requestId,
420
+ event,
421
+ });
422
+ const cleanupConnection = () => {
423
+ worker.removeEventListener('message', messageListener);
424
+ if (request && request.off) {
425
+ request.off('close', cleanupConnection);
426
+ request.off('aborted', cleanupConnection);
427
+ }
428
+ if (request.socket && request.socket.off) {
429
+ request.socket.off('data', requestSocketListener);
430
+ request.socket.off('close', requestCloseListener);
431
+ }
432
+ };
433
+ request.on('aborted', cleanupConnection);
434
+ if (event.protocol === Protocols.http) {
435
+ request.on('close', cleanupConnection);
436
+ response.on('finish', cleanupConnection);
437
+ }
438
+ }
439
+ catch (e) {
440
+ next(e);
441
+ }
442
+ };
443
+ };
444
+
445
+ exports.middleware = workerMiddleware;
446
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,5 @@
1
+ declare const bodyParser: (config?: {
2
+ limitRequestBody: number;
3
+ shouldError: boolean;
4
+ }) => (request: any, response: any, next: any) => void;
5
+ export default bodyParser;
@@ -0,0 +1,19 @@
1
+ /// <reference types="node" />
2
+ import { RequestHandler } from 'express';
3
+ type MiddlewareOptions = {
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
+ };
18
+ declare const workerMiddleware: (options: MiddlewareOptions) => RequestHandler;
19
+ export default workerMiddleware;
@@ -0,0 +1,3 @@
1
+ import { InvokableWorker } from './types';
2
+ declare const staticWorker: InvokableWorker;
3
+ export default staticWorker;