@devrev/ts-adaas 1.19.7-beta.0 → 1.19.8
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/attachments-streaming/attachments-streaming-pool.d.ts.map +1 -1
- package/dist/attachments-streaming/attachments-streaming-pool.js +6 -4
- package/dist/attachments-streaming/attachments-streaming-pool.test.js +65 -0
- package/dist/common/errors.d.ts +4 -1
- package/dist/common/errors.d.ts.map +1 -1
- package/dist/mock-server/mock-server.d.ts.map +1 -1
- package/dist/mock-server/mock-server.interfaces.d.ts +4 -0
- package/dist/mock-server/mock-server.interfaces.d.ts.map +1 -1
- package/dist/mock-server/mock-server.js +13 -3
- package/dist/multithreading/worker-adapter/worker-adapter.d.ts +5 -1
- package/dist/multithreading/worker-adapter/worker-adapter.d.ts.map +1 -1
- package/dist/multithreading/worker-adapter/worker-adapter.js +17 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments-streaming-pool.d.ts","sourceRoot":"","sources":["../../src/attachments-streaming/attachments-streaming-pool.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,2BAA2B,EAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,qBAAa,wBAAwB,CAAC,cAAc;IAClD,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAA4C;IAE1D,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAM;gBAEnC,EACV,OAAO,EACP,WAAW,EACX,SAAc,EACd,MAAM,GACP,EAAE,8BAA8B,CAAC,cAAc,CAAC;YAQnC,cAAc;IAS5B;;;;;OAKG;IAEH,OAAO,CAAC,2BAA2B;IAsB7B,SAAS,IAAI,OAAO,CAAC,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"attachments-streaming-pool.d.ts","sourceRoot":"","sources":["../../src/attachments-streaming/attachments-streaming-pool.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,2BAA2B,EAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAEzF,qBAAa,wBAAwB,CAAC,cAAc;IAClD,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAA4C;IAE1D,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAM;gBAEnC,EACV,OAAO,EACP,WAAW,EACX,SAAc,EACd,MAAM,GACP,EAAE,8BAA8B,CAAC,cAAc,CAAC;YAQnC,cAAc;IAS5B;;;;;OAKG;IAEH,OAAO,CAAC,2BAA2B;IAsB7B,SAAS,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAgDjD,kBAAkB;CA0FzB"}
|
|
@@ -69,8 +69,10 @@ class AttachmentsStreamingPool {
|
|
|
69
69
|
for (let i = 0; i < initialBatchSize; i++) {
|
|
70
70
|
initialPromises.push(this.startPoolStreaming());
|
|
71
71
|
}
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
await Promise.race([
|
|
73
|
+
Promise.all(initialPromises),
|
|
74
|
+
this.adapter.timeoutSignal,
|
|
75
|
+
]);
|
|
74
76
|
if (this.delay) {
|
|
75
77
|
return { delay: this.delay };
|
|
76
78
|
}
|
|
@@ -117,8 +119,8 @@ class AttachmentsStreamingPool {
|
|
|
117
119
|
await this.updateProgress();
|
|
118
120
|
continue;
|
|
119
121
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
+
if (!this.adapter.isTimeout &&
|
|
123
|
+
((_c = (_b = this.adapter.state.toDevRev) === null || _b === void 0 ? void 0 : _b.attachmentsMetadata) === null || _c === void 0 ? void 0 : _c.lastProcessedAttachmentsIdsList)) {
|
|
122
124
|
(_d = this.adapter.state.toDevRev) === null || _d === void 0 ? void 0 : _d.attachmentsMetadata.lastProcessedAttachmentsIdsList.push({ id: attachment.id, parent_id: attachment.parent_id });
|
|
123
125
|
}
|
|
124
126
|
await this.updateProgress();
|
|
@@ -17,6 +17,10 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
|
|
|
17
17
|
},
|
|
18
18
|
},
|
|
19
19
|
},
|
|
20
|
+
isTimeout: false,
|
|
21
|
+
// Never resolves: streamAll's race is decided by the workers completing,
|
|
22
|
+
// unless a test overrides this / flips isTimeout.
|
|
23
|
+
timeoutSignal: new Promise(() => { }),
|
|
20
24
|
processAttachment: jest
|
|
21
25
|
.fn()
|
|
22
26
|
.mockResolvedValue({}),
|
|
@@ -513,4 +517,65 @@ describe(attachments_streaming_pool_1.AttachmentsStreamingPool.name, () => {
|
|
|
513
517
|
expect(mockStreamFn).toHaveBeenCalled();
|
|
514
518
|
});
|
|
515
519
|
});
|
|
520
|
+
describe('soft timeout handling', () => {
|
|
521
|
+
it('should resolve streamAll when the timeout signal fires even if a worker is stuck in flight', async () => {
|
|
522
|
+
// A worker stuck in a never-resolving request: only the timeout race can
|
|
523
|
+
// unblock streamAll.
|
|
524
|
+
mockAdapter.processAttachment.mockImplementation(async () => new Promise(() => { }));
|
|
525
|
+
let fireTimeout;
|
|
526
|
+
mockAdapter.timeoutSignal = new Promise((resolve) => {
|
|
527
|
+
fireTimeout = resolve;
|
|
528
|
+
});
|
|
529
|
+
const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
|
|
530
|
+
adapter: mockAdapter,
|
|
531
|
+
attachments: mockAttachments,
|
|
532
|
+
batchSize: 10,
|
|
533
|
+
stream: mockStream,
|
|
534
|
+
});
|
|
535
|
+
const streamAllPromise = pool.streamAll();
|
|
536
|
+
mockAdapter.isTimeout = true;
|
|
537
|
+
fireTimeout();
|
|
538
|
+
const result = await streamAllPromise;
|
|
539
|
+
expect(result).toEqual({});
|
|
540
|
+
});
|
|
541
|
+
it('should not record an attachment as processed when a timeout fires while it is in flight', async () => {
|
|
542
|
+
mockAdapter.processAttachment.mockImplementation(async () => {
|
|
543
|
+
await Promise.resolve();
|
|
544
|
+
mockAdapter.isTimeout = true;
|
|
545
|
+
return {};
|
|
546
|
+
});
|
|
547
|
+
const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
|
|
548
|
+
adapter: mockAdapter,
|
|
549
|
+
attachments: mockAttachments,
|
|
550
|
+
batchSize: 1,
|
|
551
|
+
stream: mockStream,
|
|
552
|
+
});
|
|
553
|
+
await pool.streamAll();
|
|
554
|
+
expect(mockAdapter.state.toDevRev.attachmentsMetadata
|
|
555
|
+
.lastProcessedAttachmentsIdsList).toEqual([]);
|
|
556
|
+
expect(mockAdapter.processAttachment).toHaveBeenCalledTimes(1);
|
|
557
|
+
});
|
|
558
|
+
it('should record attachments completed before the timeout and stop after', async () => {
|
|
559
|
+
let calls = 0;
|
|
560
|
+
mockAdapter.processAttachment.mockImplementation(async () => {
|
|
561
|
+
await Promise.resolve();
|
|
562
|
+
calls++;
|
|
563
|
+
if (calls === 2) {
|
|
564
|
+
mockAdapter.isTimeout = true;
|
|
565
|
+
}
|
|
566
|
+
return {};
|
|
567
|
+
});
|
|
568
|
+
const pool = new attachments_streaming_pool_1.AttachmentsStreamingPool({
|
|
569
|
+
adapter: mockAdapter,
|
|
570
|
+
attachments: mockAttachments,
|
|
571
|
+
batchSize: 1,
|
|
572
|
+
stream: mockStream,
|
|
573
|
+
});
|
|
574
|
+
await pool.streamAll();
|
|
575
|
+
expect(mockAdapter.state.toDevRev.attachmentsMetadata
|
|
576
|
+
.lastProcessedAttachmentsIdsList).toEqual([{ id: 'attachment-1', parent_id: 'parent-1' }]);
|
|
577
|
+
// 2nd was started then abandoned; 3rd never started.
|
|
578
|
+
expect(mockAdapter.processAttachment).toHaveBeenCalledTimes(2);
|
|
579
|
+
});
|
|
580
|
+
});
|
|
516
581
|
});
|
package/dist/common/errors.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export declare const enum ExtractionCommonError {
|
|
2
2
|
EXTERNAL_SYNC_UNIT_DELETED = "ERROR_CODE=EXTERNAL_SYNC_UNIT_DELETED",
|
|
3
3
|
EXTERNAL_SYNC_UNIT_DEACTIVATED = "ERROR_CODE=EXTERNAL_SYNC_UNIT_DEACTIVATED",
|
|
4
|
-
USER_DELETED = "ERROR_CODE=USER_DELETED"
|
|
4
|
+
USER_DELETED = "ERROR_CODE=USER_DELETED",
|
|
5
|
+
EXTERNAL_SYSTEM_NO_ACCESS = "ERROR_CODE=EXTERNAL_SYSTEM_NO_ACCESS",
|
|
6
|
+
EXTERNAL_SYSTEM_NO_PERMISSION = "ERROR_CODE=EXTERNAL_SYSTEM_NO_PERMISSION",
|
|
7
|
+
HISTORICAL_DATA_EXTRACTION_DONE = "ERROR_CODE=HISTORICAL_DATA_EXTRACTION_DONE"
|
|
5
8
|
}
|
|
6
9
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/common/errors.ts"],"names":[],"mappings":"AAGA,0BAAkB,qBAAqB;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/common/errors.ts"],"names":[],"mappings":"AAGA,0BAAkB,qBAAqB;IAIrC,0BAA0B,0CAAgE;IAC1F,8BAA8B,8CAAoE;IAClG,YAAY,4BAAkD;IAG9D,yBAAyB,yCAA+D;IAExF,6BAA6B,6CAAmE;IAEhG,+BAA+B,+CAAqE;CACrG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-server.d.ts","sourceRoot":"","sources":["../../src/mock-server/mock-server.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,WAAW,EACX,WAAW,EAEZ,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"mock-server.d.ts","sourceRoot":"","sources":["../../src/mock-server/mock-server.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,WAAW,EACX,WAAW,EAEZ,MAAM,0BAA0B,CAAC;AA4ElC;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAA4B;gBAErC,IAAI,GAAE,MAAiC;IAMtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAkBpB,aAAa;IA+B3B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,WAAW;IAInB;;OAEG;IACI,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IA8E1C;;;OAGG;IACI,WAAW,IAAI,IAAI;IAM1B;;OAEG;IACI,cAAc,IAAI,WAAW,GAAG,SAAS;IAOhD;;OAEG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAI5D;;OAEG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE;CAQhE"}
|
|
@@ -13,6 +13,8 @@ export interface MockResponse extends ServerResponse {
|
|
|
13
13
|
status(code: number): MockResponse;
|
|
14
14
|
/** Send a JSON response */
|
|
15
15
|
json(data: unknown): void;
|
|
16
|
+
/** Send a raw binary (Buffer) response */
|
|
17
|
+
buffer(data: Buffer): void;
|
|
16
18
|
/** Send an empty response */
|
|
17
19
|
send(): void;
|
|
18
20
|
}
|
|
@@ -43,6 +45,8 @@ export interface RouteConfig {
|
|
|
43
45
|
status: number;
|
|
44
46
|
/** Optional response body to send as JSON */
|
|
45
47
|
body?: unknown;
|
|
48
|
+
/** Optional raw binary response body, e.g. gzipped JSONL (takes precedence over `body`) */
|
|
49
|
+
bodyBuffer?: Buffer;
|
|
46
50
|
/** Optional headers to send with the response */
|
|
47
51
|
headers?: Record<string, string>;
|
|
48
52
|
/** Optional retry configuration for simulating failures before success */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-server.interfaces.d.ts","sourceRoot":"","sources":["../../src/mock-server/mock-server.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAEvD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,yCAAyC;IACzC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC;IACnD,+BAA+B;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IACnC,2BAA2B;IAC3B,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,6BAA6B;IAC7B,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"mock-server.interfaces.d.ts","sourceRoot":"","sources":["../../src/mock-server/mock-server.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAEvD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,yCAAyC;IACzC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC;IACnD,+BAA+B;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IACnC,2BAA2B;IAC3B,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,0CAA0C;IAC1C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,6BAA6B;IAC7B,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,2FAA2F;IAC3F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC"}
|
|
@@ -56,6 +56,10 @@ function wrapResponse(res) {
|
|
|
56
56
|
res.writeHead(statusCode, { 'Content-Type': 'application/json' });
|
|
57
57
|
res.end(JSON.stringify(data));
|
|
58
58
|
};
|
|
59
|
+
mock.buffer = (data) => {
|
|
60
|
+
res.writeHead(statusCode, { 'Content-Type': 'application/octet-stream' });
|
|
61
|
+
res.end(data);
|
|
62
|
+
};
|
|
59
63
|
mock.send = () => {
|
|
60
64
|
res.writeHead(statusCode);
|
|
61
65
|
res.end();
|
|
@@ -174,7 +178,7 @@ class MockServer {
|
|
|
174
178
|
* Configures a route to return a specific status code and optional response body.
|
|
175
179
|
*/
|
|
176
180
|
setRoute(config) {
|
|
177
|
-
const { path, method, status, body, retry, headers, delay } = config;
|
|
181
|
+
const { path, method, status, body, bodyBuffer, retry, headers, delay } = config;
|
|
178
182
|
const key = this.getRouteKey(method, path);
|
|
179
183
|
if (retry) {
|
|
180
184
|
this.requestCounts.set(key, 0);
|
|
@@ -212,7 +216,10 @@ class MockServer {
|
|
|
212
216
|
if (headers) {
|
|
213
217
|
res.set(headers);
|
|
214
218
|
}
|
|
215
|
-
if (
|
|
219
|
+
if (bodyBuffer !== undefined) {
|
|
220
|
+
res.status(status).buffer(bodyBuffer);
|
|
221
|
+
}
|
|
222
|
+
else if (body !== undefined) {
|
|
216
223
|
res.status(status).json(body);
|
|
217
224
|
}
|
|
218
225
|
else {
|
|
@@ -224,7 +231,10 @@ class MockServer {
|
|
|
224
231
|
if (headers) {
|
|
225
232
|
res.set(headers);
|
|
226
233
|
}
|
|
227
|
-
if (
|
|
234
|
+
if (bodyBuffer !== undefined) {
|
|
235
|
+
res.status(status).buffer(bodyBuffer);
|
|
236
|
+
}
|
|
237
|
+
else if (body !== undefined) {
|
|
228
238
|
res.status(status).json(body);
|
|
229
239
|
}
|
|
230
240
|
else {
|
|
@@ -25,8 +25,10 @@ export declare function createWorkerAdapter<ConnectorState>({ event, adapterStat
|
|
|
25
25
|
export declare class WorkerAdapter<ConnectorState> {
|
|
26
26
|
readonly event: AirdropEvent;
|
|
27
27
|
readonly options?: WorkerAdapterOptions;
|
|
28
|
-
isTimeout: boolean;
|
|
29
28
|
hasWorkerEmitted: boolean;
|
|
29
|
+
private _isTimeout;
|
|
30
|
+
private resolveTimeoutSignal;
|
|
31
|
+
readonly timeoutSignal: Promise<void>;
|
|
30
32
|
private adapterState;
|
|
31
33
|
private _artifacts;
|
|
32
34
|
private repos;
|
|
@@ -36,6 +38,8 @@ export declare class WorkerAdapter<ConnectorState> {
|
|
|
36
38
|
private _mappers;
|
|
37
39
|
private uploader;
|
|
38
40
|
constructor({ event, adapterState, options, }: WorkerAdapterInterface<ConnectorState>);
|
|
41
|
+
get isTimeout(): boolean;
|
|
42
|
+
set isTimeout(value: boolean);
|
|
39
43
|
get state(): AdapterState<ConnectorState>;
|
|
40
44
|
set state(value: AdapterState<ConnectorState>);
|
|
41
45
|
get reports(): LoaderReport[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-adapter.d.ts","sourceRoot":"","sources":["../../../src/multithreading/worker-adapter/worker-adapter.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EACL,oBAAoB,EACpB,aAAa,EACd,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EACL,YAAY,EACZ,SAAS,EAET,kCAAkC,EAClC,yCAAyC,EACzC,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,wBAAwB,EACxB,kBAAkB,EAClB,6BAA6B,EAC7B,UAAU,EACV,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EAEtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EAGrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAkB,MAAM,oCAAoC,CAAC;AAI9E,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,EAClD,KAAK,EACL,YAAY,EACZ,OAAO,GACR,EAAE,sBAAsB,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,CAMxE;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAa,CAAC,cAAc;IACvC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IACxC,
|
|
1
|
+
{"version":3,"file":"worker-adapter.d.ts","sourceRoot":"","sources":["../../../src/multithreading/worker-adapter/worker-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,10 @@ function createWorkerAdapter({ event, adapterState, options, }) {
|
|
|
46
46
|
*/
|
|
47
47
|
class WorkerAdapter {
|
|
48
48
|
constructor({ event, adapterState, options, }) {
|
|
49
|
+
this._isTimeout = false;
|
|
50
|
+
this.timeoutSignal = new Promise((resolve) => {
|
|
51
|
+
this.resolveTimeoutSignal = resolve;
|
|
52
|
+
});
|
|
49
53
|
this.repos = [];
|
|
50
54
|
this.currentEventDataLength = 0;
|
|
51
55
|
this.event = event;
|
|
@@ -53,7 +57,6 @@ class WorkerAdapter {
|
|
|
53
57
|
this.adapterState = adapterState;
|
|
54
58
|
this._artifacts = [];
|
|
55
59
|
this.hasWorkerEmitted = false;
|
|
56
|
-
this.isTimeout = false;
|
|
57
60
|
// Loader
|
|
58
61
|
this.loaderReports = [];
|
|
59
62
|
this._processedFiles = [];
|
|
@@ -66,6 +69,15 @@ class WorkerAdapter {
|
|
|
66
69
|
options,
|
|
67
70
|
});
|
|
68
71
|
}
|
|
72
|
+
get isTimeout() {
|
|
73
|
+
return this._isTimeout;
|
|
74
|
+
}
|
|
75
|
+
set isTimeout(value) {
|
|
76
|
+
this._isTimeout = value;
|
|
77
|
+
if (value) {
|
|
78
|
+
this.resolveTimeoutSignal();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
69
81
|
get state() {
|
|
70
82
|
return this.adapterState.state;
|
|
71
83
|
}
|
|
@@ -691,6 +703,10 @@ class WorkerAdapter {
|
|
|
691
703
|
else if (attachment.inline === false) {
|
|
692
704
|
ssorAttachment.inline = false;
|
|
693
705
|
}
|
|
706
|
+
if (this.isTimeout) {
|
|
707
|
+
this.destroyHttpStream(httpStream);
|
|
708
|
+
return;
|
|
709
|
+
}
|
|
694
710
|
await ((_c = this.getRepo('ssor_attachment')) === null || _c === void 0 ? void 0 : _c.push([ssorAttachment]));
|
|
695
711
|
return;
|
|
696
712
|
}
|