@yihuangdb/storage-object
Version:
A Node.js storage object layer library using Redis OM
148 lines • 10.6 kB
JavaScript
/**
* @module @yihuangdb/storage-object
* @description High-performance Redis-based storage system with ORM-like capabilities
*
* Core API exports focused on simplicity and developer experience.
*
* @example Quick Start - Simplest Usage
* ```typescript
* import { storage } from '@yihuangdb/storage-object';
*
* // Create storage with simple schema
* const users = await storage('users', {
* name: 'text',
* email: 'string',
* age: 'number'
* });
*
* // CRUD operations
* const user = await users.create({ name: 'John', email: 'john@example.com', age: 30 });
* const found = await users.findById(user.entityId);
* await users.update(user.entityId, { age: 31 });
* await users.delete(user.entityId);
* ```
*
* @example Standard Usage - More Control
* ```typescript
* import { StorageSystem, StorageSchema } from '@yihuangdb/storage-object';
*
* // Define a schema with validation
* const userSchema = StorageSchema.define({
* name: { type: 'text', indexed: true },
* email: { type: 'string', indexed: true, required: true },
* age: { type: 'number', indexed: true, validate: v => v >= 0 }
* });
*
* // Create storage with options
* const users = await StorageSystem.create('users', userSchema, {
* enableChangeTracking: true
* });
* ```
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.quickStorage = exports.PatternScanner = exports.RedisKeyManager = exports.getRedisKeyManager = exports.monitorStorage = exports.cleanupStorages = exports.migrateStorage = exports.getGlobalStats = exports.restoreStorages = exports.backupStorages = exports.getStorageMetadata = exports.getStorageStats = exports.validateStorage = exports.deleteStorage = exports.listStorages = exports.getOrCreateStorage = exports.getStorage = exports.createStorage = exports.ExportImportManager = exports.StorageVersionManager = exports.SchemaVersionManager = exports.SchemaRegistry = exports.getSchemaRegistry = exports.PerformanceProfiler = exports.profiler = exports.FieldDecorator = exports.Model = exports.OptimisticLockError = exports.RedisConnection = exports.StorageSchema = exports.StorageObject = exports.StorageSystem = void 0;
// ============================================================================
// Core Public API - Primary exports for most users
// ============================================================================
// Storage System - Main entry point for creating and managing storage instances
var storage_system_1 = require("./storage-system");
Object.defineProperty(exports, "StorageSystem", { enumerable: true, get: function () { return storage_system_1.StorageSystem; } });
// Storage Object - The storage instance class
var storage_1 = require("./storage");
Object.defineProperty(exports, "StorageObject", { enumerable: true, get: function () { return storage_1.StorageObject; } });
// Schema Management - Enhanced schema definition with validation
var storage_schema_1 = require("./storage-schema");
Object.defineProperty(exports, "StorageSchema", { enumerable: true, get: function () { return storage_schema_1.StorageSchema; } });
// ============================================================================
// Advanced Features - For power users and specific use cases
// ============================================================================
// Connection Management
var connection_1 = require("./connection");
Object.defineProperty(exports, "RedisConnection", { enumerable: true, get: function () { return connection_1.RedisConnection; } });
// Optimistic Locking
var optimistic_lock_1 = require("./optimistic-lock");
Object.defineProperty(exports, "OptimisticLockError", { enumerable: true, get: function () { return optimistic_lock_1.OptimisticLockError; } });
// Decorators for class-based models
var decorators_1 = require("./decorators");
Object.defineProperty(exports, "Model", { enumerable: true, get: function () { return decorators_1.Model; } });
Object.defineProperty(exports, "FieldDecorator", { enumerable: true, get: function () { return decorators_1.Field; } });
// Performance Monitoring
var performance_profiler_1 = require("./performance-profiler");
Object.defineProperty(exports, "profiler", { enumerable: true, get: function () { return performance_profiler_1.profiler; } });
Object.defineProperty(exports, "PerformanceProfiler", { enumerable: true, get: function () { return performance_profiler_1.PerformanceProfiler; } });
// ============================================================================
// Schema Registry & Management - For multi-schema applications
// ============================================================================
var schema_registry_1 = require("./schema-registry");
Object.defineProperty(exports, "getSchemaRegistry", { enumerable: true, get: function () { return schema_registry_1.getSchemaRegistry; } });
Object.defineProperty(exports, "SchemaRegistry", { enumerable: true, get: function () { return schema_registry_1.SchemaRegistry; } });
// ============================================================================
// Version Management - For data synchronization and migrations
// ============================================================================
// Schema versioning
var schema_versioning_1 = require("./schema-versioning");
Object.defineProperty(exports, "SchemaVersionManager", { enumerable: true, get: function () { return schema_versioning_1.SchemaVersionManager; } });
// Storage versioning for change tracking
var storage_version_manager_1 = require("./storage-version-manager");
Object.defineProperty(exports, "StorageVersionManager", { enumerable: true, get: function () { return storage_version_manager_1.StorageVersionManager; } });
// Export/Import functionality
var export_import_manager_1 = require("./export-import-manager");
Object.defineProperty(exports, "ExportImportManager", { enumerable: true, get: function () { return export_import_manager_1.ExportImportManager; } });
// ============================================================================
// Utility Functions - Helper functions for common tasks
// ============================================================================
// Storage factory functions (maintained for backward compatibility)
var storage_factory_1 = require("./storage-factory");
Object.defineProperty(exports, "createStorage", { enumerable: true, get: function () { return storage_factory_1.createStorage; } });
Object.defineProperty(exports, "getStorage", { enumerable: true, get: function () { return storage_factory_1.getStorage; } });
Object.defineProperty(exports, "getOrCreateStorage", { enumerable: true, get: function () { return storage_factory_1.getOrCreateStorage; } });
Object.defineProperty(exports, "listStorages", { enumerable: true, get: function () { return storage_factory_1.listStorages; } });
Object.defineProperty(exports, "deleteStorage", { enumerable: true, get: function () { return storage_factory_1.deleteStorage; } });
Object.defineProperty(exports, "validateStorage", { enumerable: true, get: function () { return storage_factory_1.validateStorage; } });
Object.defineProperty(exports, "getStorageStats", { enumerable: true, get: function () { return storage_factory_1.getStorageStats; } });
Object.defineProperty(exports, "getStorageMetadata", { enumerable: true, get: function () { return storage_factory_1.getStorageMetadata; } });
Object.defineProperty(exports, "backupStorages", { enumerable: true, get: function () { return storage_factory_1.backupStorages; } });
Object.defineProperty(exports, "restoreStorages", { enumerable: true, get: function () { return storage_factory_1.restoreStorages; } });
Object.defineProperty(exports, "getGlobalStats", { enumerable: true, get: function () { return storage_factory_1.getGlobalStats; } });
Object.defineProperty(exports, "migrateStorage", { enumerable: true, get: function () { return storage_factory_1.migrateStorage; } });
Object.defineProperty(exports, "cleanupStorages", { enumerable: true, get: function () { return storage_factory_1.cleanupStorages; } });
Object.defineProperty(exports, "monitorStorage", { enumerable: true, get: function () { return storage_factory_1.monitorStorage; } });
// ============================================================================
// Redis Key Management - Low-level key management utilities
// ============================================================================
var redis_key_manager_1 = require("./redis-key-manager");
Object.defineProperty(exports, "getRedisKeyManager", { enumerable: true, get: function () { return redis_key_manager_1.getRedisKeyManager; } });
Object.defineProperty(exports, "RedisKeyManager", { enumerable: true, get: function () { return redis_key_manager_1.RedisKeyManager; } });
// Pattern utilities for Redis operations
var pattern_scanner_1 = require("./utils/pattern-scanner");
Object.defineProperty(exports, "PatternScanner", { enumerable: true, get: function () { return pattern_scanner_1.PatternScanner; } });
// ============================================================================
// Quick Start API - Simplified interface for common use cases
// ============================================================================
__exportStar(require("./quick-start"), exports);
var quick_start_1 = require("./quick-start");
Object.defineProperty(exports, "quickStorage", { enumerable: true, get: function () { return __importDefault(quick_start_1).default; } });
// ============================================================================
// Default Export - StorageObject for backward compatibility
// ============================================================================
const storage_2 = require("./storage");
exports.default = storage_2.StorageObject;
//# sourceMappingURL=index.js.map
;