# reqiox

> Reqiox is a flexible and feature-rich library for making HTTP requests in JavaScript applications. It provides capabilities for request interception, response interception, request cancellation, retry mechanisms, and caching.

Latest version **1.0.0** (published 2024-07-06) · ISC license · 0 weekly downloads

## Install

```sh
npm install reqiox
pnpm add reqiox
yarn add reqiox
bun add reqiox
```

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2024-07-06 |
| First published | 2024-07-06 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 248 |
| Unpacked size | 39.8 KB |
| Known vulnerabilities | 0 (+2 in 2 direct dependencies) |
| Install scripts | no |
| Author | Aayush Lad |
| Maintainers | aayushladev |
| Keywords | fetch, http, request, axios, interceptor, caching, retry, abortcontroller, reqiox, request, response |

## Links

- npm: https://www.npmjs.com/package/reqiox
- npm.io page: https://npm.io/package/reqiox

## Dependencies (248)

- [co](https://npm.io/package/co.md) ^4.6.0
- [ms](https://npm.io/package/ms.md) ^2.1.2
- [ajv](https://npm.io/package/ajv.md) ^6.12.6
- [bser](https://npm.io/package/bser.md) ^2.1.1
- [exit](https://npm.io/package/exit.md) ^0.1.2
- [glob](https://npm.io/package/glob.md) ^7.2.3
- [keyv](https://npm.io/package/keyv.md) ^4.5.4
- [levn](https://npm.io/package/levn.md) ^0.4.1
- [once](https://npm.io/package/once.md) ^1.4.0
- [pify](https://npm.io/package/pify.md) ^4.0.1
- [tmpl](https://npm.io/package/tmpl.md) ^1.0.5
- [y18n](https://npm.io/package/y18n.md) ^5.0.8
- [acorn](https://npm.io/package/acorn.md) ^8.12.1
- [chalk](https://npm.io/package/chalk.md) ^2.4.2
- [cliui](https://npm.io/package/cliui.md) ^8.0.1
- [debug](https://npm.io/package/debug.md) ^4.3.5
- [execa](https://npm.io/package/execa.md) ^5.1.1
- [fastq](https://npm.io/package/fastq.md) ^1.17.1
- [isexe](https://npm.io/package/isexe.md) ^2.0.0
- [jsesc](https://npm.io/package/jsesc.md) ^2.5.2
- [json5](https://npm.io/package/json5.md) ^2.2.3
- [kleur](https://npm.io/package/kleur.md) ^3.0.3
- [leven](https://npm.io/package/leven.md) ^3.1.0
- [p-try](https://npm.io/package/p-try.md) ^2.2.0
- [slash](https://npm.io/package/slash.md) ^2.0.0
- [which](https://npm.io/package/which.md) ^2.0.2
- [yargs](https://npm.io/package/yargs.md) ^17.7.2
- [braces](https://npm.io/package/braces.md) ^3.0.3
- [dedent](https://npm.io/package/dedent.md) ^1.5.3
- [espree](https://npm.io/package/espree.md) ^10.1.0
- [expect](https://npm.io/package/expect.md) ^29.7.0
- [hasown](https://npm.io/package/hasown.md) ^2.0.2
- [ignore](https://npm.io/package/ignore.md) ^5.3.1
- [semver](https://npm.io/package/semver.md) ^6.3.1
- [uri-js](https://npm.io/package/uri-js.md) ^4.4.1
- [walker](https://npm.io/package/walker.md) ^1.0.8
- [wrappy](https://npm.io/package/wrappy.md) ^1.0.2
- [ci-info](https://npm.io/package/ci-info.md) ^3.9.0
- [deep-is](https://npm.io/package/deep-is.md) ^0.1.4
- [esprima](https://npm.io/package/esprima.md) ^4.0.1
- [esquery](https://npm.io/package/esquery.md) ^1.5.0
- [esutils](https://npm.io/package/esutils.md) ^2.0.3
- [find-up](https://npm.io/package/find-up.md) ^5.0.0
- [flatted](https://npm.io/package/flatted.md) ^3.3.1
- [gensync](https://npm.io/package/gensync.md) ^1.0.0-beta.2
- [is-glob](https://npm.io/package/is-glob.md) ^4.0.3
- [js-yaml](https://npm.io/package/js-yaml.md) ^4.1.0
- [onetime](https://npm.io/package/onetime.md) ^5.1.2
- [p-limit](https://npm.io/package/p-limit.md) ^3.1.0
- [pirates](https://npm.io/package/pirates.md) ^4.0.6
- [pkg-dir](https://npm.io/package/pkg-dir.md) ^4.2.0
- [prompts](https://npm.io/package/prompts.md) ^2.4.2
- [resolve](https://npm.io/package/resolve.md) ^1.22.8
- [reusify](https://npm.io/package/reusify.md) ^1.0.4
- [yallist](https://npm.io/package/yallist.md) ^3.1.1
- [anymatch](https://npm.io/package/anymatch.md) ^3.1.3
- [argparse](https://npm.io/package/argparse.md) ^2.0.1
- [chokidar](https://npm.io/package/chokidar.md) ^3.6.0
- [emittery](https://npm.io/package/emittery.md) ^0.13.1
- [error-ex](https://npm.io/package/error-ex.md) ^1.3.2
- [escalade](https://npm.io/package/escalade.md) ^3.1.2
- [has-flag](https://npm.io/package/has-flag.md) ^3.0.0
- [inflight](https://npm.io/package/inflight.md) ^1.0.6
- [inherits](https://npm.io/package/inherits.md) ^2.0.4
- [jest-cli](https://npm.io/package/jest-cli.md) ^29.7.0
- [make-dir](https://npm.io/package/make-dir.md) ^2.1.0
- [mimic-fn](https://npm.io/package/mimic-fn.md) ^2.1.0
- [p-locate](https://npm.io/package/p-locate.md) ^5.0.0
- [path-key](https://npm.io/package/path-key.md) ^3.1.1
- [punycode](https://npm.io/package/punycode.md) ^2.3.1
- [react-is](https://npm.io/package/react-is.md) ^18.3.1
- [readdirp](https://npm.io/package/readdirp.md) ^3.6.0
- [acorn-jsx](https://npm.io/package/acorn-jsx.md) ^5.3.2
- [callsites](https://npm.io/package/callsites.md) ^3.1.0
- [camelcase](https://npm.io/package/camelcase.md) ^5.3.1
- [commander](https://npm.io/package/commander.md) ^6.2.1
- [deepmerge](https://npm.io/package/deepmerge.md) ^4.3.1
- [esrecurse](https://npm.io/package/esrecurse.md) ^4.3.0
- [is-number](https://npm.io/package/is-number.md) ^7.0.0
- [is-stream](https://npm.io/package/is-stream.md) ^2.0.1
- [jest-diff](https://npm.io/package/jest-diff.md) ^29.7.0
- [jest-each](https://npm.io/package/jest-each.md) ^29.7.0
- [jest-mock](https://npm.io/package/jest-mock.md) ^29.7.0
- [jest-util](https://npm.io/package/jest-util.md) ^29.7.0
- [js-tokens](https://npm.io/package/js-tokens.md) ^4.0.0
- [lru-cache](https://npm.io/package/lru-cache.md) ^5.1.1
- [makeerror](https://npm.io/package/makeerror.md) ^1.0.12
- [minimatch](https://npm.io/package/minimatch.md) ^3.1.2
- [picomatch](https://npm.io/package/picomatch.md) ^2.3.1
- [pure-rand](https://npm.io/package/pure-rand.md) ^6.1.0
- [strip-bom](https://npm.io/package/strip-bom.md) ^4.0.0
- [type-fest](https://npm.io/package/type-fest.md) ^0.21.3
- [word-wrap](https://npm.io/package/word-wrap.md) ^1.2.5
- [wrap-ansi](https://npm.io/package/wrap-ansi.md) ^7.0.0
- [ansi-regex](https://npm.io/package/ansi-regex.md) ^5.0.1
- [babel-jest](https://npm.io/package/babel-jest.md) ^29.7.0
- [char-regex](https://npm.io/package/char-regex.md) ^1.0.2
- [color-name](https://npm.io/package/color-name.md) ^1.1.3
- [concat-map](https://npm.io/package/concat-map.md) ^0.0.1
- [estraverse](https://npm.io/package/estraverse.md) ^5.3.0
- [fill-range](https://npm.io/package/fill-range.md) ^7.1.1
- [flat-cache](https://npm.io/package/flat-cache.md) ^4.0.1
- [get-stream](https://npm.io/package/get-stream.md) ^6.0.1
- [is-extglob](https://npm.io/package/is-extglob.md) ^2.1.1
- [micromatch](https://npm.io/package/micromatch.md) ^4.0.7
- [node-int64](https://npm.io/package/node-int64.md) ^0.4.0
- [optionator](https://npm.io/package/optionator.md) ^0.9.4
- [parse-json](https://npm.io/package/parse-json.md) ^5.2.0
- [path-parse](https://npm.io/package/path-parse.md) ^1.0.7
- [picocolors](https://npm.io/package/picocolors.md) ^1.0.1
- [prelude-ls](https://npm.io/package/prelude-ls.md) ^1.2.1
- [regenerate](https://npm.io/package/regenerate.md) ^1.4.2
- [sisteransi](https://npm.io/package/sisteransi.md) ^1.0.5
- [source-map](https://npm.io/package/source-map.md) ^0.6.1
- [sprintf-js](https://npm.io/package/sprintf-js.md) ^1.0.3
- [strip-ansi](https://npm.io/package/strip-ansi.md) ^6.0.1
- [text-table](https://npm.io/package/text-table.md) ^0.2.0
- [type-check](https://npm.io/package/type-check.md) ^0.4.0
- [ansi-styles](https://npm.io/package/ansi-styles.md) ^3.2.1
- [buffer-from](https://npm.io/package/buffer-from.md) ^1.1.2
- [create-jest](https://npm.io/package/create-jest.md) ^29.7.0
- [cross-spawn](https://npm.io/package/cross-spawn.md) ^7.0.3
- [emoji-regex](https://npm.io/package/emoji-regex.md) ^8.0.0
- [fb-watchman](https://npm.io/package/fb-watchman.md) ^2.0.2
- [fs.realpath](https://npm.io/package/fs.realpath.md) ^1.0.0
- [glob-parent](https://npm.io/package/glob-parent.md) ^5.1.2
- [graceful-fs](https://npm.io/package/graceful-fs.md) ^4.2.11
- [imurmurhash](https://npm.io/package/imurmurhash.md) ^0.1.4
- [is-arrayish](https://npm.io/package/is-arrayish.md) ^0.2.1
- [jest-circus](https://npm.io/package/jest-circus.md) ^29.7.0
- [jest-config](https://npm.io/package/jest-config.md) ^29.7.0
- [jest-runner](https://npm.io/package/jest-runner.md) ^29.7.0
- [jest-worker](https://npm.io/package/jest-worker.md) ^29.7.0
- [json-buffer](https://npm.io/package/json-buffer.md) ^3.0.1
- [locate-path](https://npm.io/package/locate-path.md) ^6.0.0
- [path-exists](https://npm.io/package/path-exists.md) ^4.0.0
- [regjsparser](https://npm.io/package/regjsparser.md) ^0.9.1
- [resolve-cwd](https://npm.io/package/resolve-cwd.md) ^3.0.0
- [signal-exit](https://npm.io/package/signal-exit.md) ^3.0.7
- [stack-utils](https://npm.io/package/stack-utils.md) ^2.0.6
- [type-detect](https://npm.io/package/type-detect.md) ^4.0.8
- [yocto-queue](https://npm.io/package/yocto-queue.md) ^0.1.0
- [ansi-escapes](https://npm.io/package/ansi-escapes.md) ^4.3.2
- [browserslist](https://npm.io/package/browserslist.md) ^4.23.1
- [caniuse-lite](https://npm.io/package/caniuse-lite.md) ^1.0.30001640
- [eslint-scope](https://npm.io/package/eslint-scope.md) ^8.0.1
- [html-escaper](https://npm.io/package/html-escaper.md) ^2.0.2
- [import-fresh](https://npm.io/package/import-fresh.md) ^3.3.0
- [import-local](https://npm.io/package/import-local.md) ^3.1.0
- [jest-resolve](https://npm.io/package/jest-resolve.md) ^29.7.0
- [jest-runtime](https://npm.io/package/jest-runtime.md) ^29.7.0
- [jest-watcher](https://npm.io/package/jest-watcher.md) ^29.7.0
- [lodash.merge](https://npm.io/package/lodash.merge.md) ^4.6.2
- [merge-stream](https://npm.io/package/merge-stream.md) ^2.0.0
- [npm-run-path](https://npm.io/package/npm-run-path.md) ^4.0.1
- [regexpu-core](https://npm.io/package/regexpu-core.md) ^5.3.2
- [resolve-from](https://npm.io/package/resolve-from.md) ^4.0.0
- [run-parallel](https://npm.io/package/run-parallel.md) ^1.2.0
- [string-width](https://npm.io/package/string-width.md) ^4.2.3
- [test-exclude](https://npm.io/package/test-exclude.md) ^6.0.0
- [undici-types](https://npm.io/package/undici-types.md) ^5.26.5
- [yargs-parser](https://npm.io/package/yargs-parser.md) ^21.1.1
- [color-convert](https://npm.io/package/color-convert.md) ^1.9.3
- [function-bind](https://npm.io/package/function-bind.md) ^1.1.2
- [human-signals](https://npm.io/package/human-signals.md) ^2.1.0
- [jest-docblock](https://npm.io/package/jest-docblock.md) ^29.7.0
- [jest-get-type](https://npm.io/package/jest-get-type.md) ^29.6.3
- [jest-snapshot](https://npm.io/package/jest-snapshot.md) ^29.7.0
- [jest-validate](https://npm.io/package/jest-validate.md) ^29.7.0
- [node-releases](https://npm.io/package/node-releases.md) ^2.0.14
- [parent-module](https://npm.io/package/parent-module.md) ^1.0.1
- [pretty-format](https://npm.io/package/pretty-format.md) ^29.7.0
- [shebang-regex](https://npm.io/package/shebang-regex.md) ^3.0.0
- [string-length](https://npm.io/package/string-length.md) ^4.0.2
- [balanced-match](https://npm.io/package/balanced-match.md) ^1.0.2
- [core-js-compat](https://npm.io/package/core-js-compat.md) ^3.37.1
- [detect-newline](https://npm.io/package/detect-newline.md) ^3.1.0
- [diff-sequences](https://npm.io/package/diff-sequences.md) ^29.6.3
- [is-binary-path](https://npm.io/package/is-binary-path.md) ^2.1.0
- [is-core-module](https://npm.io/package/is-core-module.md) ^2.14.0
- [is-path-inside](https://npm.io/package/is-path-inside.md) ^3.0.3
- [jest-haste-map](https://npm.io/package/jest-haste-map.md) ^29.7.0
- [normalize-path](https://npm.io/package/normalize-path.md) ^3.0.0
- [supports-color](https://npm.io/package/supports-color.md) ^5.5.0
- [to-regex-range](https://npm.io/package/to-regex-range.md) ^5.0.1
- [v8-to-istanbul](https://npm.io/package/v8-to-istanbul.md) ^9.3.0
- [brace-expansion](https://npm.io/package/brace-expansion.md) ^1.1.11
- [fast-deep-equal](https://npm.io/package/fast-deep-equal.md) ^3.1.3
- [get-caller-file](https://npm.io/package/get-caller-file.md) ^2.0.5
- [is-generator-fn](https://npm.io/package/is-generator-fn.md) ^2.1.0
- [jest-regex-util](https://npm.io/package/jest-regex-util.md) ^29.6.3
- [lodash.debounce](https://npm.io/package/lodash.debounce.md) ^4.0.8
- [natural-compare](https://npm.io/package/natural-compare.md) ^1.4.0
- [queue-microtask](https://npm.io/package/queue-microtask.md) ^1.2.3
- [resolve.exports](https://npm.io/package/resolve.exports.md) ^2.0.2
- [shebang-command](https://npm.io/package/shebang-command.md) ^2.0.0
- [cjs-module-lexer](https://npm.io/package/cjs-module-lexer.md) ^1.3.1
- [fast-levenshtein](https://npm.io/package/fast-levenshtein.md) ^2.0.6
- [file-entry-cache](https://npm.io/package/file-entry-cache.md) ^8.0.0
- [get-package-type](https://npm.io/package/get-package-type.md) ^0.1.0
- [istanbul-reports](https://npm.io/package/istanbul-reports.md) ^3.1.7
- [path-is-absolute](https://npm.io/package/path-is-absolute.md) ^1.0.1
- [babel-preset-jest](https://npm.io/package/babel-preset-jest.md) ^29.6.3
- [binary-extensions](https://npm.io/package/binary-extensions.md) ^2.3.0
- [jest-message-util](https://npm.io/package/jest-message-util.md) ^29.7.0
- [jest-pnp-resolver](https://npm.io/package/jest-pnp-resolver.md) ^1.2.3
- [lines-and-columns](https://npm.io/package/lines-and-columns.md) ^1.2.4
- [require-directory](https://npm.io/package/require-directory.md) ^2.1.1
- [write-file-atomic](https://npm.io/package/write-file-atomic.md) ^4.0.2
- [convert-source-map](https://npm.io/package/convert-source-map.md) ^2.0.0
- [jest-changed-files](https://npm.io/package/jest-changed-files.md) ^29.7.0
- [jest-leak-detector](https://npm.io/package/jest-leak-detector.md) ^29.7.0
- [jest-matcher-utils](https://npm.io/package/jest-matcher-utils.md) ^29.7.0
- [source-map-support](https://npm.io/package/source-map-support.md) ^0.5.13
- [to-fast-properties](https://npm.io/package/to-fast-properties.md) ^2.0.0
- [collect-v8-coverage](https://npm.io/package/collect-v8-coverage.md) ^1.0.2
- [eslint-visitor-keys](https://npm.io/package/eslint-visitor-keys.md) ^4.0.0
- [istanbul-lib-report](https://npm.io/package/istanbul-lib-report.md) ^3.0.1
- [regenerator-runtime](https://npm.io/package/regenerator-runtime.md) ^0.14.1
- [strip-final-newline](https://npm.io/package/strip-final-newline.md) ^2.0.0
- [strip-json-comments](https://npm.io/package/strip-json-comments.md) ^3.1.1
- [electron-to-chromium](https://npm.io/package/electron-to-chromium.md) ^1.4.818
- [escape-string-regexp](https://npm.io/package/escape-string-regexp.md) ^1.0.5
- [fs-readdir-recursive](https://npm.io/package/fs-readdir-recursive.md) ^1.1.0
- [json-schema-traverse](https://npm.io/package/json-schema-traverse.md) ^0.4.1
- [babel-plugin-istanbul](https://npm.io/package/babel-plugin-istanbul.md) ^6.1.1
- [istanbul-lib-coverage](https://npm.io/package/istanbul-lib-coverage.md) ^3.2.2
- [jest-environment-node](https://npm.io/package/jest-environment-node.md) ^29.7.0
- [regenerator-transform](https://npm.io/package/regenerator-transform.md) ^0.15.2
- [update-browserslist-db](https://npm.io/package/update-browserslist-db.md) ^1.1.0
- [babel-plugin-jest-hoist](https://npm.io/package/babel-plugin-jest-hoist.md) ^29.6.3
- [is-fullwidth-code-point](https://npm.io/package/is-fullwidth-code-point.md) ^3.0.0
- [istanbul-lib-instrument](https://npm.io/package/istanbul-lib-instrument.md) ^6.0.3
- [istanbul-lib-source-maps](https://npm.io/package/istanbul-lib-source-maps.md) ^4.0.1
- [jest-resolve-dependencies](https://npm.io/package/jest-resolve-dependencies.md) ^29.7.0
- [fast-json-stable-stringify](https://npm.io/package/fast-json-stable-stringify.md) ^2.1.0
- [babel-plugin-polyfill-corejs2](https://npm.io/package/babel-plugin-polyfill-corejs2.md) ^0.4.11
- [babel-plugin-polyfill-corejs3](https://npm.io/package/babel-plugin-polyfill-corejs3.md) ^0.10.4
- [json-parse-even-better-errors](https://npm.io/package/json-parse-even-better-errors.md) ^2.3.1
- [regenerate-unicode-properties](https://npm.io/package/regenerate-unicode-properties.md) ^10.1.1
- [supports-preserve-symlinks-flag](https://npm.io/package/supports-preserve-symlinks-flag.md) ^1.0.0
- [babel-preset-current-node-syntax](https://npm.io/package/babel-preset-current-node-syntax.md) ^1.0.1
- [babel-plugin-polyfill-regenerator](https://npm.io/package/babel-plugin-polyfill-regenerator.md) ^0.6.2
- [unicode-match-property-ecmascript](https://npm.io/package/unicode-match-property-ecmascript.md) ^2.0.0
- [unicode-property-aliases-ecmascript](https://npm.io/package/unicode-property-aliases-ecmascript.md) ^2.1.0
- [json-stable-stringify-without-jsonify](https://npm.io/package/json-stable-stringify-without-jsonify.md) ^1.0.1
- [unicode-match-property-value-ecmascript](https://npm.io/package/unicode-match-property-value-ecmascript.md) ^2.1.0
- [unicode-canonical-property-names-ecmascript](https://npm.io/package/unicode-canonical-property-names-ecmascript.md) ^2.0.0

## Alternatives

- [launchdarkly-js-client-sdk](https://npm.io/package/launchdarkly-js-client-sdk.md) — 2.5M weekly downloads
- [@elastic/elasticsearch](https://npm.io/package/@elastic/elasticsearch.md) — 2.1M weekly downloads
- [@c8y/client](https://npm.io/package/@c8y/client.md) — 15.3K weekly downloads
- [@signaldb/maverickjs](https://npm.io/package/@signaldb/maverickjs.md) — 1.7K weekly downloads
- [@bbc/http-transport-cache](https://npm.io/package/@bbc/http-transport-cache.md) — 1.2K weekly downloads

## Recent versions

- 1.0.0 (latest) — 2024-07-06

## README

# Reqiox

Reqiox is a flexible and feature-rich library for making HTTP requests in JavaScript applications. It provides capabilities for request interception, response interception, request cancellation, retry mechanisms, and caching.

## Features

- **Request Methods**: Supports GET, POST, PUT, DELETE methods.
- **Request Interceptors**: Customize or transform requests before they are sent.
- **Response Interceptors**: Handle and modify responses received from requests.
- **AbortController**: Cancel ongoing requests gracefully using AbortController.
- **Retry Mechanism**: Automatic retry with exponential backoff for failed requests.
- **Caching**: In-memory caching of responses with configurable expiration.

## Installation

Install Reqiox via npm:

```bash
npm install reqiox --save
```

```javascript

import ReqioxClient from 'reqiox';

// Initialize ReqioxClient with base URL
const api = new ReqioxClient('https://api.example.com');

// Add request interceptors (optional)
api.addRequestInterceptor(async (options) => {
  // Modify headers, add authentication tokens, etc.
  return options;
});

// Add response interceptors (optional)
api.addResponseInterceptor(async (response) => {
  // Handle global error responses, transform data, etc.
  return response;
});

// Make GET request
api.get('/posts')
  .then(data => console.log('GET Response:', data))
  .catch(error => console.error('GET Error:', error));

// Make POST request
api.post('/posts', { title: 'New Post', body: 'Content' })
  .then(data => console.log('POST Response:', data))
  .catch(error => console.error('POST Error:', error));

// Cancel a request
api.cancelRequest('/posts', 'GET');

// Clear cache for a specific endpoint
api.clearCache('/posts');

// Retry a request with exponential backoff
api.requestWithRetry('/posts', { method: 'GET' })
  .then(data => console.log('Retry Response:', data))
  .catch(error => console.error('Retry Error:', error));

```

# Library Reference


## `new ReqioxClient(baseURL)`

Creates a new instance of ReqioxClient with the specified base URL.

- `baseURL`: Base URL for API requests.

---

## `api.addRequestInterceptor(interceptor)`

Adds a request interceptor function that will be called before sending a request.

- `interceptor`: Function that receives the current request options and returns modified options.

---

## `api.addResponseInterceptor(interceptor)`

Adds a response interceptor function that will be called when a response is received.

- `interceptor`: Function that receives the response object and returns modified response or handles errors.

---

## HTTP Methods

### `api.get(endpoint, options)`

Makes a GET request to the specified endpoint.

- `endpoint`: API endpoint.
- `options`: Optional request options (e.g., headers, timeout).

---

### `api.post(endpoint, body, options)`

Makes a POST request to the specified endpoint.

- `endpoint`: API endpoint.
- `body`: Request body object.
- `options`: Optional request options (e.g., headers, timeout).

---

### `api.put(endpoint, body, options)`

Makes a PUT request to the specified endpoint.

- `endpoint`: API endpoint.
- `body`: Request body object.
- `options`: Optional request options (e.g., headers, timeout).

---

### `api.delete(endpoint, options)`

Makes a DELETE request to the specified endpoint.

- `endpoint`: API endpoint.
- `options`: Optional request options (e.g., headers, timeout).

---

## Other Methods

### `api.cancelRequest(endpoint, method)`

Cancels an ongoing request with the specified endpoint and HTTP method.

- `endpoint`: API endpoint.
- `method`: HTTP method (e.g., GET, POST).

---

### `api.clearCache(endpoint)`

Clears cached response for the specified endpoint.

- `endpoint`: API endpoint.

---

### `api.requestWithRetry(endpoint, options, retries)`

Retries a failed request with exponential backoff.

- `endpoint`: API endpoint.
- `options`: Optional request options (e.g., headers, timeout).
- `retries`: Optional number of retry attempts (default: 3).

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