Base class for easily creating meaningful and quiet by default Error classes.
npm i kind-error --save
- You can customize error name with
nameproperty in options object. - By default won't have
stackproperty in the composed error object. - You should pass
showStack: truein options if you want stacktraces. - Composes meaningful error output if
actualandexpectedgiven. - If
actualandexpectedis given, will composemessageautomatically.
For more use-cases see the tests
const KindError = require('kind-error')Initialize
KindErrorclass withmessageandoptions.
Params
message{Object|String}[options]{Object}showStack{Boolean} iftrueerror will have.stackpropertydetailed{Boolean} iftruemore detailed.messagewill be composed
returns{Object}: instance of Error
Example
const err = new KindError('msg', {
showStack: true,
custom: 123
})
console.log(err) // => [KindError: msg]
console.log(err.custom) // => 123
console.log(err.stack) // => error stack traceOr if you give actual and expected it will make default message. See this example.
const assert = require('assert')
const err = new KindError({
actual: [1, 2, 3],
expected: {foo: 'bar'}
})
assert.deepEqual(err.actual, [1, 2, 3])
assert.deepEqual(err.expected, {foo: 'bar'})
assert.strictEqual(err.stack, undefined)
assert.strictEqual(err.type.actual, 'array')
assert.strictEqual(err.type.expected, 'object')
assert.strictEqual(err.inspect.actual, '[ 1, 2, 3 ]')
assert.strictEqual(err.inspect.expected, '{ foo: \'bar\' }')
assert.strictEqual(err.message, 'expect `object`, but `array` given')Here we show how to create new error class
var util = require('util')
var KindError = require('kind-error')
function AppError () {
KindError.apply(this, arguments)
this.name = 'AppError'
}
util.inherits(AppError, KindError)
AppError.prototype.foo = function () {
return 123
}
var err = new AppError('foo bar', {baz: 'qux'})
//=> err
// err.name => 'AppError'
// err.message => 'foo bar'
// err.baz => 'qux'
// err.foo() => 123- abbrev-kindof: Use abbreviations for checking type of given value. Like
kindof(val, 'soa')to check that value is string, object or array. - assert-kindof: Check native type of the given value and throw TypeError if not okey. Expressive, elegant, behavior-driven API, good descriptive default error messages, simple and clean syntax.
- is-kindof: Check type of given javascript value. Support promises, generators, streams, and native types. Thin wrapper around
kind-ofmodule. - kind-of-extra: Extends
kind-oftype check utility with support for promises, generators, streams and errors. Likekindof(Promise.resolve(1)) //=> 'promise'and etc. - kind-of-types: List of all javascript types. Used and useful for checking, validation, sanitizing and testing. Like isStream, isPromise, isWeakset and etc.
- error-base: Create custom Error classes.
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
But before doing anything, please read the CONTRIBUTING.md guidelines.