Security News
PyPI’s New Archival Feature Closes a Major Security Gap
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
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.
An in-memory cache for Node.js
Jonathan can be installed into your project via npm:
npm install jonathan --save
'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');
Number.prototype
polyfillsAs 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.
#### removed in 1.0.9
Initialises the cache. You must call this before you can use Jonathan.init()
- Function
####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.
Jonathan was written using test-driven development (TDD) with Mocha. To run the tests, simply invoke npm test
.
FAQs
DEPRECATED! An in-memory cache for Node
We found that jonathan demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
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.
Security News
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
Research
Security News
Malicious npm package postcss-optimizer delivers BeaverTail malware, targeting developer systems; similarities to past campaigns suggest a North Korean connection.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.