@message-queue-toolkit/sqs 10.0.1 → 11.0.0
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/index.d.ts +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/sqs/AbstractSqsConsumer.d.ts +2 -4
- package/dist/lib/sqs/AbstractSqsConsumer.js +6 -2
- package/dist/lib/sqs/AbstractSqsConsumer.js.map +1 -1
- package/dist/lib/sqs/AbstractSqsConsumerMonoSchema.d.ts +11 -5
- package/dist/lib/sqs/AbstractSqsConsumerMonoSchema.js +11 -1
- package/dist/lib/sqs/AbstractSqsConsumerMonoSchema.js.map +1 -1
- package/dist/lib/sqs/AbstractSqsConsumerMultiSchema.d.ts +9 -7
- package/dist/lib/sqs/AbstractSqsConsumerMultiSchema.js +13 -4
- package/dist/lib/sqs/AbstractSqsConsumerMultiSchema.js.map +1 -1
- package/dist/lib/sqs/AbstractSqsPublisherMonoSchema.d.ts +6 -5
- package/dist/lib/sqs/AbstractSqsPublisherMonoSchema.js +12 -0
- package/dist/lib/sqs/AbstractSqsPublisherMonoSchema.js.map +1 -1
- package/dist/lib/sqs/AbstractSqsPublisherMultiSchema.d.ts +5 -1
- package/dist/lib/sqs/AbstractSqsPublisherMultiSchema.js +12 -0
- package/dist/lib/sqs/AbstractSqsPublisherMultiSchema.js.map +1 -1
- package/dist/lib/sqs/AbstractSqsService.d.ts +4 -2
- package/dist/lib/sqs/AbstractSqsService.js +11 -3
- package/dist/lib/sqs/AbstractSqsService.js.map +1 -1
- package/dist/lib/utils/sqsMessageDeserializer.d.ts +1 -1
- package/package.json +15 -15
package/dist/index.d.ts
CHANGED
|
@@ -3,11 +3,12 @@ export { AbstractSqsConsumer } from './lib/sqs/AbstractSqsConsumer';
|
|
|
3
3
|
export type { SQSCreationConfig, ExtraSQSCreationParams } from './lib/sqs/AbstractSqsConsumer';
|
|
4
4
|
export { AbstractSqsConsumerMultiSchema } from './lib/sqs/AbstractSqsConsumerMultiSchema';
|
|
5
5
|
export { AbstractSqsConsumerMonoSchema } from './lib/sqs/AbstractSqsConsumerMonoSchema';
|
|
6
|
+
export type { CommonSQSConsumerOptionsMono } from './lib/sqs/AbstractSqsConsumerMonoSchema';
|
|
6
7
|
export type { NewSQSConsumerOptions, ExistingSQSConsumerOptions, } from './lib/sqs/AbstractSqsConsumer';
|
|
7
8
|
export { SqsConsumerErrorResolver } from './lib/errors/SqsConsumerErrorResolver';
|
|
8
9
|
export { AbstractSqsPublisherMonoSchema } from './lib/sqs/AbstractSqsPublisherMonoSchema';
|
|
9
10
|
export { AbstractSqsPublisherMultiSchema } from './lib/sqs/AbstractSqsPublisherMultiSchema';
|
|
10
|
-
export type { SQSMessageOptions } from './lib/sqs/
|
|
11
|
+
export type { SQSMessageOptions } from './lib/sqs/AbstractSqsPublisherMultiSchema';
|
|
11
12
|
export { assertQueue, deleteQueue, getQueueAttributes, getQueueUrl } from './lib/utils/sqsUtils';
|
|
12
13
|
export { deleteSqs, updateQueueAttributes } from './lib/utils/sqsInitter';
|
|
13
14
|
export { deserializeSQSMessage } from './lib/utils/sqsMessageDeserializer';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAOA,qEAAmE;AAA1D,0HAAA,mBAAmB,OAAA;AAE5B,2FAAyF;AAAhF,gJAAA,8BAA8B,OAAA;AACvC,yFAAuF;AAA9E,8IAAA,6BAA6B,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAOA,qEAAmE;AAA1D,0HAAA,mBAAmB,OAAA;AAE5B,2FAAyF;AAAhF,gJAAA,8BAA8B,OAAA;AACvC,yFAAuF;AAA9E,8IAAA,6BAA6B,OAAA;AAOtC,kFAAgF;AAAvE,oIAAA,wBAAwB,OAAA;AAEjC,2FAAyF;AAAhF,gJAAA,8BAA8B,OAAA;AACvC,6FAA2F;AAAlF,kJAAA,+BAA+B,OAAA;AAGxC,iDAAgG;AAAvF,uGAAA,WAAW,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAAE,uGAAA,WAAW,OAAA;AAClE,qDAAyE;AAAhE,uGAAA,SAAS,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AACzC,6EAA0E;AAAjE,+HAAA,qBAAqB,OAAA;AAC9B,mEAIsC;AAHpC,uIAAA,kCAAkC,OAAA;AAClC,2HAAA,sBAAsB,OAAA;AACtB,2HAAA,sBAAsB,OAAA;AAIxB,mFAAiF;AAAxE,sIAAA,yBAAyB,OAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Either, ErrorResolver } from '@lokalise/node-core';
|
|
2
|
-
import type { QueueConsumer as QueueConsumer, NewQueueOptions, ExistingQueueOptions
|
|
2
|
+
import type { QueueConsumer as QueueConsumer, NewQueueOptions, ExistingQueueOptions } from '@message-queue-toolkit/core';
|
|
3
3
|
import { Consumer } from 'sqs-consumer';
|
|
4
4
|
import type { ConsumerOptions } from 'sqs-consumer/src/types';
|
|
5
5
|
import type { SQSMessage } from '../types/MessageTypes';
|
|
@@ -19,15 +19,13 @@ export type NewSQSConsumerOptions<CreationConfigType extends SQSCreationConfig>
|
|
|
19
19
|
export type ExistingSQSConsumerOptions<QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType> = ExistingQueueOptions<QueueLocatorType> & {
|
|
20
20
|
consumerOverrides?: Partial<ConsumerOptions>;
|
|
21
21
|
};
|
|
22
|
-
export declare abstract class AbstractSqsConsumer<MessagePayloadType extends object, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, ConsumerOptionsType extends NewSQSConsumerOptions<CreationConfigType> | ExistingSQSConsumerOptions<QueueLocatorType> = NewSQSConsumerOptions<CreationConfigType> | ExistingSQSConsumerOptions<QueueLocatorType>, BarrierOutput = unknown> extends AbstractSqsService<MessagePayloadType, QueueLocatorType, CreationConfigType, ConsumerOptionsType, SQSConsumerDependencies> implements QueueConsumer {
|
|
22
|
+
export declare abstract class AbstractSqsConsumer<MessagePayloadType extends object, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, ConsumerOptionsType extends NewSQSConsumerOptions<CreationConfigType> | ExistingSQSConsumerOptions<QueueLocatorType> = NewSQSConsumerOptions<CreationConfigType> | ExistingSQSConsumerOptions<QueueLocatorType>, ExecutionContext = unknown, PrehandlerOutput = unknown, BarrierOutput = unknown> extends AbstractSqsService<MessagePayloadType, QueueLocatorType, CreationConfigType, ConsumerOptionsType, SQSConsumerDependencies, ExecutionContext, PrehandlerOutput, BarrierOutput> implements QueueConsumer {
|
|
23
23
|
private readonly transactionObservabilityManager?;
|
|
24
24
|
protected readonly errorResolver: ErrorResolver;
|
|
25
25
|
protected consumer: Consumer;
|
|
26
26
|
private readonly consumerOptionsOverride;
|
|
27
27
|
protected constructor(dependencies: SQSConsumerDependencies, options: ConsumerOptionsType);
|
|
28
28
|
private internalProcessMessage;
|
|
29
|
-
protected abstract preHandlerBarrier(message: MessagePayloadType, messageType: string): Promise<BarrierResult<BarrierOutput>>;
|
|
30
|
-
abstract processMessage(message: MessagePayloadType, messageType: string, barrierOutput: BarrierOutput): Promise<Either<'retryLater', 'success'>>;
|
|
31
29
|
private tryToExtractId;
|
|
32
30
|
private deserializeMessage;
|
|
33
31
|
private failProcessing;
|
|
@@ -21,9 +21,13 @@ class AbstractSqsConsumer extends AbstractSqsService_1.AbstractSqsService {
|
|
|
21
21
|
this.consumerOptionsOverride = options.consumerOverrides ?? {};
|
|
22
22
|
}
|
|
23
23
|
async internalProcessMessage(message, messageType) {
|
|
24
|
-
const
|
|
24
|
+
const prehandlerOutput = await this.processPrehandlers(message, messageType);
|
|
25
|
+
const barrierResult = await this.preHandlerBarrier(message, messageType, prehandlerOutput);
|
|
25
26
|
if (barrierResult.isPassing) {
|
|
26
|
-
return this.processMessage(message, messageType,
|
|
27
|
+
return this.processMessage(message, messageType, {
|
|
28
|
+
prehandlerOutput,
|
|
29
|
+
barrierOutput: barrierResult.output,
|
|
30
|
+
});
|
|
27
31
|
}
|
|
28
32
|
return { error: 'retryLater' };
|
|
29
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsConsumer.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumer.ts"],"names":[],"mappings":";;;AACA,sDAA0E;
|
|
1
|
+
{"version":3,"file":"AbstractSqsConsumer.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import type { Either } from '@lokalise/node-core';
|
|
2
|
-
import type { MonoSchemaQueueOptions, QueueConsumer as QueueConsumer, BarrierResult } from '@message-queue-toolkit/core';
|
|
2
|
+
import type { MonoSchemaQueueOptions, QueueConsumer as QueueConsumer, BarrierResult, Prehandler, PrehandlingOutputs } from '@message-queue-toolkit/core';
|
|
3
3
|
import type { ZodSchema } from 'zod';
|
|
4
4
|
import type { ExistingSQSConsumerOptions, NewSQSConsumerOptions, SQSCreationConfig } from './AbstractSqsConsumer';
|
|
5
5
|
import { AbstractSqsConsumer } from './AbstractSqsConsumer';
|
|
6
6
|
import type { SQSConsumerDependencies, SQSQueueLocatorType } from './AbstractSqsService';
|
|
7
|
-
export type
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
export type CommonSQSConsumerOptionsMono<MessagePayloadType extends object, ExecutionContext, PrehandlerOutput> = {
|
|
8
|
+
prehandlers?: Prehandler<MessagePayloadType, ExecutionContext, PrehandlerOutput>[];
|
|
9
|
+
};
|
|
10
|
+
export type NewSQSConsumerOptionsMono<MessagePayloadType extends object, ExecutionContext, PrehandlerOutput, CreationConfigType extends SQSCreationConfig> = NewSQSConsumerOptions<CreationConfigType> & MonoSchemaQueueOptions<MessagePayloadType> & CommonSQSConsumerOptionsMono<MessagePayloadType, ExecutionContext, PrehandlerOutput>;
|
|
11
|
+
export type ExistingSQSConsumerOptionsMono<MessagePayloadType extends object, ExecutionContext, PrehandlerOutput, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType> = ExistingSQSConsumerOptions<QueueLocatorType> & MonoSchemaQueueOptions<MessagePayloadType> & CommonSQSConsumerOptionsMono<MessagePayloadType, ExecutionContext, PrehandlerOutput>;
|
|
12
|
+
export declare abstract class AbstractSqsConsumerMonoSchema<MessagePayloadType extends object, PrehandlerOutput = undefined, ExecutionContext = undefined, BarrierOutput = undefined, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, ConsumerOptionsType extends NewSQSConsumerOptionsMono<MessagePayloadType, ExecutionContext, PrehandlerOutput, CreationConfigType> | ExistingSQSConsumerOptionsMono<MessagePayloadType, ExecutionContext, PrehandlerOutput, QueueLocatorType> = NewSQSConsumerOptionsMono<MessagePayloadType, ExecutionContext, PrehandlerOutput, CreationConfigType> | ExistingSQSConsumerOptionsMono<MessagePayloadType, ExecutionContext, PrehandlerOutput, QueueLocatorType>> extends AbstractSqsConsumer<MessagePayloadType, QueueLocatorType, CreationConfigType, ConsumerOptionsType, ExecutionContext, PrehandlerOutput, BarrierOutput> implements QueueConsumer {
|
|
10
13
|
private readonly messageSchema;
|
|
11
14
|
private readonly schemaEither;
|
|
15
|
+
private readonly prehandlers?;
|
|
12
16
|
protected constructor(dependencies: SQSConsumerDependencies, options: ConsumerOptionsType);
|
|
13
17
|
/**
|
|
14
18
|
* Override to implement barrier pattern
|
|
15
19
|
*/
|
|
16
20
|
protected preHandlerBarrier(_message: MessagePayloadType, _messageType: string): Promise<BarrierResult<BarrierOutput>>;
|
|
17
|
-
abstract processMessage(message: MessagePayloadType, messageType: string,
|
|
21
|
+
abstract processMessage(message: MessagePayloadType, messageType: string, prehandlingOutputs: PrehandlingOutputs<PrehandlerOutput, BarrierOutput>): Promise<Either<'retryLater', 'success'>>;
|
|
22
|
+
protected processPrehandlers(message: MessagePayloadType, _messageType: string): Promise<PrehandlerOutput>;
|
|
23
|
+
protected resolveNextFunction(prehandlers: Prehandler<MessagePayloadType, ExecutionContext, PrehandlerOutput>[], message: MessagePayloadType, index: number, prehandlerOutput: PrehandlerOutput, resolve: (value: PrehandlerOutput | PromiseLike<PrehandlerOutput>) => void, reject: (err: Error) => void): (prehandlerResult: import("@message-queue-toolkit/core/dist/lib/queues/HandlerContainer").PrehandlerResult) => void;
|
|
18
24
|
protected resolveSchema(): Either<Error, ZodSchema<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>>;
|
|
19
25
|
}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AbstractSqsConsumerMonoSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
4
5
|
const AbstractSqsConsumer_1 = require("./AbstractSqsConsumer");
|
|
5
6
|
const DEFAULT_BARRIER_RESULT = {
|
|
6
7
|
isPassing: true,
|
|
7
|
-
output: undefined,
|
|
8
|
+
output: zod_1.undefined,
|
|
8
9
|
};
|
|
9
10
|
class AbstractSqsConsumerMonoSchema extends AbstractSqsConsumer_1.AbstractSqsConsumer {
|
|
10
11
|
messageSchema;
|
|
11
12
|
schemaEither;
|
|
13
|
+
prehandlers;
|
|
12
14
|
constructor(dependencies, options) {
|
|
13
15
|
super(dependencies, options);
|
|
16
|
+
this.prehandlers = options.prehandlers;
|
|
14
17
|
this.messageSchema = options.messageSchema;
|
|
15
18
|
this.schemaEither = {
|
|
16
19
|
result: this.messageSchema,
|
|
@@ -24,6 +27,13 @@ class AbstractSqsConsumerMonoSchema extends AbstractSqsConsumer_1.AbstractSqsCon
|
|
|
24
27
|
// @ts-ignore
|
|
25
28
|
return Promise.resolve(DEFAULT_BARRIER_RESULT);
|
|
26
29
|
}
|
|
30
|
+
processPrehandlers(message, _messageType) {
|
|
31
|
+
return this.processPrehandlersInternal(this.prehandlers, message);
|
|
32
|
+
}
|
|
33
|
+
// eslint-disable-next-line max-params
|
|
34
|
+
resolveNextFunction(prehandlers, message, index, prehandlerOutput, resolve, reject) {
|
|
35
|
+
return this.resolveNextPreHandlerFunctionInternal(prehandlers, this, message, index, prehandlerOutput, resolve, reject);
|
|
36
|
+
}
|
|
27
37
|
resolveSchema() {
|
|
28
38
|
return this.schemaEither;
|
|
29
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsConsumerMonoSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumerMonoSchema.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"AbstractSqsConsumerMonoSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumerMonoSchema.ts"],"names":[],"mappings":";;;AASA,6BAA+B;AAO/B,+DAA2D;AAG3D,MAAM,sBAAsB,GAAG;IAC7B,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,eAAS;CACT,CAAA;AA4BV,MAAsB,6BAiCpB,SAAQ,yCAQP;IAGgB,aAAa,CAA+B;IAC5C,YAAY,CAA8C;IAC1D,WAAW,CAIzB;IAEH,YAAsB,YAAqC,EAAE,OAA4B;QACvF,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACtC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAC1C,IAAI,CAAC,YAAY,GAAG;YAClB,MAAM,EAAE,IAAI,CAAC,aAAa;SAC3B,CAAA;IACH,CAAC;IAED;;OAEG;IACH,qBAAqB;IACF,iBAAiB,CAAC,QAA4B,EAAE,YAAoB;QACrF,aAAa;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,sBAAsD,CAAC,CAAA;IAChF,CAAC;IASkB,kBAAkB,CAAC,OAA2B,EAAE,YAAoB;QACrF,OAAO,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACnE,CAAC;IAED,sCAAsC;IACnB,mBAAmB,CACpC,WAAiF,EACjF,OAA2B,EAC3B,KAAa,EACb,gBAAkC,EAClC,OAA0E,EAC1E,MAA4B;QAE5B,OAAO,IAAI,CAAC,qCAAqC,CAC/C,WAAW,EACX,IAAmC,EACnC,OAAO,EACP,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,MAAM,CACP,CAAA;IACH,CAAC;IAES,aAAa;QACrB,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;CACF;AAzGD,sEAyGC"}
|
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
import type { Either } from '@lokalise/node-core';
|
|
2
2
|
import { HandlerContainer, MessageSchemaContainer } from '@message-queue-toolkit/core';
|
|
3
|
-
import type { ExistingQueueOptionsMultiSchema, NewQueueOptionsMultiSchema, BarrierResult } from '@message-queue-toolkit/core';
|
|
3
|
+
import type { ExistingQueueOptionsMultiSchema, NewQueueOptionsMultiSchema, BarrierResult, Prehandler, PrehandlingOutputs } from '@message-queue-toolkit/core';
|
|
4
4
|
import type { ConsumerOptions } from 'sqs-consumer/src/types';
|
|
5
5
|
import type { SQSCreationConfig } from './AbstractSqsConsumer';
|
|
6
6
|
import { AbstractSqsConsumer } from './AbstractSqsConsumer';
|
|
7
7
|
import type { SQSConsumerDependencies, SQSQueueLocatorType } from './AbstractSqsService';
|
|
8
|
-
export type NewSQSConsumerOptionsMultiSchema<MessagePayloadSchemas extends object, ExecutionContext, CreationConfigType extends SQSCreationConfig> = NewQueueOptionsMultiSchema<MessagePayloadSchemas, CreationConfigType, ExecutionContext> & {
|
|
8
|
+
export type NewSQSConsumerOptionsMultiSchema<MessagePayloadSchemas extends object, ExecutionContext, PrehandlerOutput, CreationConfigType extends SQSCreationConfig> = NewQueueOptionsMultiSchema<MessagePayloadSchemas, CreationConfigType, ExecutionContext, PrehandlerOutput> & {
|
|
9
9
|
consumerOverrides?: Partial<ConsumerOptions>;
|
|
10
10
|
};
|
|
11
|
-
export type ExistingSQSConsumerOptionsMultiSchema<MessagePayloadSchemas extends object, ExecutionContext, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType> = ExistingQueueOptionsMultiSchema<MessagePayloadSchemas, QueueLocatorType, ExecutionContext> & {
|
|
11
|
+
export type ExistingSQSConsumerOptionsMultiSchema<MessagePayloadSchemas extends object, ExecutionContext, PrehandlerOutput, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType> = ExistingQueueOptionsMultiSchema<MessagePayloadSchemas, QueueLocatorType, ExecutionContext, PrehandlerOutput> & {
|
|
12
12
|
consumerOverrides?: Partial<ConsumerOptions>;
|
|
13
13
|
};
|
|
14
|
-
export declare abstract class AbstractSqsConsumerMultiSchema<MessagePayloadType extends object, ExecutionContext, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, ConsumerOptionsType extends NewSQSConsumerOptionsMultiSchema<MessagePayloadType, ExecutionContext,
|
|
14
|
+
export declare abstract class AbstractSqsConsumerMultiSchema<MessagePayloadType extends object, ExecutionContext, PrehandlerOutput, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, ConsumerOptionsType extends NewSQSConsumerOptionsMultiSchema<MessagePayloadType, ExecutionContext, PrehandlerOutput, CreationConfigType> = NewSQSConsumerOptionsMultiSchema<MessagePayloadType, ExecutionContext, PrehandlerOutput, CreationConfigType>> extends AbstractSqsConsumer<MessagePayloadType, QueueLocatorType, CreationConfigType, ConsumerOptionsType, ExecutionContext, PrehandlerOutput> {
|
|
15
15
|
messageSchemaContainer: MessageSchemaContainer<MessagePayloadType>;
|
|
16
|
-
handlerContainer: HandlerContainer<MessagePayloadType, ExecutionContext>;
|
|
16
|
+
handlerContainer: HandlerContainer<MessagePayloadType, ExecutionContext, PrehandlerOutput>;
|
|
17
17
|
protected readonly executionContext: ExecutionContext;
|
|
18
18
|
constructor(dependencies: SQSConsumerDependencies, options: ConsumerOptionsType, executionContext: ExecutionContext);
|
|
19
19
|
protected resolveSchema(message: MessagePayloadType): Either<Error, import("zod").ZodType<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>>;
|
|
20
|
-
processMessage(message: MessagePayloadType, messageType: string,
|
|
20
|
+
processMessage(message: MessagePayloadType, messageType: string, prehandlingOutputs: PrehandlingOutputs<PrehandlerOutput, unknown>): Promise<Either<'retryLater', 'success'>>;
|
|
21
|
+
protected processPrehandlers(message: MessagePayloadType, messageType: string): Promise<PrehandlerOutput>;
|
|
22
|
+
protected resolveNextFunction(prehandlers: Prehandler<MessagePayloadType, ExecutionContext, unknown>[], message: MessagePayloadType, index: number, prehandlerOutput: PrehandlerOutput, resolve: (value: PrehandlerOutput | PromiseLike<PrehandlerOutput>) => void, reject: (err: Error) => void): (prehandlerResult: import("@message-queue-toolkit/core/dist/lib/queues/HandlerContainer").PrehandlerResult) => void;
|
|
21
23
|
protected resolveMessageLog(message: MessagePayloadType, messageType: string): unknown;
|
|
22
|
-
protected preHandlerBarrier<BarrierOutput>(message: MessagePayloadType, messageType: string): Promise<BarrierResult<BarrierOutput>>;
|
|
24
|
+
protected preHandlerBarrier<BarrierOutput>(message: MessagePayloadType, messageType: string, prehandlerOutput: PrehandlerOutput): Promise<BarrierResult<BarrierOutput>>;
|
|
23
25
|
}
|
|
@@ -23,19 +23,28 @@ class AbstractSqsConsumerMultiSchema extends AbstractSqsConsumer_1.AbstractSqsCo
|
|
|
23
23
|
resolveSchema(message) {
|
|
24
24
|
return this.messageSchemaContainer.resolveSchema(message);
|
|
25
25
|
}
|
|
26
|
-
async processMessage(message, messageType,
|
|
26
|
+
async processMessage(message, messageType, prehandlingOutputs) {
|
|
27
27
|
const handler = this.handlerContainer.resolveHandler(messageType);
|
|
28
|
-
return handler.handler(message, this.executionContext,
|
|
28
|
+
return handler.handler(message, this.executionContext, prehandlingOutputs);
|
|
29
|
+
}
|
|
30
|
+
processPrehandlers(message, messageType) {
|
|
31
|
+
const handlerConfig = this.handlerContainer.resolveHandler(messageType);
|
|
32
|
+
return this.processPrehandlersInternal(handlerConfig.prehandlers, message);
|
|
33
|
+
}
|
|
34
|
+
// eslint-disable-next-line max-params
|
|
35
|
+
resolveNextFunction(prehandlers, message, index, prehandlerOutput, resolve, reject) {
|
|
36
|
+
return this.resolveNextPreHandlerFunctionInternal(prehandlers, this.executionContext, message, index, prehandlerOutput, resolve, reject);
|
|
29
37
|
}
|
|
30
38
|
resolveMessageLog(message, messageType) {
|
|
31
39
|
const handler = this.handlerContainer.resolveHandler(messageType);
|
|
32
40
|
return handler.messageLogFormatter(message);
|
|
33
41
|
}
|
|
34
|
-
async preHandlerBarrier(message, messageType) {
|
|
42
|
+
async preHandlerBarrier(message, messageType, prehandlerOutput) {
|
|
35
43
|
const handler = this.handlerContainer.resolveHandler(messageType);
|
|
36
44
|
// @ts-ignore
|
|
37
45
|
return handler.preHandlerBarrier
|
|
38
|
-
?
|
|
46
|
+
? // @ts-ignore
|
|
47
|
+
await handler.preHandlerBarrier(message, this.executionContext, prehandlerOutput)
|
|
39
48
|
: {
|
|
40
49
|
isPassing: true,
|
|
41
50
|
output: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsConsumerMultiSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumerMultiSchema.ts"],"names":[],"mappings":";;;AACA,sDAAsF;
|
|
1
|
+
{"version":3,"file":"AbstractSqsConsumerMultiSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsConsumerMultiSchema.ts"],"names":[],"mappings":";;;AACA,sDAAsF;AAWtF,+DAA2D;AA+B3D,MAAsB,8BAiBpB,SAAQ,yCAOT;IACC,sBAAsB,CAA4C;IAClE,gBAAgB,CAA0E;IACvE,gBAAgB,CAAkB;IAErD,YACE,YAAqC,EACrC,OAA4B,EAC5B,gBAAkC;QAElC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEpE,IAAI,CAAC,sBAAsB,GAAG,IAAI,6BAAsB,CAAqB;YAC3E,cAAc;YACd,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;SAC3C,CAAC,CAAA;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,uBAAgB,CAI1C;YACA,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,eAAe,EAAE,OAAO,CAAC,QAAQ;SAClC,CAAC,CAAA;QACF,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;IAC1C,CAAC;IAEkB,aAAa,CAAC,OAA2B;QAC1D,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC;IAEe,KAAK,CAAC,cAAc,CAClC,OAA2B,EAC3B,WAAmB,EACnB,kBAAiE;QAEjE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QAEjE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAA;IAC5E,CAAC;IAEkB,kBAAkB,CAAC,OAA2B,EAAE,WAAmB;QACpF,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QAEvE,OAAO,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAC5E,CAAC;IAED,sCAAsC;IACnB,mBAAmB,CACpC,WAAwE,EACxE,OAA2B,EAC3B,KAAa,EACb,gBAAkC,EAClC,OAA0E,EAC1E,MAA4B;QAE5B,OAAO,IAAI,CAAC,qCAAqC,CAC/C,WAAW,EACX,IAAI,CAAC,gBAAgB,EACrB,OAAO,EACP,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,MAAM,CACP,CAAA;IACH,CAAC;IAEkB,iBAAiB,CAAC,OAA2B,EAAE,WAAmB;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QACjE,OAAO,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAEkB,KAAK,CAAC,iBAAiB,CACxC,OAA2B,EAC3B,WAAmB,EACnB,gBAAkC;QAElC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAClD,WAAW,CACZ,CAAA;QACD,aAAa;QACb,OAAO,OAAO,CAAC,iBAAiB;YAC9B,CAAC,CAAC,aAAa;gBACb,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;YACnF,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,SAAS;aAClB,CAAA;IACP,CAAC;CACF;AAnHD,wEAmHC"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import type { Either } from '@lokalise/node-core';
|
|
2
|
-
import type { AsyncPublisher, MessageInvalidFormatError, MessageValidationError, ExistingQueueOptions, MonoSchemaQueueOptions, NewQueueOptions } from '@message-queue-toolkit/core';
|
|
2
|
+
import type { AsyncPublisher, MessageInvalidFormatError, MessageValidationError, ExistingQueueOptions, MonoSchemaQueueOptions, NewQueueOptions, BarrierResult } from '@message-queue-toolkit/core';
|
|
3
3
|
import type { ZodSchema } from 'zod';
|
|
4
4
|
import type { SQSCreationConfig } from './AbstractSqsConsumer';
|
|
5
|
+
import type { SQSMessageOptions } from './AbstractSqsPublisherMultiSchema';
|
|
5
6
|
import type { SQSDependencies, SQSQueueLocatorType } from './AbstractSqsService';
|
|
6
7
|
import { AbstractSqsService } from './AbstractSqsService';
|
|
7
|
-
export type SQSMessageOptions = {
|
|
8
|
-
MessageGroupId?: string;
|
|
9
|
-
MessageDeduplicationId?: string;
|
|
10
|
-
};
|
|
11
8
|
export declare abstract class AbstractSqsPublisherMonoSchema<MessagePayloadType extends object> extends AbstractSqsService<MessagePayloadType> implements AsyncPublisher<MessagePayloadType, SQSMessageOptions> {
|
|
12
9
|
private readonly messageSchema;
|
|
13
10
|
private readonly schemaEither;
|
|
14
11
|
constructor(dependencies: SQSDependencies, options: (NewQueueOptions<SQSCreationConfig> | ExistingQueueOptions<SQSQueueLocatorType>) & MonoSchemaQueueOptions<MessagePayloadType>);
|
|
15
12
|
publish(message: MessagePayloadType, options?: SQSMessageOptions): Promise<void>;
|
|
13
|
+
protected resolveNextFunction(): () => void;
|
|
16
14
|
protected resolveMessage(): Either<MessageInvalidFormatError | MessageValidationError, unknown>;
|
|
15
|
+
protected processPrehandlers(): Promise<unknown>;
|
|
16
|
+
protected preHandlerBarrier(): Promise<BarrierResult<unknown>>;
|
|
17
|
+
processMessage(): Promise<Either<'retryLater', 'success'>>;
|
|
17
18
|
protected resolveSchema(): Either<Error, ZodSchema<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>>;
|
|
18
19
|
}
|
|
@@ -16,9 +16,21 @@ class AbstractSqsPublisherMonoSchema extends AbstractSqsService_1.AbstractSqsSer
|
|
|
16
16
|
return this.internalPublish(message, this.messageSchema, options);
|
|
17
17
|
}
|
|
18
18
|
/* c8 ignore start */
|
|
19
|
+
resolveNextFunction() {
|
|
20
|
+
throw new Error('Not implemented for publisher');
|
|
21
|
+
}
|
|
19
22
|
resolveMessage() {
|
|
20
23
|
throw new Error('Not implemented for publisher');
|
|
21
24
|
}
|
|
25
|
+
processPrehandlers() {
|
|
26
|
+
throw new Error('Not implemented for publisher');
|
|
27
|
+
}
|
|
28
|
+
preHandlerBarrier() {
|
|
29
|
+
throw new Error('Not implemented for publisher');
|
|
30
|
+
}
|
|
31
|
+
processMessage() {
|
|
32
|
+
throw new Error('Not implemented for publisher');
|
|
33
|
+
}
|
|
22
34
|
resolveSchema() {
|
|
23
35
|
return this.schemaEither;
|
|
24
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsPublisherMonoSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsPublisherMonoSchema.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"AbstractSqsPublisherMonoSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsPublisherMonoSchema.ts"],"names":[],"mappings":";;;AAeA,6DAAyD;AAEzD,MAAsB,8BACpB,SAAQ,uCAAsC;IAG7B,aAAa,CAA+B;IAC5C,YAAY,CAA8C;IAE3E,YACE,YAA6B,EAC7B,OAC4C;QAE5C,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC5B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAE1C,IAAI,CAAC,YAAY,GAAG;YAClB,MAAM,EAAE,IAAI,CAAC,aAAa;SAC3B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA2B,EAAE,UAA6B,EAAE;QACxE,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IACnE,CAAC;IAED,qBAAqB;IACF,mBAAmB;QACpC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEkB,cAAc;QAI/B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEkB,kBAAkB;QACnC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEkB,iBAAiB;QAClC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEQ,cAAc;QACrB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEkB,aAAa;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;CAEF;AApDD,wEAoDC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Either } from '@lokalise/node-core';
|
|
2
|
-
import type { AsyncPublisher, MessageInvalidFormatError, MessageValidationError, ExistingQueueOptions, NewQueueOptions, MultiSchemaPublisherOptions } from '@message-queue-toolkit/core';
|
|
2
|
+
import type { AsyncPublisher, MessageInvalidFormatError, MessageValidationError, ExistingQueueOptions, NewQueueOptions, MultiSchemaPublisherOptions, BarrierResult } from '@message-queue-toolkit/core';
|
|
3
3
|
import type { ZodSchema } from 'zod';
|
|
4
4
|
import type { SQSMessage } from '../types/MessageTypes';
|
|
5
5
|
import type { SQSCreationConfig } from './AbstractSqsConsumer';
|
|
@@ -13,6 +13,10 @@ export declare abstract class AbstractSqsPublisherMultiSchema<MessagePayloadType
|
|
|
13
13
|
private readonly messageSchemaContainer;
|
|
14
14
|
constructor(dependencies: SQSDependencies, options: (NewQueueOptions<SQSCreationConfig> | ExistingQueueOptions<SQSQueueLocatorType>) & MultiSchemaPublisherOptions<MessagePayloadType>);
|
|
15
15
|
publish(message: MessagePayloadType, options?: SQSMessageOptions): Promise<void>;
|
|
16
|
+
protected resolveNextFunction(): () => void;
|
|
16
17
|
protected resolveMessage(_message: SQSMessage): Either<MessageInvalidFormatError | MessageValidationError, unknown>;
|
|
18
|
+
protected processPrehandlers(): Promise<unknown>;
|
|
19
|
+
protected preHandlerBarrier(): Promise<BarrierResult<unknown>>;
|
|
20
|
+
processMessage(): Promise<Either<'retryLater', 'success'>>;
|
|
17
21
|
protected resolveSchema(message: MessagePayloadType): Either<Error, ZodSchema<MessagePayloadType>>;
|
|
18
22
|
}
|
|
@@ -21,9 +21,21 @@ class AbstractSqsPublisherMultiSchema extends AbstractSqsService_1.AbstractSqsSe
|
|
|
21
21
|
return this.internalPublish(message, messageSchemaResult.result, options);
|
|
22
22
|
}
|
|
23
23
|
/* c8 ignore start */
|
|
24
|
+
resolveNextFunction() {
|
|
25
|
+
throw new Error('Not implemented for publisher');
|
|
26
|
+
}
|
|
24
27
|
resolveMessage(_message) {
|
|
25
28
|
throw new Error('Not implemented for publisher');
|
|
26
29
|
}
|
|
30
|
+
processPrehandlers() {
|
|
31
|
+
throw new Error('Not implemented for publisher');
|
|
32
|
+
}
|
|
33
|
+
preHandlerBarrier() {
|
|
34
|
+
throw new Error('Not implemented for publisher');
|
|
35
|
+
}
|
|
36
|
+
processMessage() {
|
|
37
|
+
throw new Error('Not implemented for publisher');
|
|
38
|
+
}
|
|
27
39
|
/* c8 ignore stop */
|
|
28
40
|
resolveSchema(message) {
|
|
29
41
|
return this.messageSchemaContainer.resolveSchema(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsPublisherMultiSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsPublisherMultiSchema.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"AbstractSqsPublisherMultiSchema.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsPublisherMultiSchema.ts"],"names":[],"mappings":";;;AAUA,sDAAoE;AAMpE,6DAAyD;AAQzD,MAAsB,+BACpB,SAAQ,uCAAsC;IAG7B,sBAAsB,CAA4C;IAEnF,YACE,YAA6B,EAC7B,OACiD;QAEjD,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAC7C,IAAI,CAAC,sBAAsB,GAAG,IAAI,6BAAsB,CAAqB;YAC3E,cAAc;YACd,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;SAC3C,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA2B,EAAE,UAA6B,EAAE;QACxE,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,mBAAmB,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,mBAAmB,CAAC,KAAK,CAAA;QACjC,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3E,CAAC;IAED,qBAAqB;IACF,mBAAmB;QACpC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAES,cAAc,CACtB,QAAoB;QAEpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEkB,kBAAkB;QACnC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEkB,iBAAiB;QAClC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAEQ,cAAc;QACrB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IACD,oBAAoB;IAED,aAAa,CAC9B,OAA2B;QAE3B,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC;CACF;AA1DD,0EA0DC"}
|
|
@@ -4,7 +4,7 @@ import { AbstractQueueService } from '@message-queue-toolkit/core';
|
|
|
4
4
|
import type { ZodSchema } from 'zod';
|
|
5
5
|
import type { SQSMessage } from '../types/MessageTypes';
|
|
6
6
|
import type { SQSCreationConfig } from './AbstractSqsConsumer';
|
|
7
|
-
import type { SQSMessageOptions } from './
|
|
7
|
+
import type { SQSMessageOptions } from './AbstractSqsPublisherMultiSchema';
|
|
8
8
|
export type SQSDependencies = QueueDependencies & {
|
|
9
9
|
sqsClient: SQSClient;
|
|
10
10
|
};
|
|
@@ -13,11 +13,13 @@ export type SQSQueueConfig = CreateQueueRequest;
|
|
|
13
13
|
export type SQSQueueLocatorType = {
|
|
14
14
|
queueUrl: string;
|
|
15
15
|
};
|
|
16
|
-
export declare abstract class AbstractSqsService<MessagePayloadType extends object, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, SQSOptionsType extends NewQueueOptions<CreationConfigType> | ExistingQueueOptions<QueueLocatorType> = NewQueueOptions<CreationConfigType> | ExistingQueueOptions<QueueLocatorType>, DependenciesType extends SQSDependencies = SQSDependencies> extends AbstractQueueService<MessagePayloadType, SQSMessage, DependenciesType, CreationConfigType, QueueLocatorType, SQSOptionsType> {
|
|
16
|
+
export declare abstract class AbstractSqsService<MessagePayloadType extends object, QueueLocatorType extends SQSQueueLocatorType = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, SQSOptionsType extends NewQueueOptions<CreationConfigType> | ExistingQueueOptions<QueueLocatorType> = NewQueueOptions<CreationConfigType> | ExistingQueueOptions<QueueLocatorType>, DependenciesType extends SQSDependencies = SQSDependencies, PrehandlerOutput = unknown, ExecutionContext = unknown, BarrierOutput = unknown> extends AbstractQueueService<MessagePayloadType, SQSMessage, DependenciesType, CreationConfigType, QueueLocatorType, SQSOptionsType, PrehandlerOutput, ExecutionContext, BarrierOutput> {
|
|
17
17
|
protected readonly sqsClient: SQSClient;
|
|
18
18
|
queueUrl: string;
|
|
19
19
|
queueName: string;
|
|
20
20
|
queueArn: string;
|
|
21
|
+
private isInitted;
|
|
22
|
+
private initPromise?;
|
|
21
23
|
constructor(dependencies: DependenciesType, options: SQSOptionsType);
|
|
22
24
|
init(): Promise<void>;
|
|
23
25
|
protected internalPublish(message: MessagePayloadType, messageSchema: ZodSchema<MessagePayloadType>, options?: SQSMessageOptions): Promise<void>;
|
|
@@ -12,8 +12,11 @@ class AbstractSqsService extends core_1.AbstractQueueService {
|
|
|
12
12
|
queueName;
|
|
13
13
|
// @ts-ignore
|
|
14
14
|
queueArn;
|
|
15
|
+
isInitted;
|
|
16
|
+
initPromise;
|
|
15
17
|
constructor(dependencies, options) {
|
|
16
18
|
super(dependencies, options);
|
|
19
|
+
this.isInitted = false;
|
|
17
20
|
this.sqsClient = dependencies.sqsClient;
|
|
18
21
|
}
|
|
19
22
|
async init() {
|
|
@@ -24,11 +27,16 @@ class AbstractSqsService extends core_1.AbstractQueueService {
|
|
|
24
27
|
this.queueArn = queueArn;
|
|
25
28
|
this.queueUrl = queueUrl;
|
|
26
29
|
this.queueName = queueName;
|
|
30
|
+
this.isInitted = true;
|
|
27
31
|
}
|
|
28
32
|
async internalPublish(message, messageSchema, options = {}) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
// If it's not initted yet, do the lazy init
|
|
34
|
+
if (!this.isInitted) {
|
|
35
|
+
// avoid multiple concurrent inits
|
|
36
|
+
if (!this.initPromise) {
|
|
37
|
+
this.initPromise = this.init();
|
|
38
|
+
}
|
|
39
|
+
await this.initPromise;
|
|
32
40
|
}
|
|
33
41
|
try {
|
|
34
42
|
messageSchema.parse(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSqsService.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsService.ts"],"names":[],"mappings":";;;AACA,oDAAwD;AAOxD,sDAAkE;AAIlE,oDAAwD;AAiBxD,MAAsB,
|
|
1
|
+
{"version":3,"file":"AbstractSqsService.js","sourceRoot":"","sources":["../../../lib/sqs/AbstractSqsService.ts"],"names":[],"mappings":";;;AACA,oDAAwD;AAOxD,sDAAkE;AAIlE,oDAAwD;AAiBxD,MAAsB,kBAapB,SAAQ,2BAUT;IACoB,SAAS,CAAW;IACvC,aAAa;IACN,QAAQ,CAAQ;IACvB,aAAa;IACN,SAAS,CAAQ;IACxB,aAAa;IACN,QAAQ,CAAQ;IAEf,SAAS,CAAS;IAClB,WAAW,CAAgB;IAEnC,YAAY,YAA8B,EAAE,OAAuB;QACjE,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAE5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAA;IACzC,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,MAAM,IAAA,sBAAS,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3E,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,oBAAO,EACrD,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,CACpB,CAAA;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,CAAC;IAES,KAAK,CAAC,eAAe,CAC7B,OAA2B,EAC3B,aAA4C,EAC5C,UAA6B,EAAE;QAE/B,4CAA4C;QAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,kCAAkC;YAClC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAChC,CAAC;YACD,MAAM,IAAI,CAAC,WAAW,CAAA;QACxB,CAAC;QAED,IAAI,CAAC;YACH,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAE5B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,aAAa;gBACb,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;gBAC1F,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;YACrC,CAAC;YAED,MAAM,KAAK,GAAG;gBACZ,qBAAqB;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBACpC,GAAG,OAAO;aACuB,CAAA;YACnC,MAAM,OAAO,GAAG,IAAI,+BAAkB,CAAC,KAAK,CAAC,CAAA;YAC7C,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAClC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACvB,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5C,KAAK,CAAC,KAAK,KAAmB,CAAC;CAChD;AAlGD,gDAkGC"}
|
|
@@ -2,4 +2,4 @@ import type { Either, ErrorResolver } from '@lokalise/node-core';
|
|
|
2
2
|
import type { MessageInvalidFormatError, MessageValidationError } from '@message-queue-toolkit/core';
|
|
3
3
|
import type { ZodType } from 'zod';
|
|
4
4
|
import type { SQSMessage } from '../types/MessageTypes';
|
|
5
|
-
export declare const deserializeSQSMessage: <T extends object>(message: SQSMessage, type: ZodType<T
|
|
5
|
+
export declare const deserializeSQSMessage: <T extends object>(message: SQSMessage, type: ZodType<T>, errorProcessor: ErrorResolver) => Either<MessageInvalidFormatError | MessageValidationError, T>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@message-queue-toolkit/sqs",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "11.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "SQS adapter for message-queue-toolkit",
|
|
@@ -25,31 +25,31 @@
|
|
|
25
25
|
"prepublishOnly": "npm run build:release"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@lokalise/node-core": "^9.
|
|
29
|
-
"sqs-consumer": "^8.
|
|
28
|
+
"@lokalise/node-core": "^9.10.1",
|
|
29
|
+
"sqs-consumer": "^8.2.0",
|
|
30
30
|
"zod": "^3.22.4"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"@aws-sdk/client-sqs": "^3.476.0",
|
|
34
|
-
"@message-queue-toolkit/core": "^
|
|
34
|
+
"@message-queue-toolkit/core": "^9.0.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@aws-sdk/client-sqs": "^3.
|
|
37
|
+
"@aws-sdk/client-sqs": "^3.529.1",
|
|
38
38
|
"@message-queue-toolkit/core": "*",
|
|
39
|
-
"@types/node": "^20.11.
|
|
40
|
-
"@typescript-eslint/eslint-plugin": "^7.
|
|
41
|
-
"@typescript-eslint/parser": "^7.
|
|
39
|
+
"@types/node": "^20.11.25",
|
|
40
|
+
"@typescript-eslint/eslint-plugin": "^7.1.1",
|
|
41
|
+
"@typescript-eslint/parser": "^7.1.1",
|
|
42
42
|
"@vitest/coverage-v8": "^1.3.1",
|
|
43
43
|
"awilix": "^10.0.1",
|
|
44
|
-
"awilix-manager": "^5.0
|
|
44
|
+
"awilix-manager": "^5.1.0",
|
|
45
45
|
"del-cli": "^5.1.0",
|
|
46
|
-
"eslint": "^8.
|
|
46
|
+
"eslint": "^8.57.0",
|
|
47
47
|
"eslint-config-prettier": "^9.1.0",
|
|
48
|
-
"eslint-plugin-import": "^2.29.
|
|
49
|
-
"eslint-plugin-prettier": "^5.
|
|
50
|
-
"eslint-plugin-vitest": "^0.3.
|
|
51
|
-
"prettier": "^3.
|
|
52
|
-
"typescript": "^5.
|
|
48
|
+
"eslint-plugin-import": "^2.29.1",
|
|
49
|
+
"eslint-plugin-prettier": "^5.1.3",
|
|
50
|
+
"eslint-plugin-vitest": "^0.3.25",
|
|
51
|
+
"prettier": "^3.2.5",
|
|
52
|
+
"typescript": "^5.4.2",
|
|
53
53
|
"vitest": "^1.3.1"
|
|
54
54
|
},
|
|
55
55
|
"homepage": "https://github.com/kibertoad/message-queue-toolkit",
|