├── .env.example ├── .gitignore ├── .prettierignore ├── .prettierrc ├── LICENSE ├── README.md ├── docs └── api-spec.yml ├── jest.config.js ├── package.json ├── secrets.yml.example ├── serverless.offline.yml ├── serverless.yml ├── src ├── constants │ └── environment.constants.ts ├── controllers │ └── message │ │ ├── index.ts │ │ └── message.controller.ts ├── enums │ └── environment.enum.ts ├── errors │ ├── base.error.ts │ ├── non-retriable.error.ts │ └── partial-failure.error.ts ├── http-app.ts ├── interfaces │ ├── dequeued-message.interface.ts │ ├── message.interface.ts │ ├── queue-service.interface.ts │ ├── queued-message.interface.ts │ └── response.interface.ts ├── middlewares │ ├── api-spec.middleware.ts │ ├── error.middleware.ts │ └── validator.middleware.ts ├── routers │ └── message.router.ts ├── serverless-consumer.ts ├── serverless-producer.ts ├── services │ ├── event │ │ ├── event.service.ts │ │ └── index.ts │ ├── log │ │ ├── index.ts │ │ └── log.service.ts │ └── queue │ │ ├── index.ts │ │ ├── local-queue.service.ts │ │ └── sqs-queue.service.ts └── validators │ └── message.validator.ts ├── test ├── .env.test ├── controllers │ └── message.controller.spec.ts ├── env-setup.ts ├── middlewares │ ├── api-spec.middleware.spec.ts │ ├── error.middleware.spec.ts │ └── validator.middleware.spec.ts ├── mock-factories │ ├── aws-sdk.mock.factory.ts │ ├── express.mock-factory.ts │ └── message.mock-factory.ts ├── services │ ├── event-service.spec.ts │ ├── log.service.spec.ts │ └── sqs-queue.service.spec.ts └── validators │ └── message.validator.spec.ts └── tsconfig.json /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/.env.example -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/.prettierignore -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/.prettierrc -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/README.md -------------------------------------------------------------------------------- /docs/api-spec.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/docs/api-spec.yml -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/jest.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/package.json -------------------------------------------------------------------------------- /secrets.yml.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/secrets.yml.example -------------------------------------------------------------------------------- /serverless.offline.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/serverless.offline.yml -------------------------------------------------------------------------------- /serverless.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/serverless.yml -------------------------------------------------------------------------------- /src/constants/environment.constants.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/constants/environment.constants.ts -------------------------------------------------------------------------------- /src/controllers/message/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/controllers/message/index.ts -------------------------------------------------------------------------------- /src/controllers/message/message.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/controllers/message/message.controller.ts -------------------------------------------------------------------------------- /src/enums/environment.enum.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/enums/environment.enum.ts -------------------------------------------------------------------------------- /src/errors/base.error.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/errors/base.error.ts -------------------------------------------------------------------------------- /src/errors/non-retriable.error.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/errors/non-retriable.error.ts -------------------------------------------------------------------------------- /src/errors/partial-failure.error.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/errors/partial-failure.error.ts -------------------------------------------------------------------------------- /src/http-app.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/http-app.ts -------------------------------------------------------------------------------- /src/interfaces/dequeued-message.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/interfaces/dequeued-message.interface.ts -------------------------------------------------------------------------------- /src/interfaces/message.interface.ts: -------------------------------------------------------------------------------- 1 | export interface Message { 2 | payload: string; 3 | } 4 | -------------------------------------------------------------------------------- /src/interfaces/queue-service.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/interfaces/queue-service.interface.ts -------------------------------------------------------------------------------- /src/interfaces/queued-message.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/interfaces/queued-message.interface.ts -------------------------------------------------------------------------------- /src/interfaces/response.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/interfaces/response.interface.ts -------------------------------------------------------------------------------- /src/middlewares/api-spec.middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/middlewares/api-spec.middleware.ts -------------------------------------------------------------------------------- /src/middlewares/error.middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/middlewares/error.middleware.ts -------------------------------------------------------------------------------- /src/middlewares/validator.middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/middlewares/validator.middleware.ts -------------------------------------------------------------------------------- /src/routers/message.router.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/routers/message.router.ts -------------------------------------------------------------------------------- /src/serverless-consumer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/serverless-consumer.ts -------------------------------------------------------------------------------- /src/serverless-producer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/serverless-producer.ts -------------------------------------------------------------------------------- /src/services/event/event.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/services/event/event.service.ts -------------------------------------------------------------------------------- /src/services/event/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/services/event/index.ts -------------------------------------------------------------------------------- /src/services/log/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/services/log/index.ts -------------------------------------------------------------------------------- /src/services/log/log.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/services/log/log.service.ts -------------------------------------------------------------------------------- /src/services/queue/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/services/queue/index.ts -------------------------------------------------------------------------------- /src/services/queue/local-queue.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/services/queue/local-queue.service.ts -------------------------------------------------------------------------------- /src/services/queue/sqs-queue.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/services/queue/sqs-queue.service.ts -------------------------------------------------------------------------------- /src/validators/message.validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/src/validators/message.validator.ts -------------------------------------------------------------------------------- /test/.env.test: -------------------------------------------------------------------------------- 1 | ENVIRONMENT=test 2 | MESSAGE_QUEUE_URL=http://localhost:3100 -------------------------------------------------------------------------------- /test/controllers/message.controller.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/test/controllers/message.controller.spec.ts -------------------------------------------------------------------------------- /test/env-setup.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/test/env-setup.ts -------------------------------------------------------------------------------- /test/middlewares/api-spec.middleware.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/test/middlewares/api-spec.middleware.spec.ts -------------------------------------------------------------------------------- /test/middlewares/error.middleware.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/test/middlewares/error.middleware.spec.ts -------------------------------------------------------------------------------- /test/middlewares/validator.middleware.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/test/middlewares/validator.middleware.spec.ts -------------------------------------------------------------------------------- /test/mock-factories/aws-sdk.mock.factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/test/mock-factories/aws-sdk.mock.factory.ts -------------------------------------------------------------------------------- /test/mock-factories/express.mock-factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/test/mock-factories/express.mock-factory.ts -------------------------------------------------------------------------------- /test/mock-factories/message.mock-factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/test/mock-factories/message.mock-factory.ts -------------------------------------------------------------------------------- /test/services/event-service.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/test/services/event-service.spec.ts -------------------------------------------------------------------------------- /test/services/log.service.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/test/services/log.service.spec.ts -------------------------------------------------------------------------------- /test/services/sqs-queue.service.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/test/services/sqs-queue.service.spec.ts -------------------------------------------------------------------------------- /test/validators/message.validator.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/test/validators/message.validator.spec.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/limehome/serverless-express-typescript-sqs/HEAD/tsconfig.json --------------------------------------------------------------------------------