# sqs-consumer-decorator

> Built on top of `sqs-consumer` in order to make it easy to instantiate consumers using `typescrypt` and `inversify`

Latest version **0.1.0** (published 2019-11-03) · ISC license · 0 weekly downloads

## Install

```sh
npm install sqs-consumer-decorator
pnpm add sqs-consumer-decorator
yarn add sqs-consumer-decorator
bun add sqs-consumer-decorator
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2019-11-03 |
| First published | 2019-10-11 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 3 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 0 |
| Maintainers | islasjuanp |

## Links

- npm: https://www.npmjs.com/package/sqs-consumer-decorator
- Repository: https://github.com/islasjuanp/sqs-consumer-decorator
- Homepage: https://github.com/islasjuanp/sqs-consumer-decorator#readme
- Issues: https://github.com/islasjuanp/sqs-consumer-decorator/issues
- npm.io page: https://npm.io/package/sqs-consumer-decorator

## Dependencies (4)

- [aws-sdk](https://npm.io/package/aws-sdk.md) ^2.548.0
- [inversify](https://npm.io/package/inversify.md) ^5.0.1
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) ^5.4.0
- [reflect-metadata](https://npm.io/package/reflect-metadata.md) ^0.1.13

## Recent versions

- 0.1.0 (latest) — 2019-11-03
- 0.0.1 — 2019-10-11

## README

# sqs-consumer-decorator
Built on top of `sqs-consumer` in order to make it easy to instantiate 
consumers using `typescrypt` and `inversify`

## Installation 

You can install sqs-consumer-decorator using npm:
```bash
  npm install inversify sqs-consumer-decorator reflect-metadata --save
```

## Basic usage 

```typescript
import { SQSConsumer, SQSConsumerAbstract, SQSError, TimeoutError, SQSMessage } from 'sqs-consumer-decorator'

@SQSConsumer('test_queue_name')
class TestConsumer extends SQSConsumerAbstract {
  
  /**
  * Executed when a message is successfully processed and removed from the queue.
  * @param message
  */
  async handleMessage(message: SQSMessage): Promise<void> {
    return undefined;
  }
  
  /**
  * Executed when an error occurs interacting with the queue. 
  * If the error correlates to a message, that error is included in Params
  * @param error
  */
  async handleError(error: SQSError): Promise<void> {
    return undefined;
  }
  
  /**
  * Executed when an error occurs processing the message.
  * @param error
  */
  async handleProcessingError(error: Error): Promise<void> {
    return undefined;
  }

  /**
  * Executed when handleMessageTimeout is supplied as an 
  * option and if handleMessage times out.
  * @param error
  */
  async handleTimeoutError(error: TimeoutError): Promise<void> {
    return undefined;
  }
}
```

```typescript
import { SQSConsumerStarter } from 'sqs-consumer-decorator'
import { Container } from 'inversify'


let container: Container = new Container();
let starter: SQSConsumerStarter = new SQSConsumerStarter(container);
starter.build();
starter.start();
```

---
_Source: https://npm.io/package/sqs-consumer-decorator · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
