# @magic/error

> errors for @magic

Latest version **0.0.24** (published 2026-06-28) · AGPL-3.0 license · 0 weekly downloads

## Install

```sh
npm install @magic/error
pnpm add @magic/error
yarn add @magic/error
bun add @magic/error
```

## Health

**Score 60/100 (C)** — status: active.

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

Warnings: low downloads; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.0.24 |
| Published | 2026-06-28 |
| First published | 2020-01-15 |
| Weekly downloads | 0 |
| License | AGPL-3.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 40.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Wizards & Witches |
| Maintainers | jascha, jaeh |

## Links

- npm: https://www.npmjs.com/package/@magic/error
- Repository: https://github.com/magic/error
- Homepage: https://magic.github.io/error
- Issues: https://github.com/magic/error/issues
- npm.io page: https://npm.io/package/@magic/error

## Dependencies (1)

- [@magic/types](https://npm.io/package/@magic/types.md) 0.1.38

## Recent versions

- 0.0.24 (latest) — 2026-06-28
- 0.0.23 — 2026-06-06
- 0.0.22 — 2026-06-06
- 0.0.21 — 2025-10-30
- 0.0.20 — 2025-09-24
- 0.0.19 — 2025-09-24
- 0.0.18 — 2025-09-24
- 0.0.17 — 2023-02-16
- 0.0.16 — 2022-05-14
- 0.0.15 — 2022-05-10
- 0.0.14 — 2022-04-06
- 0.0.13 — 2022-04-01
- 0.0.12 — 2021-12-26
- 0.0.11 — 2021-12-24
- 0.0.10 — 2021-07-24
- … 9 more at https://npm.io/package/@magic/error/versions

## README

# @magic/error

throw errors with custom code/name.

[html-docs](https://magic.github.io/error)

[![NPM version][npm-image]][npm-url]
[![Linux Build Status][travis-image]][travis-url]
[![Windows Build Status][appveyor-image]][appveyor-url]
[![Coverage Status][coveralls-image]][coveralls-url]
[![Known Vulnerabilities][snyk-image]][snyk-url]

[npm-image]: https://img.shields.io/npm/v/@magic/error.svg
[npm-url]: https://www.npmjs.com/package/@magic/error
[travis-image]: https://img.shields.io/travis/com/magic/error/master
[travis-url]: https://travis-ci.com/magic/error
[appveyor-image]: https://img.shields.io/appveyor/ci/magic/error/master.svg
[appveyor-url]: https://ci.appveyor.com/project/magic/error/branch/master
[coveralls-image]: https://coveralls.io/repos/github/magic/error/badge.svg
[coveralls-url]: https://coveralls.io/github/magic/error
[snyk-image]: https://snyk.io/test/github/magic/error/badge.svg
[snyk-url]: https://snyk.io/test/github/magic/error

### installation:

```javascript
npm install @magic/error
```

### usage:

```javascript
import error from '@magic/error'

err = error('message', 'name')
// Error { message: 'message', name: 'name', code: 'E_NAME', type: 'E', msg: 'message' }

err = error('message')
// Error { message: 'message', name: 'Unknown', code: 'E_UNKNOWN', type: 'E', msg: 'message' }

err = error(new Error('message'))
// Error { message: 'message', name: 'Error', code: 'E_UNKNOWN', type: 'E', msg: 'message' }

err = error('message', 'name with spaces')
// Error {
//  message: 'message',
//  name: 'name with spaces',
//  code: 'E_NAME_WITH_SPACES',
//  type: 'E',
//  msg: 'message',
// }

err = error(['message', 'name', 'T'])
// Error { message: 'message', name: 'name', code: 'T_NAME', type: T, msg: 'message' }

err = error(['message'], 'name', 'T')
// Error { message: 'message', name: 'name', code: 'T_NAME', type: T, msg: 'message' }

err = error(['message', 'name1'], 'name2', 'T')
// Error { message: 'message', name: 'name1', code: 'T_NAME1', type: T, msg: 'message' }
```

#### error types

errors can have types

```javascript
// E is the default type
err = error('message', 'name')
// Error { message: 'message', name: 'name', code: 'E_NAME', type: 'E', msg: 'message' }

// warnings:
err = error('message', 'name', 'W')
// Error { message: 'message', name: 'name', code: 'W_NAME', type: 'W', msg: 'message' }

// debug:
err = error('message', 'name', 'D')
// Error { message: 'message', name: 'name', code: 'D_NAME', type: 'D', msg: 'message' }
```

##### changelog

##### 0.0.1

first commit

#### 0.0.2

- errors can be passed as first argument
- error.name is unchanged, error.code gets transformed to start with E\_ and be uppercased.
- error.code for passed in errors is E_UNKNOWN.

#### 0.0.3

- error type (third fn argument) can now be set, default is E to keep output the same.
- error name (second fn argument) can now be a string with spaces.
  e.code is e.type + e.name, but UPPER_SNAKE_CASED.
- error stack cleanup improved.

#### 0.0.4

- err.msg is no === err.message
- first argument can be an array of [message, name, type]

#### 0.0.5

- fix replacement of : in error name and error message to only replace the ones we want to replace

#### 0.0.6

bump required node version to 14.2.0

#### 0.0.7

update depdendencies

#### 0.0.8

- bump required node version to 14.15.4
- update dependencies

##### 0.0.9

update dependencies

##### 0.0.10

update @magic/types to avoid circular dependency

##### 0.0.11

- use @magic/types internally
- update dependencies

##### 0.0.12

update dependencies

##### 0.0.13

update dependencies

##### 0.0.14

update dependencies

##### 0.0.15

update dependencies

##### 0.0.16

update dependencies

##### 0.0.17

update dependencies

##### 0.0.18

- add typescript types
- update dependencies

##### 0.0.19

- export types from types dir...

##### 0.0.20

- pkg: add types dir to files array

##### 0.0.21

- update dependencies

##### 0.0.22

- update dependencies

##### 0.0.23

- update dependencies

##### 0.0.24

- update dependencies

##### 0.0.25 - unreleased

...

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