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

volos-cache-common

v0.10.8

Published

Basic caching library for the Volos system.

Downloads

2,097

Readme

volos-cache-common

This module adds support for caching to any API.

Modules

This module does not do anything on its own -- it depends on an implementation which stores the cache in a particular place. Current implementations are:

  • volos-cache-memory: Stores the cache in memory on the node where the script is running.
  • volos-cache-redis: Stores the cache in redis.

Example

var cm = require('volos-cache-memory');
var cache = cm.create('name', { ttl: 1000 }); // specifies default ttl as 1000 ms
cache.set('key', 'value');
cache.get('key', callback);

Note: Avoid creating multiple caches with the same name, the results are not defined by the interface and may vary by implementation.

Reference

Class: Cache

Cache.set(key, value, options, callback)

Sets a value into the cache.

  • key (required): A String that identifies the key within the cache.
  • value (required): A String or Buffer that is the value within the cache. If "value" is a string, then it will be converted to a Buffer using the encoding field set in "options" or "utf8" otherwise.
  • options (optional): May include a 'ttl' value that is the time for the value to live in the cache (in milliseconds)
  • callback (optional): If specified, the result of the call is returned via callback. If there was an error, then the first parameter will be an Error object.

Cache.get(key, callback)

Gets a value from the cache.

  • key (required): A string that identifies the key within the cache.
  • callback (required): If specified, the result of the call is returned via callback. If there was an error, then the first parameter will be an Error object. Otherwise, the first parameter will be undefined and the second will be the value stored at the passed key.

Cache.delete(delete, callback)

Deletes a value from the cache.

  • key (required): A string that identifies the key within the cache.
  • callback (optional): If specified, the result of the call is returned via callback. If there was an error, then the first parameter will be an Error object.

Cache.clear(callback)

Clears all values from the cache.

  • callback (optional): If specified, the result of the call is returned via callback. If there was an error, then the first parameter will be an Error object.

Cache.setEncoding(encoding)

Set the text encoding for values retrieved from the cache. The value will be returned as a String in the specified encoding. If this function is never called, then values will always be returned as Buffers.

Middleware

Middleware.cache(id)

Caches "GET" requests and their headers.

Parameters:

  • options is a hash
    • options.key: (optional) may be a string or a function that takes the request and generates a string key. If not specified, key will be set to the request originalUrl. If a function and the function returns null or undefined, request will not be cached.
    • options.id (optional) may be a string or a function that takes the request and generates a string id. If not specified, id will be set to the request url.

Middleware usage examples:

Cache.connectMiddleware()

Returns middleware that may be used in a Connect server.

  server
    .use(cache.connectMiddleware().cache())
    .get('/',
      function(req, resp) {
        ...
Cache.expressMiddleware()

Returns middleware that may be used in a Express server.

  server
    .use(cache.expressMiddleware().cache())
    .get('/',
      function(req, resp) {
        ...
Cache.argoMiddleware()

Returns middleware that may be used in an Argo server.

  server
    .use(cache.argoMiddleware().cache())
    .get('/',
      function(handle) {
        handle('request', function(env, next) {
          ...