Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    nano-promisespublic

    nano-promises

    Build Status Coverage Status Dependencies devDependencies license gitter

    nano-promises is a lightweight wrapper around the fabulous nano driver. It provides the same features but uses promises instead of callbacks.

    Example

    import nano from 'nano';
    import prom from 'nano-promises';
     
    var db = prom(nano('http://localhost:5984')).db.use('test');
     
    db.insert({ 'crazy': true }, 'rabbit')
      .then(function([body, headers]) {
        console.log(body)
      })
      .catch(function(err) {
        console.error(err);
      });
     

    nano-promises promises always resolve to a value of the form [body, headers] or reject to a value of the form error. So it is important to use desructuring in the then handler of the promise.

    async/await

    The above example does not seem convincing to swith to a promise-based approach. nano-promises becomes very handy when used together with the async/await proposal for ES7:

    var isRabbitCrazy = async function() {
      try {
        var [doc] = await db.get('rabbit');
        return doc.crazy;
      } catch(err) {
        console.log('error fetching rabbit:', err);
        throw err;
      }
    };
     

    I don't know about you but I find this very expressive!

    Attribution

    I love the nano library. It has a very good api design and there's a lot of work put into it!

    The code in this repo is mostly adapted from co-nano, but with promises instead of thunks.

    License

    This code is licensed under the ISC license

    Keywords

    none

    install

    npm i nano-promises

    Downloadsweekly downloads

    130

    version

    1.2.0

    license

    ISC

    repository

    githubgithub

    last publish

    collaborators

    • avatar
    • avatar