Skip to main content

API Reference

Complete API documentation for Strata Storage.

Core API​

Strata Class​

The main class for interacting with storage. Provides methods for all storage operations.

import { defineStorage } from 'strata-storage';

const storage = defineStorage(config);

Type Definitions​

TypeScript interfaces and type definitions used throughout the library.

Error Classes​

Custom error classes for better error handling and debugging.

Storage Adapters​

Adapter Overview​

Learn about the different storage adapters available and their capabilities.

Web Adapters​

Capacitor Adapters​

Features​

Encryption​

AES-GCM encryption for secure data storage.

const encrypted = await encryptionManager.encrypt(data, password);
const decrypted = await encryptionManager.decrypt(encrypted, password);

Compression​

LZ-based compression for efficient storage.

const compressed = await compressionManager.compress(data);
const decompressed = await compressionManager.decompress(compressed);

Synchronization​

Cross-tab and cross-window synchronization.

storage.subscribe((change) => {
console.log('Storage changed:', change);
});

TTL Management​

Time-to-live support with automatic expiration.

await storage.set('temp', data, { ttl: 60000 }); // Expires in 1 minute

Query Engine​

Advanced querying capabilities for stored data.

const results = await storage.query({
tags: { $in: ['important'] },
created: { $gt: new Date('2024-01-01') }
});

Migration Utilities​

Tools for migrating data between schema versions.

Experimental: MigrationManager is exported from strata-storage, but it is a standalone, adapter-level utility — it is not configured through StrataConfig (there is no migrations option on new Strata(...)). It operates directly on an initialized storage adapter.

import { MigrationManager, LocalStorageAdapter } from 'strata-storage';

const adapter = new LocalStorageAdapter();
await adapter.initialize();

const migrator = new MigrationManager();
migrator.register({
version: 1,
up: async (a) => { /* transform stored data via a.get/a.set/... */ },
});
await migrator.migrate(adapter, 1);

Quick Reference​

Basic Operations​

// Register standard web adapters; operations initialize lazily.
const storage = defineStorage();

// Set data
await storage.set(key, value, options?);

// Get data
const value = await storage.get(key, options?);

// Remove data
await storage.remove(key, options?);

// Check existence
const exists = await storage.has(key, options?);

// Clear storage
await storage.clear(options?);

// Get all keys
const keys = await storage.keys(pattern?, options?);

// Get size info
const size = await storage.size(detailed?);

Advanced Operations​

// Query data
const results = await storage.query(condition, options?);

// Subscribe to changes
const unsubscribe = storage.subscribe(callback, options?);

// Export data
const exported = await storage.export(options?);

// Import data
await storage.import(data, options?);

// Get TTL
const ttl = await storage.getTTL(key, options?);

// Extend TTL
await storage.extendTTL(key, extension, options?);

// Make persistent
await storage.persist(key, options?);

Utility Functions​

// Generate secure password
const password = storage.generatePassword(length?);

// Hash data
const hash = await storage.hash(data);

// Get available storage types
const types = storage.getAvailableStorageTypes();

// Get adapter capabilities
const capabilities = storage.getCapabilities(storage?);

Framework Integration​

Next Steps​