UNPKG

id-scanner-lib

Version:

Browser-based ID card, QR code, and face recognition scanner with liveness detection

54 lines (53 loc) 1.45 kB
/** * @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>;