id-scanner-lib
Version:
Browser-based ID card, QR code, and face recognition scanner with liveness detection
54 lines (53 loc) • 1.45 kB
TypeScript
/**
* @file 资源管理器
* @description 提供资源管理和释放功能
* @module utils/resource-manager
*/
/**
* 可释放资源接口
*/
export interface Disposable {
/** 释放资源 */
dispose(): Promise<void> | void;
}
/**
* 资源管理器类
* 用于管理和自动释放资源
*/
export declare class ResourceManager {
private resources;
/**
* 注册资源
* @param resource 可释放资源
* @returns 资源本身,便于链式调用
*/
register<T extends Disposable>(resource: T): T;
/**
* 释放指定资源
* @param resource 要释放的资源
* @returns 是否成功释放
*/
release(resource: Disposable): Promise<boolean>;
/**
* 释放所有资源
*/
releaseAll(): Promise<void>;
/**
* 获取当前管理的资源数量
*/
get count(): number;
}
/**
* 创建一个自动释放的资源
* @param factory 资源工厂函数
* @param disposeCallback 释放回调函数
* @returns 创建的资源
*/
export declare function createDisposable<T>(factory: () => T, disposeCallback: (resource: T) => Promise<void> | void): T & Disposable;
/**
* 使用资源并自动释放
* @param resource 可释放资源
* @param callback 使用资源的回调函数
* @returns 回调函数的返回值
*/
export declare function using<T extends Disposable, R>(resource: T, callback: (resource: T) => Promise<R> | R): Promise<R>;