trtc-electron-sdk
Version:
trtc electron sdk
62 lines (61 loc) • 2.96 kB
TypeScript
export declare function isNull(val: unknown): boolean;
export declare function isUndefined(val: unknown): boolean;
export declare function isNullOrUndefined(val: unknown): boolean;
/**
* 安全执行 JSON.parse
* @param data
* @returns
*/
export declare function safelyParse(data: string): unknown | Array<any> | Record<string, any>;
export declare function convertUint8ArrayToNumber(value: Uint8Array): number;
/**
* 防抖函数 (debounce)
*
* 适用场景:搜索框输入联想、窗口resize结束事件
*
* @param func 需要防抖的函数
* @param wait 等待时间(毫秒)
* @param immediate 是否立即执行第一次调用(true=立即执行,false=等待后执行)
* @returns 包装后的防抖函数
*/
export declare function debounce<T extends (...args: any[]) => any>(func: T, wait: number, immediate?: boolean): (...args: Parameters<T>) => void;
/**
* 节流函数 (throttle)
*
* 适用场景:滚动事件、按钮防重复点击、鼠标移动事件
*
* @param func 需要节流的函数
* @param wait 等待时间(毫秒)
* @param options 配置选项
* leading: 是否执行第一次调用(true=执行,false=跳过)
* trailing: 是否执行最后一次调用(true=执行,false=跳过)
* @returns 包装后的节流函数
*/
export declare function throttle<T extends (...args: any[]) => any>(func: T, wait: number, options?: {
leading?: boolean;
trailing?: boolean;
}): (...args: Parameters<T>) => void;
export declare function getOS(): string;
export declare function isMacOS(): boolean;
export declare function isWindows(): boolean;
export declare function isLinux(): boolean;
/**
* 把 sendSEIMsg 的 JS 入参(ArrayBuffer / TypedArray / DataView 等)规范化为 Uint8Array。
*
* - 字符串入参不再支持,由调用方自行 `TextEncoder().encode(...)` 后传入;
* - 对 TypedArray / DataView 视图保留原始 byteOffset / byteLength,不会把整段底层
* ArrayBuffer 当成数据;
* - 类型不匹配时抛 `TypeError`,与 Native 层的报错文案保持一致。
*/
export declare function normalizeSEIPayload(input: ArrayBuffer | ArrayBufferView): Uint8Array;
/**
* 把 native 回调里收到的二进制对象(Uint8Array / Buffer / ArrayBuffer)统一转成
* 一个 **独立的** ArrayBuffer,对外暴露给业务层。
*
* 为什么要"独立":
* - Node Buffer / TypedArray 的 `.buffer` 是 native 复用的存储区,可能被后续事件
* 覆写;直接 fire 出去会出现"业务层拿到的 message 跟下一帧消息字节错乱"。
* - 这里通过 `new ArrayBuffer + Uint8Array.set` 显式拷贝,避免 `slice() as ArrayBuffer`
* 的不严谨断言(slice 返回类型为 `ArrayBufferLike`,可能是 SharedArrayBuffer)。
*/
export declare function toIndependentArrayBuffer(message: Uint8Array | ArrayBuffer): ArrayBuffer;