1.1.0 • Published 4 years ago

resn v1.1.0

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

resn

Go-style normalized errors in JS

GitHub | NPM

Install

npm i resn
const resn = require('resn')

Use

Here, we pass in a callback function (fs.readFile) to be converted to a resn callable.

const rReadFile = resn(fs.readFile)

;(async () => {
	var {err, res} = await rReadFile('index.js')

	if (err) {
		console.error('[!]', err.message)
		return
	}

	console.log('[~] Read file!')
	console.log(res.toString())
})()

We can pass in all kinds of things to make resn callables. We can convert almost all libraries' functions, new and old, to resn callables.

const myPromFunc = () => {
	return new Promise((res, rej) => {
		res('Hey!')
	})
}

const rPromFunc = resn(myPromFunc)

const basicFunc = function (giveError = false) {
	if (giveError) {
		throw new Error('Failed!')
	}

	return 'Hey!'
}

const rBasicFunc = resn(basicFunc)

We can even convert a whole library of varying-style functions to resn callables at once.

const fs = resn(require('fs'))

;(async () => {
	var {err, res} = await fs.readFile(__filename)

	// ...
})

Why?

The resn method of handling errors is effective because it avoids problems associated with old style handling. We can avoid using try/catch constantly and can gracefully handle all errors. Also, we can convert all kinds of functions into a common format easily with one function.

It is recommended that you use var when receiving resn callable responses as this will allow you to reuse the err and res variable names within a scope.