@julesl23/s5js
Version:
Enhanced TypeScript SDK for S5 decentralized storage with path-based API, media processing, and directory utilities
98 lines • 2.63 kB
JavaScript
/**
* 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