1.1.0 • Published 9 years ago

jonathan v1.1.0

Weekly downloads
45
License
-
Repository
github
Last release
9 years ago

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.

1.1.0

9 years ago

1.0.12

10 years ago

1.0.11

10 years ago

1.0.10

11 years ago

1.0.9

11 years ago

1.0.8

11 years ago

1.0.7

11 years ago

1.0.6

11 years ago

1.0.5

11 years ago

1.0.4

11 years ago

1.0.3

11 years ago

1.0.2

11 years ago

1.0.1

11 years ago

1.0.0

11 years ago