Koop Memory Cache
Usage
This is the default cache for (Koop)[https://github.com/koopjs/koop] so you won't need to instantiate yourself. If you really wanted to, it would look like this:
const Koop = const koop = const cache = koop
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
Note: A metadata entry will be created automatically. It can be populated from an object on the inserted geojson.
const geojson = type: 'FeatureCollection' features: metadata: // Metadata is an arbitrary object that will be stored in the catalog under the same key as the geojson 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 `expires` field in the catalog entry cache
append
Add features to an existing geojson feature collection in the cache Note:
const geojson = type: 'FeatureCollection' features: cache
update
Update a cached feature collection with new features. This will completely replace the features that are in the cache, but the metadata doc will remain in the catalog.
const geojson = type: 'FeatureCollection' features: const options = ttl: 1000cache
upsert
Update a cached feature collection with new features or insert if the features are not there.
const geojson = type: 'FeatureCollection' features: const options = ttl: 1000 cache
retrieve
Retrieve a cached feature collection
const options = {} // For now there are no options on retrieve. This is meant for compatibility with the general cache APIcache
delete
Remove a feature collection from the cache
cache
createStream
Create a stream of features from the cache
cache
Catalog API
The catalog stores metadata about items that are in the cache.
catalog.insert
Add an arbitrary metadata document to the cache.
Note: This is called automatically by insert
const metadata = name: 'Standalone metadata' status: 'Processing' description: 'Metadata that is not attached to any other data in the cache' cachecatalog
catalog.update
Update a metadata entry
const original = name: 'Doc' status: 'Processing'cachecatalog const update = status: 'Cached' cachecatalog cachecatalog
catalog.retrieve
Retrieve a metadata entry from the catalog
cachecatalog
catalog.delete
Remove a catalog entry from the catalog Note: This cannot be called if data is in the cache under the same key
cachecatalog