bitcoin-inscription-viewer
Version:
🔍 A robust, production-ready React/TypeScript library for viewing Bitcoin Ordinals inscriptions with advanced optimization features including LRU caching, LaserEyes wallet integration, virtual scrolling, and performance monitoring
49 lines • 1.58 kB
TypeScript
/**
* Batch Fetching Utilities for Inscription Content
* Provides efficient batch operations and concurrent request management
*/
export interface BatchFetchConfig {
batchSize?: number;
maxConcurrency?: number;
retryAttempts?: number;
retryDelay?: number;
timeout?: number;
priorityQueue?: boolean;
}
export interface BatchFetchResult<T> {
successful: Map<string, T>;
failed: Map<string, Error>;
stats: {
totalRequests: number;
successCount: number;
failureCount: number;
averageResponseTime: number;
totalTime: number;
};
}
export interface FetchRequest {
id: string;
priority?: number;
fetcher: () => Promise<any>;
}
declare class BatchFetcher {
private config;
private activeRequests;
private requestQueue;
constructor(config?: BatchFetchConfig);
fetchBatch<T>(requests: FetchRequest[]): Promise<BatchFetchResult<T>>;
private processBatchConcurrently;
private fetchWithRetry;
private delay;
getActiveRequests(): string[];
getQueueSize(): number;
}
export declare const createBatchFetchRequests: (inscriptionIds: string[], fetcher: (id: string) => Promise<any>, priorities?: Record<string, number>) => FetchRequest[];
export declare const batchFetcher: BatchFetcher;
export declare const useBatchFetcher: (config?: BatchFetchConfig) => {
fetchBatch: <T>(requests: FetchRequest[]) => Promise<BatchFetchResult<T>>;
getActiveRequests: () => string[];
getQueueSize: () => number;
};
export {};
//# sourceMappingURL=batchFetcher.d.ts.map