Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@koopjs/cache-memory

Package Overview
Dependencies
Maintainers
7
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@koopjs/cache-memory

An in-memory cache for KOop

  • 6.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
537
decreased by-11.53%
Maintainers
7
Weekly downloads
 
Created
Source

Koop Memory Cache

npm version coverage

This is a LRU cache with ttl (time to live) expiry. It expects cache items to be GeoJSON feature collections. It is based on quick-lru.

Cache eviction occurs in two ways:

  1. if the cache grows to a number of items greater than the cache's defined size, the least recently inserted or accessed item is evicted
  2. if a item is accessed and it has gone past its ttl period, it is evicted

Usage

Stand-alone instantiation:

const Cache = require('@koopjs/cache-memory');
const cache = new Cache({ size: 1000 });

As a Koop cache plugin

This is the default cache for Koop so you won't need to instantiate it yourself. If you really wanted to, it would look like this:

const Koop = require('koop')
const koop = new Koop()
const cache = require('@koopjs/cache-memory')
koop.register(cache, { size: 1000 })
Options

size: the maximum number of items to store in the queue before evicting the least recently used item.

Cache API

The cache is a JavaScript object that lives in-memory. It is used to store geojson features.

insert

Insert geojson into the cache.

const geojson = {
  type: 'FeatureCollection',
  features: [],
  metadata: { 
    name: 'Example GeoJSON',
    description: 'This is geojson that will be stored in the cache'
  }
}

const options = {
  ttl: 1000 // The TTL option is measured in seconds, it will be used to set the `maxAge` property in the LRU cache
}

cache.insert('key', geojson, options, err => {
  // This function will call back with an error if one occurs
})

retrieve

Retrieve a cached feature collection.

const options = {
  pick: [] // an array of keys used to return a subset of the feature collections root level properties
  omit
} 

cache.retrieve('key', options, (err, geojson) => {
  /* This function will callback with an error or the data cached with the passed key. It will return undefined if not found or expired.
  {
    type: 'FeatureCollection',
    features: [],
    metadata: {}
  }
  */
})

delete

Remove a feature collection from the cache

cache.delete('key', err => {
  // This function will call back with an error if one occurs
})

Keywords

FAQs

Package last updated on 08 Feb 2024

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc