@robinpath/cache
Advanced tools
| /** | ||
| * RobinPath Cache Module (Node port) | ||
| * | ||
| * Process-local key-value cache with optional TTL. The store lives in module | ||
| * scope so it is scoped to the current Node.js process and shared across | ||
| * all scripts that reference it. No persistence, no network, no credentials. | ||
| * | ||
| * Exposes `configureCache(host)` for parity; the host reference is unused. | ||
| */ | ||
| import type { BuiltinHandler, FunctionMetadata, ModuleHost, ModuleMetadata } from "@robinpath/core"; | ||
| export declare function configureCache(h: ModuleHost): void; | ||
| export declare const CacheFunctions: Record<string, BuiltinHandler>; | ||
| export declare const CacheFunctionMetadata: Record<string, FunctionMetadata>; | ||
| export declare const CacheModuleMetadata: ModuleMetadata; | ||
| //# sourceMappingURL=cache.d.ts.map |
| {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAWzB,wBAAgB,cAAc,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CAElD;AAsJD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAazD,CAAC;AA4BF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CA+SlE,CAAC;AAIF,eAAO,MAAM,mBAAmB,EAAE,cAkCjC,CAAC"} |
+522
| /** | ||
| * RobinPath Cache Module (Node port) | ||
| * | ||
| * Process-local key-value cache with optional TTL. The store lives in module | ||
| * scope so it is scoped to the current Node.js process and shared across | ||
| * all scripts that reference it. No persistence, no network, no credentials. | ||
| * | ||
| * Exposes `configureCache(host)` for parity; the host reference is unused. | ||
| */ | ||
| const state = {}; | ||
| export function configureCache(h) { | ||
| state.host = h; | ||
| } | ||
| const store = new Map(); | ||
| // ── Helpers ───────────────────────────────────────────────────────────── | ||
| function isExpired(entry) { | ||
| return entry.expiresAt !== null && Date.now() > entry.expiresAt; | ||
| } | ||
| function getNonExpiredKeys() { | ||
| const result = []; | ||
| for (const [key, entry] of store) { | ||
| if (isExpired(entry)) { | ||
| store.delete(key); | ||
| } | ||
| else { | ||
| result.push(key); | ||
| } | ||
| } | ||
| return result; | ||
| } | ||
| // ── Handlers ──────────────────────────────────────────────────────────── | ||
| const set = (args) => { | ||
| const key = String(args[0] ?? ""); | ||
| const value = args[1]; | ||
| const ttl = args[2] != null ? Number(args[2]) : null; | ||
| const expiresAt = ttl != null && ttl > 0 ? Date.now() + ttl * 1000 : null; | ||
| store.set(key, { value, expiresAt }); | ||
| return true; | ||
| }; | ||
| const get = (args) => { | ||
| const key = String(args[0] ?? ""); | ||
| const defaultValue = args[1] !== undefined ? args[1] : null; | ||
| const entry = store.get(key); | ||
| if (!entry) | ||
| return defaultValue; | ||
| if (isExpired(entry)) { | ||
| store.delete(key); | ||
| return defaultValue; | ||
| } | ||
| return entry.value; | ||
| }; | ||
| const has = (args) => { | ||
| const key = String(args[0] ?? ""); | ||
| const entry = store.get(key); | ||
| if (!entry) | ||
| return false; | ||
| if (isExpired(entry)) { | ||
| store.delete(key); | ||
| return false; | ||
| } | ||
| return true; | ||
| }; | ||
| const del = (args) => { | ||
| const key = String(args[0] ?? ""); | ||
| store.delete(key); | ||
| return true; | ||
| }; | ||
| const clear = () => { | ||
| store.clear(); | ||
| return true; | ||
| }; | ||
| const keys = () => { | ||
| return getNonExpiredKeys(); | ||
| }; | ||
| const values = () => { | ||
| const result = []; | ||
| for (const [key, entry] of store) { | ||
| if (isExpired(entry)) { | ||
| store.delete(key); | ||
| } | ||
| else { | ||
| result.push(entry.value); | ||
| } | ||
| } | ||
| return result; | ||
| }; | ||
| const size = () => { | ||
| return getNonExpiredKeys().length; | ||
| }; | ||
| const ttl = (args) => { | ||
| const key = String(args[0] ?? ""); | ||
| const entry = store.get(key); | ||
| if (!entry) | ||
| return null; | ||
| if (isExpired(entry)) { | ||
| store.delete(key); | ||
| return null; | ||
| } | ||
| if (entry.expiresAt === null) | ||
| return -1; | ||
| return Math.max(0, Math.round((entry.expiresAt - Date.now()) / 1000)); | ||
| }; | ||
| const setMany = (args) => { | ||
| const pairs = args[0]; | ||
| const ttlSeconds = args[1] != null ? Number(args[1]) : null; | ||
| const expiresAt = ttlSeconds != null && ttlSeconds > 0 | ||
| ? Date.now() + ttlSeconds * 1000 | ||
| : null; | ||
| if (pairs == null || typeof pairs !== "object" || Array.isArray(pairs)) { | ||
| return 0; | ||
| } | ||
| let count = 0; | ||
| for (const [key, value] of Object.entries(pairs)) { | ||
| store.set(key, { value, expiresAt }); | ||
| count++; | ||
| } | ||
| return count; | ||
| }; | ||
| const getMany = (args) => { | ||
| const keysArr = args[0]; | ||
| if (!Array.isArray(keysArr)) | ||
| return {}; | ||
| const result = {}; | ||
| for (const k of keysArr) { | ||
| const key = String(k); | ||
| const entry = store.get(key); | ||
| if (!entry) | ||
| continue; | ||
| if (isExpired(entry)) { | ||
| store.delete(key); | ||
| continue; | ||
| } | ||
| result[key] = entry.value; | ||
| } | ||
| return result; | ||
| }; | ||
| const deleteMany = (args) => { | ||
| const keysArr = args[0]; | ||
| if (!Array.isArray(keysArr)) | ||
| return 0; | ||
| let count = 0; | ||
| for (const k of keysArr) { | ||
| const key = String(k); | ||
| if (store.has(key)) { | ||
| store.delete(key); | ||
| count++; | ||
| } | ||
| } | ||
| return count; | ||
| }; | ||
| // ── Exports: functions map ────────────────────────────────────────────── | ||
| export const CacheFunctions = { | ||
| set, | ||
| get, | ||
| has, | ||
| delete: del, | ||
| clear, | ||
| keys, | ||
| values, | ||
| size, | ||
| ttl, | ||
| setMany, | ||
| getMany, | ||
| deleteMany, | ||
| }; | ||
| // ── Shared parameter descriptors ──────────────────────────────────────── | ||
| const keyParam = { | ||
| name: "key", | ||
| title: "Key", | ||
| description: "Cache key.", | ||
| dataType: "string", | ||
| formInputType: "text", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "user:1", | ||
| }; | ||
| const ttlParam = { | ||
| name: "ttl", | ||
| title: "TTL (seconds)", | ||
| description: "Time-to-live in seconds (omit for no expiry).", | ||
| dataType: "number", | ||
| formInputType: "number", | ||
| required: false, | ||
| allowExpression: true, | ||
| advanced: true, | ||
| }; | ||
| // ── Exports: function metadata ────────────────────────────────────────── | ||
| export const CacheFunctionMetadata = { | ||
| set: { | ||
| title: "Set", | ||
| summary: "Store a value in the cache with an optional TTL", | ||
| description: "Overwrites any existing entry. TTL is in seconds; omit (or pass null) for no expiry.", | ||
| group: "mutate", | ||
| action: "write", | ||
| icon: "save", | ||
| capability: "write", | ||
| sideEffects: ["mutates_cache"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["cache", "set"], | ||
| parameters: [ | ||
| keyParam, | ||
| { | ||
| name: "value", | ||
| title: "Value", | ||
| description: "Value to store.", | ||
| dataType: "any", | ||
| formInputType: "text", | ||
| required: true, | ||
| allowExpression: true, | ||
| }, | ||
| ttlParam, | ||
| ], | ||
| returnType: "boolean", | ||
| returnDescription: "True if the value was stored.", | ||
| errors: {}, | ||
| examples: [ | ||
| { title: "With TTL", code: 'cache.set "user:1" "Alice" 60' }, | ||
| ], | ||
| example: 'cache.set "user:1" "Alice" 60', | ||
| }, | ||
| get: { | ||
| title: "Get", | ||
| summary: "Retrieve a value from the cache", | ||
| description: "Returns the default value if the key is missing or expired. Expired entries are evicted on access.", | ||
| group: "read", | ||
| action: "read", | ||
| icon: "search", | ||
| capability: "read", | ||
| sideEffects: [], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["cache", "get"], | ||
| parameters: [ | ||
| keyParam, | ||
| { | ||
| name: "defaultValue", | ||
| title: "Default", | ||
| description: "Returned when the key is not found or expired.", | ||
| dataType: "any", | ||
| formInputType: "text", | ||
| required: false, | ||
| allowExpression: true, | ||
| }, | ||
| ], | ||
| returnType: "any", | ||
| returnDescription: "The cached value, the default, or null.", | ||
| errors: {}, | ||
| examples: [ | ||
| { title: "With default", code: 'cache.get "user:1" "unknown"' }, | ||
| ], | ||
| example: 'cache.get "user:1" "unknown"', | ||
| }, | ||
| has: { | ||
| title: "Has", | ||
| summary: "Check if a non-expired key exists", | ||
| description: "Returns true only if the key is present and has not expired.", | ||
| group: "read", | ||
| action: "read", | ||
| icon: "check", | ||
| capability: "read", | ||
| sideEffects: [], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["cache", "has"], | ||
| parameters: [keyParam], | ||
| returnType: "boolean", | ||
| returnDescription: "True if the key exists and has not expired.", | ||
| errors: {}, | ||
| examples: [{ title: "Check", code: 'cache.has "user:1"' }], | ||
| example: 'cache.has "user:1"', | ||
| }, | ||
| delete: { | ||
| title: "Delete", | ||
| summary: "Remove a key from the cache", | ||
| description: "Removes the entry regardless of TTL. Idempotent.", | ||
| group: "mutate", | ||
| action: "delete", | ||
| icon: "trash", | ||
| capability: "write", | ||
| sideEffects: ["mutates_cache"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["cache", "delete"], | ||
| parameters: [keyParam], | ||
| returnType: "boolean", | ||
| returnDescription: "True if the key was deleted.", | ||
| errors: {}, | ||
| examples: [{ title: "Delete", code: 'cache.delete "user:1"' }], | ||
| example: 'cache.delete "user:1"', | ||
| }, | ||
| clear: { | ||
| title: "Clear", | ||
| summary: "Remove all entries from the cache", | ||
| description: "Wipes the entire process-local cache.", | ||
| group: "mutate", | ||
| action: "delete", | ||
| icon: "trash-2", | ||
| capability: "write", | ||
| sideEffects: ["mutates_cache"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["cache", "clear"], | ||
| parameters: [], | ||
| returnType: "boolean", | ||
| returnDescription: "True if the cache was cleared.", | ||
| errors: {}, | ||
| examples: [{ title: "Clear", code: "cache.clear" }], | ||
| example: "cache.clear", | ||
| }, | ||
| keys: { | ||
| title: "Keys", | ||
| summary: "List all non-expired keys", | ||
| description: "Returns every key that is currently present and not expired. Expired entries are evicted as a side effect.", | ||
| group: "inspect", | ||
| action: "read", | ||
| icon: "list", | ||
| capability: "read", | ||
| sideEffects: [], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["cache", "keys"], | ||
| parameters: [], | ||
| returnType: "array", | ||
| returnDescription: "Array of non-expired cache keys.", | ||
| errors: {}, | ||
| examples: [{ title: "List", code: "cache.keys" }], | ||
| example: "cache.keys", | ||
| }, | ||
| values: { | ||
| title: "Values", | ||
| summary: "List all non-expired values", | ||
| description: "Returns every value currently in the cache, in insertion order.", | ||
| group: "inspect", | ||
| action: "read", | ||
| icon: "list", | ||
| capability: "read", | ||
| sideEffects: [], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["cache", "values"], | ||
| parameters: [], | ||
| returnType: "array", | ||
| returnDescription: "Array of non-expired cache values.", | ||
| errors: {}, | ||
| examples: [{ title: "List", code: "cache.values" }], | ||
| example: "cache.values", | ||
| }, | ||
| size: { | ||
| title: "Size", | ||
| summary: "Number of non-expired entries", | ||
| description: "Count of entries that are present and not expired.", | ||
| group: "inspect", | ||
| action: "read", | ||
| icon: "hash", | ||
| capability: "read", | ||
| sideEffects: [], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["cache", "size"], | ||
| parameters: [], | ||
| returnType: "number", | ||
| returnDescription: "Count of non-expired cache entries.", | ||
| errors: {}, | ||
| examples: [{ title: "Count", code: "cache.size" }], | ||
| example: "cache.size", | ||
| }, | ||
| ttl: { | ||
| title: "TTL", | ||
| summary: "Remaining TTL for a key", | ||
| description: "Returns the remaining seconds before the key expires, -1 if no expiry is set, or null if the key does not exist.", | ||
| group: "inspect", | ||
| action: "read", | ||
| icon: "timer", | ||
| capability: "read", | ||
| sideEffects: [], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["cache", "ttl"], | ||
| parameters: [keyParam], | ||
| returnType: "number", | ||
| returnDescription: "Remaining TTL in seconds, -1, or null.", | ||
| errors: {}, | ||
| examples: [{ title: "TTL", code: 'cache.ttl "user:1"' }], | ||
| example: 'cache.ttl "user:1"', | ||
| }, | ||
| setMany: { | ||
| title: "Set many", | ||
| summary: "Store several keys at once", | ||
| description: "All entries share the same TTL.", | ||
| group: "mutate", | ||
| action: "write", | ||
| icon: "save", | ||
| capability: "write", | ||
| sideEffects: ["mutates_cache"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["cache", "batch", "set"], | ||
| parameters: [ | ||
| { | ||
| name: "entries", | ||
| title: "Entries", | ||
| description: "Object of key-value pairs to store.", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: true, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 4, | ||
| }, | ||
| ttlParam, | ||
| ], | ||
| returnType: "number", | ||
| returnDescription: "Number of entries stored.", | ||
| errors: {}, | ||
| examples: [ | ||
| { title: "Batch set", code: 'cache.setMany {"a": 1, "b": 2} 120' }, | ||
| ], | ||
| example: 'cache.setMany {"a": 1, "b": 2} 120', | ||
| }, | ||
| getMany: { | ||
| title: "Get many", | ||
| summary: "Retrieve several values at once", | ||
| description: "Missing or expired keys are omitted from the result.", | ||
| group: "read", | ||
| action: "read", | ||
| icon: "search", | ||
| capability: "read", | ||
| sideEffects: [], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["cache", "batch", "get"], | ||
| parameters: [ | ||
| { | ||
| name: "keys", | ||
| title: "Keys", | ||
| description: "Array of cache keys.", | ||
| dataType: "array", | ||
| formInputType: "json", | ||
| required: true, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 3, | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Object of key-value pairs for found non-expired keys.", | ||
| errors: {}, | ||
| examples: [ | ||
| { title: "Batch get", code: 'cache.getMany ["a", "b", "c"]' }, | ||
| ], | ||
| example: 'cache.getMany ["a", "b", "c"]', | ||
| }, | ||
| deleteMany: { | ||
| title: "Delete many", | ||
| summary: "Remove several keys at once", | ||
| description: "Missing keys are ignored. Returns the number actually removed.", | ||
| group: "mutate", | ||
| action: "delete", | ||
| icon: "trash", | ||
| capability: "write", | ||
| sideEffects: ["mutates_cache"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["cache", "batch", "delete"], | ||
| parameters: [ | ||
| { | ||
| name: "keys", | ||
| title: "Keys", | ||
| description: "Array of cache keys to delete.", | ||
| dataType: "array", | ||
| formInputType: "json", | ||
| required: true, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 3, | ||
| }, | ||
| ], | ||
| returnType: "number", | ||
| returnDescription: "Number of entries deleted.", | ||
| errors: {}, | ||
| examples: [ | ||
| { title: "Batch delete", code: 'cache.deleteMany ["a", "b"]' }, | ||
| ], | ||
| example: 'cache.deleteMany ["a", "b"]', | ||
| }, | ||
| }; | ||
| // ── Exports: module metadata ──────────────────────────────────────────── | ||
| export const CacheModuleMetadata = { | ||
| slug: "cache", | ||
| title: "Cache", | ||
| summary: "In-memory key-value cache with optional TTL expiration for temporary data storage", | ||
| description: "Simple process-local cache. Good for deduping work inside a single script run or sharing computed values between consecutive scripts in the same process. Not suitable for cross-process or cross-invocation persistence — pair with a persistent store for that.", | ||
| category: "infrastructure", | ||
| icon: "icon.svg", | ||
| color: "#0ea5e9", | ||
| version: "0.2.0", | ||
| docsUrl: "https://docs.robinpath.com/modules/cache", | ||
| status: "stable", | ||
| requires: [], | ||
| minNodeVersion: "18.0.0", | ||
| credentialsType: null, | ||
| operationGroups: { | ||
| read: { | ||
| title: "Read", | ||
| description: "Get, has, getMany.", | ||
| order: 1, | ||
| }, | ||
| mutate: { | ||
| title: "Mutate", | ||
| description: "Set, delete, clear, setMany, deleteMany.", | ||
| order: 2, | ||
| }, | ||
| inspect: { | ||
| title: "Inspect", | ||
| description: "Keys, values, size, ttl.", | ||
| order: 3, | ||
| }, | ||
| }, | ||
| methods: Object.keys(CacheFunctions), | ||
| }; | ||
| //# sourceMappingURL=cache.js.map |
| {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"} |
| import type { ModuleAdapter } from "@robinpath/core"; | ||
| declare const CacheModule: ModuleAdapter; | ||
| export default CacheModule; | ||
| export { CacheModule }; | ||
| export { CacheFunctions, CacheFunctionMetadata, CacheModuleMetadata, configureCache, } from "./cache.js"; | ||
| //# sourceMappingURL=index.d.ts.map |
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQrD,QAAA,MAAM,WAAW,EAAE,aASlB,CAAC;AAEF,eAAe,WAAW,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,YAAY,CAAC"} |
| import { CacheFunctions, CacheFunctionMetadata, CacheModuleMetadata, configureCache, } from "./cache.js"; | ||
| const CacheModule = { | ||
| name: "cache", | ||
| functions: CacheFunctions, | ||
| functionMetadata: CacheFunctionMetadata, | ||
| moduleMetadata: CacheModuleMetadata, | ||
| // No credentials — cache is process-local and in-memory. | ||
| credentialTypes: [], | ||
| configure: configureCache, | ||
| global: false, | ||
| }; | ||
| export default CacheModule; | ||
| export { CacheModule }; | ||
| export { CacheFunctions, CacheFunctionMetadata, CacheModuleMetadata, configureCache, } from "./cache.js"; | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,GAAkB;IACjC,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,cAAc;IACzB,gBAAgB,EAAE,qBAAqB;IACvC,cAAc,EAAE,mBAAmB;IACnC,yDAAyD;IACzD,eAAe,EAAE,EAAE;IACnB,SAAS,EAAE,cAAc;IACzB,MAAM,EAAE,KAAK;CACd,CAAC;AAEF,eAAe,WAAW,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,YAAY,CAAC"} |
+9
-4
| { | ||
| "name": "@robinpath/cache", | ||
| "version": "0.1.2", | ||
| "version": "0.3.0", | ||
| "publishConfig": { | ||
@@ -24,6 +24,6 @@ "access": "public" | ||
| "peerDependencies": { | ||
| "@robinpath/core": ">=0.20.0" | ||
| "@robinpath/core": ">=0.40.0" | ||
| }, | ||
| "devDependencies": { | ||
| "@robinpath/core": "^0.30.1", | ||
| "@robinpath/core": "^0.40.0", | ||
| "tsx": "^4.19.0", | ||
@@ -42,4 +42,9 @@ "typescript": "^5.6.0" | ||
| "auth": "none", | ||
| "functionCount": 12 | ||
| "functionCount": 12, | ||
| "language": "nodejs", | ||
| "platforms": [ | ||
| "cloud", | ||
| "cli" | ||
| ] | ||
| } | ||
| } |
+1
-1
@@ -22,3 +22,3 @@ # @robinpath/cache | ||
| ```bash | ||
| npm install @robinpath/cache | ||
| robinpath add @robinpath/cache | ||
| ``` | ||
@@ -25,0 +25,0 @@ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Empty package
Supply chain riskPackage does not contain any code. It may be removed, is name squatting, or the result of a faulty package publish.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
36099
904.98%10
400%554
Infinity%1
-50%2
100%