# @jimmyhedstr0m/interceptor

> Intercept JavaScript XMLHttpRequests in systems where you need a callback on certain HTTP requests.

Latest version **1.0.4** (published 2020-09-07) · MIT license · 0 weekly downloads

## Install

```sh
npm install @jimmyhedstr0m/interceptor
pnpm add @jimmyhedstr0m/interceptor
yarn add @jimmyhedstr0m/interceptor
bun add @jimmyhedstr0m/interceptor
```

## Health

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

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.4 |
| Published | 2020-09-07 |
| First published | 2020-09-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 16.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Jimmy Hedström |
| Maintainers | jimmyhedstr0m |
| Keywords | XMLHttpRequests, Intercept |

## Links

- npm: https://www.npmjs.com/package/@jimmyhedstr0m/interceptor
- Repository: https://github.com/jimmyhedstr0m/interceptor
- Homepage: https://github.com/jimmyhedstr0m/interceptor#readme
- Issues: https://github.com/jimmyhedstr0m/interceptor/issues
- npm.io page: https://npm.io/package/@jimmyhedstr0m/interceptor

## 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.4 (latest) — 2020-09-07
- 1.0.3 — 2020-09-07
- 1.0.2 — 2020-09-07
- 1.0.1 — 2020-09-05
- 1.0.0 — 2020-09-05

## README

# Interceptor
Intercept JavaScript ```XMLHttpRequest``` in systems where you need a callback on certain HTTP requests.

## Installation

### Using npm
```console
$ npm install --save @jimmyhedstr0m/interceptor
```
or
```console
$ yarn add @jimmyhedstr0m/interceptor
```

Now import `Interceptor` and start using it:

```js
import Interceptor from '@jimmyhedstr0m/interceptor';
```

### Without a bundler

Add this script to your HTML file:

```html
<script src="https://unpkg.com/@jimmyhedstr0m/interceptor/dist/index.js"></script>
```

## Usage
```javascript
const Interceptor = require('@jimmyhedstr0m/interceptor');

// optional
const options = {
  timeout: 30000
};

const interceptor = new Interceptor(options);

interceptor.register('https://randomuser.me/api/', (err, res) => {
  if (err) {
    console.log('got error', err);
  }

  console.log('success', res);
  interceptor.unregister();
});

const xhr = new XMLHttpRequest();
xhr.open('GET', 'https://randomuser.me/api/');
xhr.send();
```

You can also pattern match any url by using RegExp:
```javascript
Interceptor.register(/\/api\//, options, (err, res) => { }
```

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