urlcache

URL key-value cache.

Usage no npm install needed!

<script type="module">
  import urlcache from 'https://cdn.skypack.dev/urlcache';
</script>

README

urlcache NPM Version Bower Version Build Status Dependency Status

URL key-value cache.

Installation

Node.js >= 0.10 is required; < 4.0 will need an Object.assign polyfill. To install, type this at the command line:

npm install urlcache

Constructor

var UrlCache = require("urlcache");
var cache = new UrlCache(options);

Methods

Note: all instances of url can be either a String or a url.parse()-compatible Object.

.clear([url])

Removes the url key-value pair. If the url argument is not defined, all pairs will be removed.

.get(url)

Returns the stored value of url. If no such value exists, undefined will be returned.

.length()

Returns the number of stored key-value pairs.

.set(url, value[, expiryTime])

Stores value (any type) into url key. Optionally, define expiryTime to override options.expiryTime.

cache.set("url", {"key":"value"});
cache.get("url");  //=> {"key":"value"}

cache.set("url", new Promise(function(resolve, reject) {
    // set value after some delayed event
    setTimeout(function() {
        resolve("value");
    }, 500);
});

Promise.resolve(cache.get("url")).then(function(value) {
    console.log(value);  //=> "value"
});

Options

options.defaultPorts

Type: Object
Default value: see urlobj.parse() options
A map of protocol default ports for options.normalizeUrls.

options.expiryTime

Type: Number
Default value: Infinity
The number of milliseconds in which a cached value should be considered valid.

options.normalizeUrls

Type: Boolean
Default value: true
When true, will remove unnecessary URL parts in order to avoid duplicates in cache.

options.stripUrlHashes

Type: Boolean
Default Value: true
When true, will remove #hashes from URLs. They are most likely not useful to you because they are local to the document that contains them.

Changelog

  • 0.7.0 support for Node.js v9
  • 0.6.0 added .length() and removed Object.assign() polyfill
  • 0.5.0 removed use of Promises as they were unnecessary
  • 0.4.0 simpler Promise-based API
  • 0.3.0 added options.defaultPorts, more tests
  • 0.2.0 simplified API
  • 0.1.0 initial release