Socket
Socket
Sign inDemoInstall

jonathan

Package Overview
Dependencies
0
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    jonathan

DEPRECATED! An in-memory cache for Node


Version published
Weekly downloads
14
decreased by-22.22%
Maintainers
1
Install size
5.26 kB
Created
Weekly downloads
 

Readme

Source

DEPRECATED

This was the first npm module that I published since returning to web development. It was mainly an experiment with TDD in Node.js, and in retrospect, it isn't that great; the worst offender is that it uses setInterval to remove items from the cache, rather than simply attaching a timestamp to cache items, when stored, for later comparison.

The module will still be available, and I might consider unpublishing it (GASP) if I can confirm that it is no longer being downloaded. In the meantime, you should migrate to stale-lru-cache; it's ridiculously fast.

Jonathan Build status

(npm)

An in-memory cache for Node.js

Installation

Jonathan can be installed into your project via npm:

npm install jonathan --save

Basic usage

'use strict';

var http = require('http');
var jonathan = require('jonathan');
var server;

server = http.createServer(function (req, res) {
	jonathan.add('name', 'James');
	res.writeHead(200, { 'Content-Type': 'text/plain' });
	res.end('The name stored in Jonathan is: ' + jonathan.get('name'));
});

server.listen(3000);
console.log('Listening on port 3000');

APIs

Number.prototype polyfills

As of version 1.0.9, this module attaches a set of properties to Number's prototype so that you can write durations more fluently, such as:

jonathan.add('key', 'value', (2).weeks);
jonathan.add('key2', ['one', 'two'], (5).months);
jonathan.add('key3', { name: 'Bob' }, (50).seconds);

These properties simply multiply the Number object on which you've called the method by a predefined amount of milliseconds.

Here are all of the attached projects:

  • Number.prototype.seconds
  • Number.prototype.minutes
  • Number.prototype.hours
  • Number.prototype.days
  • Number.prototype.weeks
  • Number.prototype.months
  • Number.prototype.years

Prior to 1.0.9, these properties exist as methods, and thus must be invoked explicitly.

jonathan

####init() - Function removed in 1.0.9 Initialises the cache. You must call this before you can use Jonathan.

####invalidate() - Function Invalidates the entire cache

####add(key, value, duration) - Function Adds any JavaScript Object to the cache under a specified String key. If the duration parameter is not specified, it will be stored indefinitely, otherwise a Number is required representing the total milliseconds to persist the data (see Number.prototype polyfills.)

####get(key) - Function Retrieves a value from the cache by the specified key. If the key is not present in the cache, this method will return undefined.

####remove(key) - Function Removes a key, and its accompanying value, from the cache.

Tests

Jonathan was written using test-driven development (TDD) with Mocha. To run the tests, simply invoke npm test.

Keywords

FAQs

Last updated on 10 May 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc