---
url: >-
  https://node-ts.github.io/bus/api/bus-sqs-lambda/classes/BusSqsLambdaReceiver.md
---
[API reference](../../index.md) / [@node-ts/bus-sqs-lambda](../index.md) / BusSqsLambdaReceiver

# Class: BusSqsLambdaReceiver

Defined in: [bus-sqs-lambda-receiver.ts:26](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-sqs-lambda/src/bus-sqs-lambda-receiver.ts#L26)

Receives messages from an SQS event that's triggered a lambda function, and converts them into a TransportMessage
ready to be dispatched. A message that fails, or that a handler returns with `bus.returnMessage()`, is retried by
Lambda: either on its own (`reportBatchItemFailures`) or with the whole batch.

## Example

```ts
const bus = Bus.configure()
  .withTransport(sqsTransport)
  .withReceiver(new BusSqsLambdaReceiver({ reportBatchItemFailures: true }))
  .build()

export const handler: SQSHandler = event => bus.receive<SQSBatchResponse>(event)
```

## Implements

* [`Receiver`](../../bus-core/interfaces/Receiver.md)<`SQSEvent`, [`TransportMessage`](../../bus-core/interfaces/TransportMessage.md)<[`SqsLambdaRecord`](../type-aliases/SqsLambdaRecord.md)>, `SQSBatchResponse` | `void`>

## Constructors

### Constructor

```ts
new BusSqsLambdaReceiver(configuration?): BusSqsLambdaReceiver;
```

Defined in: [bus-sqs-lambda-receiver.ts:34](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-sqs-lambda/src/bus-sqs-lambda-receiver.ts#L34)

#### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `configuration` | [`BusSqsLambdaReceiverConfiguration`](../interfaces/BusSqsLambdaReceiverConfiguration.md) | Options for how the outcome of a batch is reported back to Lambda |

#### Returns

`BusSqsLambdaReceiver`

## Methods

### receive()

```ts
receive(receivedMessage, messageSerializer): Promise<TransportMessage<SqsLambdaRecord>[]>;
```

Defined in: [bus-sqs-lambda-receiver.ts:38](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-sqs-lambda/src/bus-sqs-lambda-receiver.ts#L38)

Invoked when a message is received by the application and needs to be converted into a transport message
so that it can be passed to the dispatcher and send to handlers.

#### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `receivedMessage` | `SQSEvent` | The message received by the app |
| `messageSerializer` | [`MessageSerializer`](../../bus-core/classes/MessageSerializer.md) | The configured serializer, which can be used to deserialize the incoming message |

#### Returns

`Promise`<[`TransportMessage`](../../bus-core/interfaces/TransportMessage.md)<[`SqsLambdaRecord`](../type-aliases/SqsLambdaRecord.md)>\[]>

#### Implementation of

[`Receiver`](../../bus-core/interfaces/Receiver.md).[`receive`](../../bus-core/interfaces/Receiver.md#receive)

***

### toReceiveResult()

```ts
toReceiveResult(failures): void | SQSBatchResponse;
```

Defined in: [bus-sqs-lambda-receiver.ts:63](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-sqs-lambda/src/bus-sqs-lambda-receiver.ts#L63)

Reports the records that failed back to Lambda once the whole batch has been handled.

#### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `failures` | [`ReceivedMessageFailure`](../../bus-core/interfaces/ReceivedMessageFailure.md)<[`TransportMessage`](../../bus-core/interfaces/TransportMessage.md)<[`SqsLambdaRecord`](../type-aliases/SqsLambdaRecord.md)>>\[] | The records that failed to be handled |

#### Returns

`void` | `SQSBatchResponse`

An `SQSBatchResponse` of the failed records when `reportBatchItemFailures` is enabled

#### Throws

the first failure's error when `reportBatchItemFailures` is disabled, so Lambda retries the whole batch

#### Implementation of

[`Receiver`](../../bus-core/interfaces/Receiver.md).[`toReceiveResult`](../../bus-core/interfaces/Receiver.md#toreceiveresult)
