Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
cache-base
Advanced tools
The cache-base npm package is a simple and fast key-value store for caching data. It provides an easy-to-use API for setting, getting, and managing cached data with support for namespaces and custom storage engines.
Setting and getting values
This feature allows users to store and retrieve data by key. The example shows how to set an object with user details and then retrieve it.
{
const Cache = require('cache-base');
const cache = new Cache();
cache.set('user', { name: 'John Doe', age: 30 });
console.log(cache.get('user'));
}
Using namespaces
Namespaces allow for organizing data under a specific context, avoiding key collisions and making data management clearer. The example demonstrates setting and getting data under a 'users' namespace.
{
const Cache = require('cache-base');
const usersCache = new Cache('users');
usersCache.set('user1', { name: 'John Doe', age: 30 });
console.log(usersCache.get('user1'));
}
Custom storage engines
Cache-base supports custom storage engines, allowing users to define how data is stored and retrieved. This example uses JavaScript's Map object as a custom storage engine.
{
const Cache = require('cache-base');
const customStore = new Map();
const cache = new Cache({ store: customStore });
cache.set('key', 'value');
console.log(cache.get('key'));
}
node-cache is another simple caching solution for Node.js. It offers similar functionalities to cache-base but also includes TTL (time to live) support for automatic cache invalidation, which cache-base does not provide by default.
lru-cache is a cache object that deletes the least-recently-used items. It is similar to cache-base in providing a key-value cache but is specifically optimized for scenarios where you need to limit memory usage and manage entries based on usage frequency.
Basic, general purpose object cache for node.js/javascript projects.
npm i cache-base --save
Create an instance:
var Cache = require('cache-base');
var cache = new Cache();
Inherit
var util = require('util');
var Cache = require('cache-base');
function App() {
Cache.call(this);
}
util.inherits(App, Cache);
Example usage
var app = new App();
app.set('a', 'b');
app.get('a');
//=> 'b'
app.enable('abc');
console.log(app.enabled('abc'));
//=> 'true'
Create a new instance of Cache
cache
{Object}: Optionally pass an object to initialize with.var app = new Cache();
Assign value
to key
or return the value of key
.
key
{String}value
{*}returns
{Cache}: for chainingapp.set(key, value);
// extend
app.set({a: 'b'});
Return the stored value of key
. If key
is not defined, the cache
is returned.
key
{String}app.set('foo', 'bar');
app.get('foo');
// => "bar"
Return true
if the element exists. Dot notation may be used for nested properties.
key
{String}returns
: {Boolean}Example
app.exists('author.name');
//=> true
Extend the cache
with the given object.
returns
{Object} Cache
: to enable chaining.Example
app
.extend({a: 'b'}, {c: 'd'});
.extend('e', {f: 'g'});
Deep merge an object onto the cache
.
returns
{Object} Cache
: to enable chaining.Example
app.merge({a: {one: 'one'}}, {a: {two: 'two'}});
console.log(app.get('a'));
//=> {a: {one: 'one', two: 'two'}}
Return the keys on obj
or this.cache
.
obj
{Object}: Optionally pass an object.returns
{Array}: Array of keys.app.forOwn();
Return the keys on obj
or this.cache
.
obj
{Object}: Optionally pass an object.returns
{Array}: Array of keys.app.keys();
Return an object of only the properties on this.cache
or the given obj
that have function values.
obj
{Object}returns
: {Array}app.functions('foo')
//=> {set: [function], get: [function], functions: [function]}
Return true if a deep property is on the given object or this.cache
.
obj
{Object}: Optionally pass an object.returns
{String} lookup
: Prop string to use for the lookup, e.g. a.b
app.has('a.b.c');
Return true if key
is an own, enumerable property of this.cache
or the given obj
.
key
{String}obj
{Object}: Optionally pass an object to check.returns
: {Boolean}app.hasOwn(key);
// or
app.hasOwn(obj, key);
Clone the given obj
or cache
.
obj
{Object}: Optionally pass an object to clone.returns
: {Boolean}app.clone();
Delete a property or array of properties from the cache then re-save the cache.
key
{String|Array}: The key(s) to omit from the cacheapp.omit('foo');
// or
app.omit(['foo', 'bar']);
Remove key
from the cache, or if no value is specified the entire cache is reset.
key
{String}: The property to remove.Example:
app.clear();
Jon Schlinkert
Copyright (c) 2014 Jon Schlinkert
Released under the MIT license
This file was generated by verb on November 15, 2014.
[0.2.0] - 2014-11-15
FAQs
Basic object cache with `get`, `set`, `del`, and `has` methods for node.js/javascript projects.
The npm package cache-base receives a total of 6,482,097 weekly downloads. As such, cache-base popularity was classified as popular.
We found that cache-base demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers 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.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.