@swarmion/serverless-contracts
Version:
Generate and use type-safe contracts between your Serverless services.
26 lines • 1.14 kB
TypeScript
import { BatchResultErrorEntry, SendMessageResult, SQSClient } from '@aws-sdk/client-sqs';
import Ajv from 'ajv';
import { SqsMessage, SqsMessageBodyType } from './common';
import { SQSContract } from '../sqsContract';
export type SendMessageBuilderOptions<Contract extends SQSContract> = ({
ajv: Ajv;
validateMessage?: boolean;
} | {
ajv?: Ajv;
validateMessage: false;
}) & {
queueUrl: string | (() => string) | (() => Promise<string>);
sqsClient: SQSClient;
bodySerializer?: (body: SqsMessageBodyType<Contract>) => string | undefined;
};
export type SendMessagesBuilderOptions<Contract extends SQSContract> = SendMessageBuilderOptions<Contract> & {
throughputCallsPerSecond?: number;
maxRetries?: number;
baseDelay?: number;
throwOnFailedBatch?: boolean;
};
export type SendMessageSideEffect<Contract extends SQSContract> = (message: SqsMessage<Contract>) => Promise<SendMessageResult>;
export type SendMessagesSideEffect<Contract extends SQSContract> = (messages: SqsMessage<Contract>[]) => Promise<{
failedItems: BatchResultErrorEntry[];
}>;
//# sourceMappingURL=sendMessage.d.ts.map