global-cache
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/global-cache package

1.2.1 • Public • Published

global-cache Version Badge

Build Status dependency status dev dependency status License Downloads

npm badge

browser support

Sometimes you have to do horrible things, like use the global object to share a singleton. Abstract that away, with this!

This attaches a cache to the global object. It attempts to make it as undiscoverable as possible:

  • uses Symbols if available
  • if not, uses a string key that is not a valid identifier, so as not to show up in dot-notation browser autocomplete
  • makes it non-enumerable if property descriptors are supported

Keys are required to be strings or symbols.

Example

var cache = require('global-cache');
var assert = require('assert');
 
var value = {};
assert(cache.get(key) === undefined);
assert(cache.has(key) === false);
 
cache.set(key, value);
assert(cache.get(key) === value);
assert(cache.has(key) === true);
 
cache.delete(key);
assert(cache.get(key) === undefined);
assert(cache.has(key) === false);

Tests

Simply clone the repo, npm install, and run npm test

Package Sidebar

Install

npm i global-cache

Weekly Downloads

459,570

Version

1.2.1

License

MIT

Last publish

Collaborators

  • ljharb