Serenity Http Client
EXPERIMENTAL: NOT READY FOR PRODUCTION USE !
About
Serenity Http Client aim to provide a target based http client that manage common use cases out of the box and provide powerful tooling for complex use cases.
Table of contents
🪧 About🚀 Installation🛠️ Usage🤝 Contribution🏗️ Built With📝 Licence
Installation
npm install @serenity-dev/http-client
Usage
Gateway example
Target definition
Http to Domain error mapping
Adapter / Target configuration
Custom Request Interceptor
Custom Error Interceptor
Schema Validation / Typeguard
Retryable errors
Contribution
To setup the project locally see the contributing guide
Built With
Langages & Frameworks
- TypeScript Strongly typed programming language that builds on JavaScript
Tools
CLI
-
Jest framework to run automated tests.
- Configuration: .tooling/.eslint/.eslintrc.cjs
-
Eslint Static code analyzer to find syntax problems.
- Configuration: .tooling/.eslint/.eslintrc.cjs
- Local Documentation: .tooling/.eslint/.eslintrc.cjs
-
Prettier Opinionated code formatter.
- Configuration: .tooling/.prettier/.prettierrc.cjs
- Husky Modern native git hooks. Used for quality check on commit and push.
-
Commitlint checks if your commit messages meet the conventional commit format.
- Configuration: .tooling/.commitlint/commitlint.config.cjs
-
Lint-staged execute commands on staged files.
- Configuration: .tooling/.lint-staged/.lintstagedrc
- Concurrently Used to parallelize commands execution.
CI/CD
- Github Actions
-
Semantic release Automates the whole package release workflow.
- Configuration: .tooling/.semantic-release/.semantic-release.config.cjs
License
See the LICENSE.md file.