smart-cache-ts
v1.0.1
Published
A lightweight TypeScript utility for caching data with TTL support — no dependencies.
Maintainers
Readme
Smart Cache
A lightweight, zero-dependency TypeScript utility for caching data with TTL (Time To Live) support. This package provides a simple and type-safe API for storing and retrieving data in localStorage with automatic expiration handling.
Features
- 💾 Store any type of data with localStorage
- ⏰ Built-in TTL (Time To Live) support
- 🔄 Automatic expiration handling
- 🛠️ Built-in TypeScript support
- 🚫 Zero dependencies
- 📦 Small bundle size
- 🔍 Type-safe API
Installation
Using npm
npm install smart-cache-tsUsing Yarn
yarn add smart-cache-tsUsing pnpm
pnpm add smart-cache-tsFramework Agnostic This package is designed to work seamlessly with any JavaScript framework including React, Vue, Angular, Svelte, and more. It has no framework dependencies and can be used in any JavaScript or TypeScript project.
Usage
Basic Cache Operations
import { cache } from "smart-cache-ts";
// Store data in cache
cache.set("user", { name: "John", age: 30 });
// Retrieve data from cache
const user = cache.get("user");
// Returns: { name: 'John', age: 30 }
// Check if key exists
const hasUser = cache.has("user");
// Returns: trueCache with TTL (Time To Live)
import { cache } from "smart-cache-ts";
// Store data with expiration (5 seconds)
cache.set("session", { token: "abc123" }, { ttl: 5000 });
// Retrieve before expiration
const session = cache.get("session");
// Returns: { token: 'abc123' }
// Wait 5+ seconds, then retrieve
const expiredSession = cache.get("session");
// Returns: null (automatically removed)Cache Management
import { cache } from "smart-cache-ts";
// Remove specific item
cache.remove("user");
// Clear all cache
cache.clear();
// Store different data types
cache.set("number", 42);
cache.set("string", "hello world");
cache.set("array", [1, 2, 3]);
cache.set("boolean", true);Generic TypeScript Examples
import { cache } from "smart-cache-ts";
interface User {
name: string;
age: number;
job: string;
}
// Store typed data in cache
cache.set<User>("test-user", {
name: "Mohamed-Zaki",
age: 26,
job: "Front end developer",
});
// Retrieve typed data from cache
const userName = cache.get<User>("test-user")?.name;
console.log(userName); // "Mohamed-Zaki"
// Store and retrieve other types
cache.set<number>("counter", 42);
cache.set<string>("message", "Hello World");
cache.set<boolean>("isActive", true);
// Type-safe retrieval
const counter = cache.get<number>("counter"); // number | null
const message = cache.get<string>("message"); // string | null
const isActive = cache.get<boolean>("isActive"); // boolean | nullTypeScript Support
This package is written in TypeScript and includes type definitions out of the box.
License
MIT © Mohamed Zaki
