🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@resolid/cache

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@resolid/cache - npm Package Compare versions

Comparing version
0.1.1
to
0.2.0
+1
dist/null-cache-95ZKDSid.js
var e=class{async get(e){}async set(e,t,n){return!0}async del(e){return!0}async clear(){return!0}async getMultiple(e){return e.map(()=>void 0)}async setMultiple(e,t){return!0}async delMultiple(e){return!0}async has(e){return!1}async dispose(){}};export{e as t};
+20
-15
import { t as CacheStore } from "./index-DvzAtk0z.js";
//#region src/index.d.ts
type CreateCacheOptions = {
interface CacheOptions {
store?: CacheStore;
defaultTtl?: number;
};
type CacheInstance = {
get: <T>(key: string, defaultValue?: T) => Promise<T | undefined>;
set: <T>(key: string, value: T, ttl?: number) => Promise<boolean>;
del: (key: string) => Promise<boolean>;
clear: () => Promise<boolean>;
getMultiple: <T>(keys: string[], defaultValue?: T) => Promise<(T | undefined)[]>;
setMultiple: <T>(values: Record<string, T>, ttl?: number) => Promise<boolean>;
delMultiple: (keys: string[]) => Promise<boolean>;
has: (key: string) => Promise<boolean>;
dispose: () => Promise<void> | void;
};
declare const createCache: (options?: CreateCacheOptions) => CacheInstance;
}
declare class Cacher {
private readonly store;
private readonly defaultTtl?;
constructor({
store,
defaultTtl
}?: CacheOptions);
get<T>(key: string, defaultValue?: T): Promise<T | undefined>;
set<T>(key: string, value: T, ttl?: number): Promise<boolean>;
del(key: string): Promise<boolean>;
clear(): Promise<boolean>;
getMultiple<T>(keys: string[], defaultValue?: T): Promise<(T | undefined)[]>;
setMultiple<T>(values: Record<string, T>, ttl?: number): Promise<boolean>;
delMultiple(keys: string[]): Promise<boolean>;
has(key: string): Promise<boolean>;
dispose(): Promise<void>;
}
//#endregion
export { CacheInstance, CreateCacheOptions, createCache };
export { CacheOptions, Cacher };

@@ -1,1 +0,1 @@

import{t as e}from"./null-cache-2iHFUXTp.js";import{t}from"./utils-CV58ddJF.js";import{destr as n}from"destr";const r=(r={})=>{let{defaultTtl:i,store:a=e}=r,o=async(e,r)=>{let i=await a.get(t(e));return i===void 0?r:n(i)},s=(e,n,r)=>a.set(t(e),JSON.stringify(n),r??i),c=e=>a.del(t(e));return{get:o,set:s,del:c,clear:()=>a.clear(),getMultiple:(e,r)=>typeof a.getMultiple==`function`?a.getMultiple(e.map(e=>t(e))).then(e=>e.map(e=>e===void 0?r:n(e))):Promise.all(e.map(e=>o(e,r))),setMultiple:(e,n)=>typeof a.setMultiple==`function`?a.setMultiple(Object.entries(e).reduce((e,[n,r])=>(e[t(n)]=JSON.stringify(r),e),{}),n):Promise.all(Object.entries(e).map(([e,t])=>s(e,t,n))).then(e=>e.every(Boolean)),delMultiple:e=>typeof a.delMultiple==`function`?a.delMultiple(e.map(e=>t(e))):Promise.all(e.map(c)).then(e=>e.every(Boolean)),has:async e=>typeof a.has==`function`?a.has(t(e)):o(e).then(e=>e!==void 0),dispose:async()=>{a.dispose&&await a.dispose()}}};export{r as createCache};
import{t as e}from"./null-cache-95ZKDSid.js";import{t}from"./utils-CV58ddJF.js";import{destr as n}from"destr";var r=class{store;defaultTtl;constructor({store:t=new e,defaultTtl:n}={}){this.store=t,this.defaultTtl=n}async get(e,r){let i=await this.store.get(t(e));return i===void 0?r:n(i)}set(e,n,r){return this.store.set(t(e),JSON.stringify(n),r??this.defaultTtl)}del(e){return this.store.del(t(e))}clear(){return this.store.clear()}async getMultiple(e,r){return this.store.getMultiple?(await this.store.getMultiple(e.map(t))).map(e=>e===void 0?r:n(e)):Promise.all(e.map(e=>this.get(e,r)))}async setMultiple(e,n){if(this.store.setMultiple){let r=Object.entries(e).reduce((e,[n,r])=>(e[t(n)]=JSON.stringify(r),e),{});return this.store.setMultiple(r,n)}return(await Promise.all(Object.entries(e).map(([e,t])=>this.set(e,t,n)))).every(Boolean)}async delMultiple(e){return this.store.delMultiple?this.store.delMultiple(e.map(t)):(await Promise.all(e.map(e=>this.del(e)))).every(Boolean)}async has(e){return this.store.has?this.store.has(t(e)):await this.get(e)!==void 0}async dispose(){await this.store.dispose?.()}};export{r as Cacher};
import { t as CacheStore } from "./index-DvzAtk0z.js";
//#region src/stores/memory-cache.d.ts
declare const createMemoryCache: (maxSize?: number) => CacheStore;
declare class MemoryCache implements CacheStore {
private readonly lru;
constructor(maxSize?: number);
get(key: string): Promise<string | undefined>;
set(key: string, value: string, ttl?: number): Promise<boolean>;
del(key: string): Promise<boolean>;
clear(): Promise<boolean>;
dispose(): Promise<void>;
}
//#endregion
//#region src/stores/null-cache.d.ts
declare const nullCache: Required<CacheStore>;
declare class NullCache implements Required<CacheStore> {
get<T>(_: string): Promise<T>;
set(_key: string, _value: string, _ttl?: number): Promise<boolean>;
del(_key: string): Promise<boolean>;
clear(): Promise<boolean>;
getMultiple<T>(_keys: string[]): Promise<(T | undefined)[]>;
setMultiple(_values: Record<string, string>, _ttl?: number): Promise<boolean>;
delMultiple(_keys: string[]): Promise<boolean>;
has(_key: string): Promise<boolean>;
dispose(): Promise<void>;
}
//#endregion
export { createMemoryCache, nullCache };
export { MemoryCache, NullCache };

@@ -1,1 +0,1 @@

import{t as e}from"./null-cache-2iHFUXTp.js";import t from"quick-lru";const n=(e=1e3)=>{let n=new t({maxSize:e});return{get:async e=>n.get(e),set:async(e,t,r)=>(n.set(e,t,r?{maxAge:r*1e3}:void 0),!0),del:async e=>n.delete(e),clear:async()=>(n.clear(),!0),dispose:async()=>{n.clear()}}};export{n as createMemoryCache,e as nullCache};
import{t as e}from"./null-cache-95ZKDSid.js";import t from"quick-lru";var n=class{lru;constructor(e=1e3){this.lru=new t({maxSize:e})}async get(e){return this.lru.get(e)}async set(e,t,n){return this.lru.set(e,t,n?{maxAge:n*1e3}:void 0),!0}async del(e){return this.lru.delete(e)}async clear(){return this.lru.clear(),!0}async dispose(){this.lru.clear()}};export{n as MemoryCache,e as NullCache};
{
"name": "@resolid/cache",
"version": "0.1.1",
"version": "0.2.0",
"private": false,

@@ -52,6 +52,6 @@ "description": "The Resolid Cache package.",

"devDependencies": {
"@vitest/coverage-v8": "beta",
"tsdown": "^0.15.9",
"@vitest/coverage-v8": "^4.0.3",
"tsdown": "^0.15.10",
"typescript": "^5.9.3",
"vitest": "beta"
"vitest": "^4.0.3"
},

@@ -58,0 +58,0 @@ "engines": {

@@ -39,5 +39,5 @@ # Resolid: Cache Package

```js
import { createCache } from "@resolid/cache";
import { Cacher } from "@resolid/cache";
const cache = createCache({ defaultTtl: 1000 });
const cache = new Cacher({ defaultTtl: 1000 });

@@ -69,6 +69,6 @@ // Single set/get

```ts
export type CreateCacheOptions = {
store?: CacheStore; // Custom storage backend
defaultTtl?: number; // Default TTL in seconds
};
export interface CacheOptions {
store?: CacheStore;
defaultTtl?: number;
}
```

@@ -75,0 +75,0 @@

const e={get:async()=>{},set:async()=>!0,del:async()=>!0,clear:async()=>!0,getMultiple:async e=>e.map(()=>void 0),setMultiple:async()=>!0,delMultiple:async()=>!0,has:async()=>!1,dispose:async()=>{}};export{e as t};