UNPKG

@julesl23/s5js

Version:

Enhanced TypeScript SDK for S5 decentralized storage with path-based API, media processing, and directory utilities

98 lines 2.63 kB
/** * Lazy-loading wrapper for MediaProcessor * This module enables code-splitting and dynamic imports */ /** * Lazy-loaded MediaProcessor class * Uses dynamic imports to load the actual implementation on-demand */ export class MediaProcessorLazy { static loadingPromise; static module; /** * Load the MediaProcessor module dynamically */ static async loadModule() { if (this.module) { return this.module; } if (!this.loadingPromise) { this.loadingPromise = import('./index.js'); } this.module = await this.loadingPromise; return this.module; } /** * Initialize the MediaProcessor (lazy-loaded) */ static async initialize(options) { const module = await this.loadModule(); return module.MediaProcessor.initialize(options); } /** * Extract metadata from an image blob (lazy-loaded) */ static async extractMetadata(blob, options) { const module = await this.loadModule(); return module.MediaProcessor.extractMetadata(blob, options); } /** * Check if the MediaProcessor is initialized */ static async isInitialized() { if (!this.module) { return false; } const module = await this.loadModule(); return module.MediaProcessor.isInitialized(); } /** * Reset the MediaProcessor */ static async reset() { if (this.module) { this.module.MediaProcessor.reset(); } this.module = undefined; this.loadingPromise = undefined; } } /** * Lazy-loaded Canvas metadata extractor */ export class CanvasMetadataExtractorLazy { static module; static async loadModule() { if (!this.module) { this.module = await import('./fallback/canvas.js'); } return this.module; } /** * Extract metadata using Canvas API (lazy-loaded) */ static async extract(blob) { const module = await this.loadModule(); return module.CanvasMetadataExtractor.extract(blob); } } /** * Lazy-loaded WASM module */ export class WASMModuleLazy { static module; static async loadModule() { if (!this.module) { this.module = await import('./wasm/module.js'); } return this.module; } /** * Initialize WASM module (lazy-loaded) */ static async initialize(options) { const module = await this.loadModule(); return module.WASMModule.initialize(options); } } //# sourceMappingURL=index.lazy.js.map