@golemio/core 3.2.2-dev.2622707631 → 3.3.0-dev.2629226513
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/input-gateway/ioc/ContainerToken.d.ts +1 -0
- package/dist/input-gateway/ioc/ContainerToken.js +1 -0
- package/dist/input-gateway/ioc/ContainerToken.js.map +1 -1
- package/dist/input-gateway/ioc/Di.js +7 -0
- package/dist/input-gateway/ioc/Di.js.map +1 -1
- package/dist/integration-engine/datasources/index.d.ts +1 -0
- package/dist/integration-engine/datasources/index.js +1 -0
- package/dist/integration-engine/datasources/index.js.map +1 -1
- package/dist/integration-engine/workers/AbstractTaskWithoutValidation.d.ts +1 -0
- package/dist/integration-engine/workers/AbstractTaskWithoutValidation.js +9 -1
- package/dist/integration-engine/workers/AbstractTaskWithoutValidation.js.map +1 -1
- package/dist/integration-engine/workers/AbstractWorker.d.ts +1 -0
- package/dist/integration-engine/workers/AbstractWorker.js +20 -1
- package/dist/integration-engine/workers/AbstractWorker.js.map +1 -1
- package/dist/integration-engine/workers/helpers/AbortableTask.d.ts +2 -2
- package/dist/integration-engine/workers/helpers/AbortableTask.js +5 -4
- package/dist/integration-engine/workers/helpers/AbortableTask.js.map +1 -1
- package/dist/integration-engine/workers/interfaces/ITask.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContainerToken.js","sourceRoot":"","sources":["../../../src/input-gateway/ioc/ContainerToken.ts"],"names":[],"mappings":";;;AAAA,2DAAmD;AAEnD,MAAM,cAAc,GAAG;IACnB,MAAM,EAAE,MAAM,EAAE;IAChB;;OAEG;IACH,MAAM,EAAE,qBAAS,CAAC,MAAM;IACxB,aAAa,EAAE,MAAM,EAAE;IACvB,qBAAqB,EAAE,MAAM,EAAE;IAC/B,aAAa,EAAE,MAAM,EAAE;IACvB,aAAa,EAAE,MAAM,EAAE;IACvB,cAAc,EAAE,MAAM,EAAE;IACxB,sBAAsB,EAAE,MAAM,EAAE;IAChC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,mBAAmB,EAAE,MAAM,EAAE;CAChC,CAAC;AAEO,wCAAc"}
|
|
1
|
+
{"version":3,"file":"ContainerToken.js","sourceRoot":"","sources":["../../../src/input-gateway/ioc/ContainerToken.ts"],"names":[],"mappings":";;;AAAA,2DAAmD;AAEnD,MAAM,cAAc,GAAG;IACnB,MAAM,EAAE,MAAM,EAAE;IAChB;;OAEG;IACH,MAAM,EAAE,qBAAS,CAAC,MAAM;IACxB,aAAa,EAAE,MAAM,EAAE;IACvB,qBAAqB,EAAE,MAAM,EAAE;IAC/B,aAAa,EAAE,MAAM,EAAE;IACvB,aAAa,EAAE,MAAM,EAAE;IACvB,cAAc,EAAE,MAAM,EAAE;IACxB,cAAc,EAAE,MAAM,EAAE;IACxB,sBAAsB,EAAE,MAAM,EAAE;IAChC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,mBAAmB,EAAE,MAAM,EAAE;CAChC,CAAC;AAEO,wCAAc"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.InputGatewayContainer = void 0;
|
|
7
7
|
const _helpers_1 = require("../../helpers");
|
|
8
8
|
const SimpleConfig_1 = __importDefault(require("../../helpers/configuration/SimpleConfig"));
|
|
9
|
+
const IoRedisConnector_1 = require("../../helpers/data-access/redis/IoRedisConnector");
|
|
9
10
|
const CoreToken_1 = require("../../helpers/ioc/CoreToken");
|
|
10
11
|
const Di_1 = require("../../helpers/ioc/Di");
|
|
11
12
|
const InputGatewayConfiguration_1 = require("../config/InputGatewayConfiguration");
|
|
@@ -40,6 +41,12 @@ InputGatewayContainer.register(ContainerToken_1.ContainerToken.AmqpConnector, {
|
|
|
40
41
|
.register(ContainerToken_1.ContainerToken.StorageServiceProvider, StorageServiceProvider_1.StorageServiceProvider, singletonOptions)
|
|
41
42
|
.register(ContainerToken_1.ContainerToken.StorageService, {
|
|
42
43
|
useFactory: (0, tsyringe_1.instanceCachingFactory)((c) => c.resolve(ContainerToken_1.ContainerToken.StorageServiceProvider).service),
|
|
44
|
+
})
|
|
45
|
+
.register(ContainerToken_1.ContainerToken.RedisConnector, {
|
|
46
|
+
useFactory: (0, tsyringe_1.instanceCachingFactory)((c) => {
|
|
47
|
+
const simpleConfig = c.resolve(CoreToken_1.CoreToken.SimpleConfig);
|
|
48
|
+
return new IoRedisConnector_1.IoRedisConnector(simpleConfig.getValue("env.REDIS_CONN", ""), c.resolve(CoreToken_1.CoreToken.Logger));
|
|
49
|
+
}),
|
|
43
50
|
});
|
|
44
51
|
//#endregion
|
|
45
52
|
//#region Middleware
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/input-gateway/ioc/Di.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAsE;AAEtE,4FAA+D;AAE/D,2DAAmD;AACnD,6CAAkD;AAElD,mFAAiF;AACjF,+DAA6D;AAC7D,kFAAgF;AAChF,4EAA0E;AAC1E,4EAA0E;AAC1E,2EAAyE;AACzE,uCAA6D;AAC7D,qDAAkD;AAElD,wBAAwB;AACxB,MAAM,gBAAgB,GAAG,EAAE,SAAS,EAAE,oBAAS,CAAC,SAAS,EAAE,CAAC;AAC5D,MAAM,qBAAqB,GAAG,oBAAe,CAAC,oBAAoB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/input-gateway/ioc/Di.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ export * from "./datatype-strategy/XMLDataTypeStrategy";
|
|
|
13
13
|
export * from "./protocol-strategy/FTPProtocolStrategy";
|
|
14
14
|
export * from "./protocol-strategy/HTTPRequestProtocolStrategyStreamed";
|
|
15
15
|
export * from "./protocol-strategy/GoogleCloudStorageProtocolStrategy";
|
|
16
|
+
export * from "./protocol-strategy/HTTPFetchProtocolStrategy";
|
|
16
17
|
export * from "./protocol-strategy/PaginatedHTTPProtocolStrategy";
|
|
17
18
|
export * from "./protocol-strategy/IProtocolStrategy";
|
|
18
19
|
export * from "./protocol-strategy/IStreamingProtocolStrategy";
|
|
@@ -30,6 +30,7 @@ __exportStar(require("./datatype-strategy/XMLDataTypeStrategy"), exports);
|
|
|
30
30
|
__exportStar(require("./protocol-strategy/FTPProtocolStrategy"), exports);
|
|
31
31
|
__exportStar(require("./protocol-strategy/HTTPRequestProtocolStrategyStreamed"), exports);
|
|
32
32
|
__exportStar(require("./protocol-strategy/GoogleCloudStorageProtocolStrategy"), exports);
|
|
33
|
+
__exportStar(require("./protocol-strategy/HTTPFetchProtocolStrategy"), exports);
|
|
33
34
|
__exportStar(require("./protocol-strategy/PaginatedHTTPProtocolStrategy"), exports);
|
|
34
35
|
__exportStar(require("./protocol-strategy/IProtocolStrategy"), exports);
|
|
35
36
|
__exportStar(require("./protocol-strategy/IStreamingProtocolStrategy"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/datasources/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6BAA6B;AAC7B,kDAAgC;AAChC,+CAA6B;AAC7B,qDAAmC;AACnC,4DAA0C;AAC1C,uDAAqC;AACrC,+DAA6C;AAC7C,gDAA8B;AAC9B,0EAAwD;AACxD,wEAAsD;AACtD,2EAAyD;AACzD,4EAA0D;AAC1D,0EAAwD;AACxD,0EAAwD;AACxD,0FAAwE;AACxE,yFAAuE;AACvE,oFAAkE;AAClE,wEAAsD;AACtD,iFAA+D;AAC/D,+EAA6D;AAC7D,uFAAqE;AACrE,uEAAqD;AACrD,2EAAyD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/datasources/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6BAA6B;AAC7B,kDAAgC;AAChC,+CAA6B;AAC7B,qDAAmC;AACnC,4DAA0C;AAC1C,uDAAqC;AACrC,+DAA6C;AAC7C,gDAA8B;AAC9B,0EAAwD;AACxD,wEAAsD;AACtD,2EAAyD;AACzD,4EAA0D;AAC1D,0EAAwD;AACxD,0EAAwD;AACxD,0FAAwE;AACxE,yFAAuE;AACvE,gFAA8D;AAC9D,oFAAkE;AAClE,wEAAsD;AACtD,iFAA+D;AAC/D,+EAA6D;AAC7D,uFAAqE;AACrE,uEAAqD;AACrD,2EAAyD"}
|
|
@@ -5,6 +5,7 @@ export declare abstract class AbstractTaskWithoutValidation<TRawData extends obj
|
|
|
5
5
|
queueTtl?: number;
|
|
6
6
|
queuePrefix: string;
|
|
7
7
|
queueType: "classic" | "quorum";
|
|
8
|
+
queueConsumerTimeout?: number;
|
|
8
9
|
constructor(queuePrefix: string);
|
|
9
10
|
get queueKey(): string;
|
|
10
11
|
consume(msg: Message | null): Promise<void>;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AbstractTaskWithoutValidation = void 0;
|
|
4
4
|
const AbortableTask_1 = require("./helpers/AbortableTask");
|
|
5
|
+
// Abort the in-process task slightly before the broker's x-consumer-timeout fires, so the task ends
|
|
6
|
+
// with a graceful AbortError instead of RabbitMQ force-closing the channel.
|
|
7
|
+
const CONSUMER_TIMEOUT_ABORT_MARGIN_MS = 10_000; // 10 seconds
|
|
5
8
|
class AbstractTaskWithoutValidation {
|
|
6
9
|
constructor(queuePrefix) {
|
|
7
10
|
this.queueType = "quorum";
|
|
@@ -11,7 +14,12 @@ class AbstractTaskWithoutValidation {
|
|
|
11
14
|
return `${this.queuePrefix}.${this.queueName}`;
|
|
12
15
|
}
|
|
13
16
|
async consume(msg) {
|
|
14
|
-
|
|
17
|
+
const abortTimeout = this.queueConsumerTimeout !== undefined
|
|
18
|
+
? this.queueConsumerTimeout > CONSUMER_TIMEOUT_ABORT_MARGIN_MS
|
|
19
|
+
? this.queueConsumerTimeout - CONSUMER_TIMEOUT_ABORT_MARGIN_MS
|
|
20
|
+
: this.queueConsumerTimeout
|
|
21
|
+
: undefined;
|
|
22
|
+
return AbortableTask_1.AbortableTask.from(this.validateAndExecute(msg), this.queueKey, abortTimeout);
|
|
15
23
|
}
|
|
16
24
|
}
|
|
17
25
|
exports.AbstractTaskWithoutValidation = AbstractTaskWithoutValidation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractTaskWithoutValidation.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/AbstractTaskWithoutValidation.ts"],"names":[],"mappings":";;;AAEA,2DAAkE;AAElE,MAAsB,6BAA6B;
|
|
1
|
+
{"version":3,"file":"AbstractTaskWithoutValidation.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/AbstractTaskWithoutValidation.ts"],"names":[],"mappings":";;;AAEA,2DAAkE;AAElE,oGAAoG;AACpG,4EAA4E;AAC5E,MAAM,gCAAgC,GAAG,MAAM,CAAC,CAAC,aAAa;AAE9D,MAAsB,6BAA6B;IAO/C,YAAY,WAAmB;QAHxB,cAAS,GAAyB,QAAQ,CAAC;QAI9C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAmB;QACpC,MAAM,YAAY,GACd,IAAI,CAAC,oBAAoB,KAAK,SAAS;YACnC,CAAC,CAAC,IAAI,CAAC,oBAAoB,GAAG,gCAAgC;gBAC1D,CAAC,CAAC,IAAI,CAAC,oBAAoB,GAAG,gCAAgC;gBAC9D,CAAC,CAAC,IAAI,CAAC,oBAAoB;YAC/B,CAAC,CAAC,SAAS,CAAC;QAEpB,OAAO,6BAAa,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACzF,CAAC;CAMJ;AA9BD,sEA8BC"}
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AbstractWorker = void 0;
|
|
4
4
|
const config_1 = require("../config");
|
|
5
|
+
const helpers_1 = require("../helpers");
|
|
6
|
+
const RECOMMENDED_MIN_CONSUMER_TIMEOUT_MS = 60_000; // 1 minute
|
|
7
|
+
const RECOMMENDED_MAX_CONSUMER_TIMEOUT_MS = 7_200_000; // 2 hours
|
|
5
8
|
class AbstractWorker {
|
|
6
9
|
constructor() {
|
|
7
10
|
this.queues = [];
|
|
@@ -23,17 +26,33 @@ class AbstractWorker {
|
|
|
23
26
|
return config_1.config.RABBIT_EXCHANGE_NAME + "." + this.name.toLowerCase();
|
|
24
27
|
}
|
|
25
28
|
getQueueTask(task) {
|
|
29
|
+
const queueArguments = { "x-queue-type": task.queueType };
|
|
30
|
+
// Only declare x-consumer-timeout when set, so untimed queues keep an undefined-free argument table.
|
|
31
|
+
if (task.queueConsumerTimeout !== undefined) {
|
|
32
|
+
this.warnIfConsumerTimeoutOutOfBounds(task.queueName, task.queueConsumerTimeout, task.queueTtl);
|
|
33
|
+
queueArguments["x-consumer-timeout"] = task.queueConsumerTimeout;
|
|
34
|
+
}
|
|
26
35
|
return {
|
|
27
36
|
name: task.queueName,
|
|
28
37
|
options: {
|
|
29
38
|
deadLetterExchange: config_1.config.RABBIT_EXCHANGE_NAME,
|
|
30
39
|
deadLetterRoutingKey: "dead",
|
|
31
40
|
messageTtl: task.queueTtl,
|
|
32
|
-
arguments:
|
|
41
|
+
arguments: queueArguments,
|
|
33
42
|
},
|
|
34
43
|
consume: task.consume.bind(task),
|
|
35
44
|
};
|
|
36
45
|
}
|
|
46
|
+
warnIfConsumerTimeoutOutOfBounds(queueName, consumerTimeout, queueTtl) {
|
|
47
|
+
if (consumerTimeout < RECOMMENDED_MIN_CONSUMER_TIMEOUT_MS || consumerTimeout > RECOMMENDED_MAX_CONSUMER_TIMEOUT_MS) {
|
|
48
|
+
helpers_1.log.warn(`Queue ${queueName}: queueConsumerTimeout ${consumerTimeout} ms is outside the recommended range ` +
|
|
49
|
+
`[${RECOMMENDED_MIN_CONSUMER_TIMEOUT_MS}, ${RECOMMENDED_MAX_CONSUMER_TIMEOUT_MS}] ms.`);
|
|
50
|
+
}
|
|
51
|
+
if (queueTtl !== undefined && consumerTimeout > queueTtl) {
|
|
52
|
+
helpers_1.log.warn(`Queue ${queueName}: queueConsumerTimeout ${consumerTimeout} ms exceeds the queue message TTL ` +
|
|
53
|
+
`${queueTtl} ms; the message may expire before the consumer timeout applies.`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
37
56
|
}
|
|
38
57
|
exports.AbstractWorker = AbstractWorker;
|
|
39
58
|
//# sourceMappingURL=AbstractWorker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/AbstractWorker.ts"],"names":[],"mappings":";;;AAAA,sCAAoC;
|
|
1
|
+
{"version":3,"file":"AbstractWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/AbstractWorker.ts"],"names":[],"mappings":";;;AAAA,sCAAoC;AACpC,wCAAkC;AAIlC,MAAM,mCAAmC,GAAG,MAAM,CAAC,CAAC,WAAW;AAC/D,MAAM,mCAAmC,GAAG,SAAS,CAAC,CAAC,UAAU;AAEjE,MAAsB,cAAc;IAApC;QAEY,WAAM,GAAiB,EAAE,CAAC;IAyDtC,CAAC;IAvDU,YAAY,CAAC,IAAW;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACI,kBAAkB;QACrB,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;YAClC,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC;IACN,CAAC;IAEM,cAAc;QACjB,OAAO,eAAM,CAAC,oBAAoB,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACvE,CAAC;IAEO,YAAY,CAAC,IAAW;QAC5B,MAAM,cAAc,GAA4B,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QAEnF,qGAAqG;QACrG,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAC1C,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChG,cAAc,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACrE,CAAC;QAED,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,OAAO,EAAE;gBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;gBAC/C,oBAAoB,EAAE,MAAM;gBAC5B,UAAU,EAAE,IAAI,CAAC,QAAQ;gBACzB,SAAS,EAAE,cAAc;aAC5B;YACD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;SACnC,CAAC;IACN,CAAC;IAEO,gCAAgC,CAAC,SAAiB,EAAE,eAAuB,EAAE,QAAiB;QAClG,IAAI,eAAe,GAAG,mCAAmC,IAAI,eAAe,GAAG,mCAAmC,EAAE,CAAC;YACjH,aAAG,CAAC,IAAI,CACJ,SAAS,SAAS,0BAA0B,eAAe,uCAAuC;gBAC9F,IAAI,mCAAmC,KAAK,mCAAmC,OAAO,CAC7F,CAAC;QACN,CAAC;QAED,IAAI,QAAQ,KAAK,SAAS,IAAI,eAAe,GAAG,QAAQ,EAAE,CAAC;YACvD,aAAG,CAAC,IAAI,CACJ,SAAS,SAAS,0BAA0B,eAAe,oCAAoC;gBAC3F,GAAG,QAAQ,kEAAkE,CACpF,CAAC;QACN,CAAC;IACL,CAAC;CACJ;AA3DD,wCA2DC"}
|
|
@@ -2,7 +2,7 @@ interface AbortableExecutorFunction<T> {
|
|
|
2
2
|
(resolve: (value: PromiseLike<T> | T) => void, reject: (reason: Error) => void, abortSignal: AbortSignal): void;
|
|
3
3
|
}
|
|
4
4
|
export declare class AbortableTask<T> extends Promise<T> {
|
|
5
|
-
constructor(executor: AbortableExecutorFunction<T>, queueName: string);
|
|
6
|
-
static from: <T_1>(promise: Promise<T_1>, queueName: string) => Promise<T_1>;
|
|
5
|
+
constructor(executor: AbortableExecutorFunction<T>, queueName: string, consumerTimeout?: number);
|
|
6
|
+
static from: <T_1>(promise: Promise<T_1>, queueName: string, consumerTimeout?: number) => Promise<T_1>;
|
|
7
7
|
}
|
|
8
8
|
export {};
|
|
@@ -5,9 +5,10 @@ const errors_1 = require("@golemio/errors");
|
|
|
5
5
|
const ioc_1 = require("../../ioc");
|
|
6
6
|
const CoreToken_1 = require("../../../helpers/ioc/CoreToken");
|
|
7
7
|
class AbortableTask extends Promise {
|
|
8
|
-
constructor(executor, queueName) {
|
|
8
|
+
constructor(executor, queueName, consumerTimeout) {
|
|
9
9
|
const simpleConfig = ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.SimpleConfig);
|
|
10
|
-
const
|
|
10
|
+
const timeout = consumerTimeout ?? Number(simpleConfig.getValue("env.RABBIT_CONSUMER_TIMEOUT", 1740000));
|
|
11
|
+
const abortSignal = AbortSignal.timeout(timeout);
|
|
11
12
|
super((resolve, reject) => {
|
|
12
13
|
abortSignal.addEventListener("abort", () => {
|
|
13
14
|
reject(new errors_1.AbortError(`Task aborted due to timeout (${queueName})`));
|
|
@@ -17,12 +18,12 @@ class AbortableTask extends Promise {
|
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
20
|
exports.AbortableTask = AbortableTask;
|
|
20
|
-
AbortableTask.from = (promise, queueName) => {
|
|
21
|
+
AbortableTask.from = (promise, queueName, consumerTimeout) => {
|
|
21
22
|
if (promise instanceof AbortableTask) {
|
|
22
23
|
return promise;
|
|
23
24
|
}
|
|
24
25
|
return new AbortableTask((resolve, reject) => {
|
|
25
26
|
promise.then(resolve).catch(reject);
|
|
26
|
-
}, queueName);
|
|
27
|
+
}, queueName, consumerTimeout);
|
|
27
28
|
};
|
|
28
29
|
//# sourceMappingURL=AbortableTask.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbortableTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/helpers/AbortableTask.ts"],"names":[],"mappings":";;;AAAA,4CAA6C;AAC7C,mCAAqD;AAErD,8DAAmD;AAMnD,MAAa,aAAiB,SAAQ,OAAU;IAC5C,YAAY,QAAsC,EAAE,SAAiB;
|
|
1
|
+
{"version":3,"file":"AbortableTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/helpers/AbortableTask.ts"],"names":[],"mappings":";;;AAAA,4CAA6C;AAC7C,mCAAqD;AAErD,8DAAmD;AAMnD,MAAa,aAAiB,SAAQ,OAAU;IAC5C,YAAY,QAAsC,EAAE,SAAiB,EAAE,eAAwB;QAC3F,MAAM,YAAY,GAAG,gCAA0B,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAAC;QAC/F,MAAM,OAAO,GAAG,eAAe,IAAI,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC,CAAC;QACzG,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEjD,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAQ,EAAE;YAC5B,WAAW,CAAC,gBAAgB,CACxB,OAAO,EACP,GAAG,EAAE;gBACD,MAAM,CAAC,IAAI,mBAAU,CAAC,gCAAgC,SAAS,GAAG,CAAC,CAAC,CAAC;YACzE,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACjB,CAAC;YAEF,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC;;AAjBL,sCAgCC;AAbU,kBAAI,GAAG,CAAI,OAAmB,EAAE,SAAiB,EAAE,eAAwB,EAAc,EAAE;IAC9F,IAAI,OAAO,YAAY,aAAa,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,aAAa,CACpB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAChB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,EACD,SAAS,EACT,eAAe,CAClB,CAAC;AACN,CAAC,CAAC"}
|