1.1.0 • Published 8 years ago

jonathan v1.1.0

Weekly downloads
45
License
-
Repository
github
Last release
8 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

8 years ago

1.0.12

9 years ago

1.0.11

9 years ago

1.0.10

9 years ago

1.0.9

9 years ago

1.0.8

9 years ago

1.0.7

9 years ago

1.0.6

9 years ago

1.0.5

9 years ago

1.0.4

9 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago