An open API service indexing awesome lists of open source software.

https://github.com/octokit/request-error.js

Error class for Octokit request errors
https://github.com/octokit/request-error.js

hacktoberfest octokit-js plugin

Last synced: 9 months ago
JSON representation

Error class for Octokit request errors

Awesome Lists containing this project

README

          

# request-error.js

> Error class for Octokit request errors

[![@latest](https://img.shields.io/npm/v/@octokit/request-error.svg)](https://www.npmjs.com/package/@octokit/request-error)
[![Build Status](https://github.com/octokit/request-error.js/workflows/Test/badge.svg)](https://github.com/octokit/request-error.js/actions?query=workflow%3ATest)

## Usage

Browsers

Load @octokit/request-error directly from esm.sh

```html

import { RequestError } from "https://esm.sh/@octokit/request-error";

```

Node

Install with npm install @octokit/request-error

```js
import { RequestError } from "@octokit/request-error";
```

> [!IMPORTANT]
> As we use [conditional exports](https://nodejs.org/api/packages.html#conditional-exports), you will need to adapt your `tsconfig.json` by setting `"moduleResolution": "node16", "module": "node16"`.
>
> See the TypeScript docs on [package.json "exports"](https://www.typescriptlang.org/docs/handbook/modules/reference.html#packagejson-exports).

> See this [helpful guide on transitioning to ESM](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c) from [@sindresorhus](https://github.com/sindresorhus)

```js
const error = new RequestError("Oops", 500, {
request: {
method: "POST",
url: "https://api.github.com/foo",
body: {
bar: "baz",
},
headers: {
authorization: "token secret123",
},
},
response: {
status: 500,
url: "https://api.github.com/foo",
headers: {
"x-github-request-id": "1:2:3:4",
},
data: {
foo: "bar",
},
},
});

error.message; // Oops
error.status; // 500
error.request; // { method, url, headers, body }
error.response; // { url, status, headers, data }
```

### Usage with Octokit

```js
try {
// your code here that sends at least one Octokit request
await octokit.request("GET /");
} catch (error) {
// Octokit errors always have a `error.status` property which is the http response code
if (error.status) {
// handle Octokit error
} else {
// handle all other errors
throw error;
}
}
```

## LICENSE

[MIT](LICENSE)