1.0.3 • Published 2 months ago
@supercat1337/ls-cache v1.0.3
CacheStorage
A simple library to store and retrieve data in localStorage
using a hashed URL as the key.
Features
- Store and retrieve data in
localStorage
using a hashed URL as the key. - Set a time-to-live (TTL) for cached data.
- Wait for the TTL to expire before removing the cached data.
- You can use your own hash function.
- You can remove all old keys from the cache based on a given date.
Installation
You can install the library using npm:
npm install @supercat1337/ls-cache
Usage
import { CacheStorage } from '@supercat1337/ls-cache';
const cache = new CacheStorage();
const url = "https://example.com";
// Write a value to the cache
cache.write(
url, // URL
"Hello, world!", // Value
1 // TTL in seconds
);
// Read a value from the cache
console.log(cache.read(url));
// Output: "Hello, world!"
// Wait for the cache to expire
setTimeout(() => {
console.log(cache.read(url));
// Output: null
}, 2000);
CacheStorage Methods
Here are the methods available in the CacheStorage
class:
write(url, value, ttl)
: Writes a value to the cache.read(url)
: Reads a value from the cache. Returnsnull
if the value is not found.setKey(key, value, ttl)
: Writes a value to the cache. Key is the hashed URL. key is the hashed URL. value is the value to write. ttl is the time-to-live in seconds.readKey(key)
: Reads a value from the cache. Key is the hashed URL. Returns object with start, end, and value if all exist, otherwise null.getKeyName(text)
: Returns a base-36 hash of a given string by default.getKeyNames()
: Returns an array of all keys in the cache.removeKey(key)
: Removes all records associated with a given key from the cache.removeKeysCreatedBefore(created_date)
: Removes all records from the cache that were created before a specified date.removeOutdatedKeys()
: Removes all outdated keys from the cache.removeAll()
: Removes all records in the cache.
cacheStorageConfig Object
cacheStorageConfig is a global object that can be used to configure the library. You can use your own hash function or Storage object.
import { CacheStorage, cacheStorageConfig } from '@supercat1337/ls-cache';
import { Window } from "happy-dom";
const window = new Window({ url: "https://localhost:8080" });
cacheStorageConfig.storage = window.localStorage;
cacheStorageConfig.keyEncoder = (text) => {
// Your own hash function
return text;
}