1.0.1 • Published 6 years ago

unthen v1.0.1

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

unthen

Convert anything to Promise that resolves to [err, res] array

Build Status NPM version

Install

npm i unthen

Usage

const unthen = require('unthen');

(async function(){
    console.log(await unthen(1));                           //resolves to [null, 1]
    console.log(await unthen(new Error()));                 //resolves to [Error: ]
    console.log(await unthen(Promise.resolve(1)));          //resolves to [null, 1]
    console.log(await unthen(Promise.reject(new Error()))); //resolves to [Error: ]
})()

Why?..

Just because err, res way is more familiar for many of us, even in promise epoch.

Classic way (from this article):

async function handler (req, res) {
    let response
    try {
        response = await request('https://user-handler-service')  
    } catch (err) {
        logger.error('Http error', err)
        return res.status(500).send()
    }

    let document
    try {
        document = await Mongo.findOne({ user: response.body.user })
    } catch (err) {
        logger.error('Mongo error', err)
        return res.status(500).send()
    }

    executeLogic(document, req, res)
}

New way with unthen:

const U = require('unthen');
async function handler (req, res) {
    const [httpErr, response] = await U(request('https://user-handler-service'))
    if (httpErr) {
        logger.error('Http error', err)
        return res.status(500).send()
    }

    const [mongoErr, document] = await U(Mongo.findOne({ user: response.body.user }))
    if(mongoErr) {
        logger.error('Mongo error', err)
        return res.status(500).send()
    }

    executeLogic(document, req, res)
}

License

MIT

1.0.1

6 years ago

1.0.0

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago