npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

pool-redis-promise

v1.0.1

Published

wrapper for pool-redis that provides a promise-based implementation

Downloads

22

Readme

Pool-redis-promise

Pool-redis-promise provides a wrapper to the pool-redis npm library.

Usage

Pool-redis-promise wraps pool-redis, which wraps node_redis, providing redis connection pooling with a clean promise-based API (based on Bluebird);

Pool-redis-promise exposes a simple class that can be invoked with a configuration that pool-redis expects, which is then passed to the redis clients. The instance returned exposes a single public API method #getClientAsync, which must be invoked with a single callback function argument which receives the redis client from the pool as its single argument.

All calls to getClientAsync returns a promise. The client itself is populated with both promise-based and non-promised based methods. The non-promise-based methods are those on the (standard redis client)[https://github.com/NodeRedis/node_redis#sending-commands]. The promise-based methods are those same commands appended with Async (e.g., the callback-based set has a promise-based method setAsync). The promise-based methods accept the same arguments however return a promise and do not accept a callback as the last command (errors will bubble to catch functions and successes will bubble to the next then);

Default configuration

Pool-redis-promise sets up a default configuration when a new instance is created if a configuration is not provided (or only a partial configuration is provided). The default configuration is as follows:

  {
    host: 'localhost',
    port: 6379,
    password: null,
    maxConnections: 50,
    handleRedisError: false,
    options: {
      database: 0,
      connect_timeout: 5000
    }
  }

API

#constructor

new require('pool-redis-promise')([config])

Initializes a new redis connection pool with the provided configuration settings. Any settings not provided will fallback to the defaults listed above.

Arguments

  1. [configs] (Object): Optional Configuration settings (see pool-redis options for the settings that can be provided)

Returns

Instance of a redis connection pool

#getClientAsync(callback)

Fetches a client from the redis connection pool and passes the client as the first and only argument to the callback function. As previously mentioned, the client contains callback-based and promise-based methods. The promise-based methods are the same as the standard redis client methods but with Async appended and return a promise instead of accepting a callback as the last argument.

Arguments

  1. callback (Function): Callback function that will receive a client from the redis connection pool

Returns

A Bluebird promise

Testing

Tests can be run via npm test. Ensure that an instance of Redis is running for the integration tests.