UNPKG

@bililive-tools/manager

Version:
74 lines (73 loc) 3.73 kB
import { DebouncedFunc } from "lodash-es"; export type AnyObject = Record<string, any>; export type UnknownObject = Record<string, unknown>; export type PickRequired<T, K extends keyof T> = T & Pick<Required<T>, K>; export declare function asyncThrottle(fn: () => Promise<void>, time: number, opts?: { immediateRunWhenEndOfDefer?: boolean; }): DebouncedFunc<() => void>; export declare function replaceExtName(filePath: string, newExtName: string): string; /** * 接收 fn ,返回一个和 fn 签名一致的函数 fn'。当已经有一个 fn' 在运行时,再调用 * fn' 会直接返回运行中 fn' 的 Promise,直到 Promise 结束 pending 状态 */ export declare function singleton<Fn extends (...args: any) => Promise<any>>(fn: Fn): Fn; /** * 从数组中按照特定算法提取一些值(允许同个索引重复提取)。 * 算法的行为类似 flex 的 space-between。 * * examples: * ``` * console.log(getValuesFromArrayLikeFlexSpaceBetween([1, 2, 3, 4, 5, 6, 7], 1)) * // [1] * console.log(getValuesFromArrayLikeFlexSpaceBetween([1, 2, 3, 4, 5, 6, 7], 3)) * // [1, 4, 7] * console.log(getValuesFromArrayLikeFlexSpaceBetween([1, 2, 3, 4, 5, 6, 7], 4)) * // [1, 3, 5, 7] * console.log(getValuesFromArrayLikeFlexSpaceBetween([1, 2, 3, 4, 5, 6, 7], 11)) * // [1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 7] * ``` */ export declare function getValuesFromArrayLikeFlexSpaceBetween<T>(array: T[], columnCount: number): T[]; export declare function ensureFolderExist(fileOrFolderPath: string): void; export declare function assert(assertion: unknown, msg?: string): asserts assertion; export declare function assertStringType(data: unknown, msg?: string): asserts data is string; export declare function assertNumberType(data: unknown, msg?: string): asserts data is number; export declare function assertObjectType(data: unknown, msg?: string): asserts data is object; export declare function formatDate(date: Date, format: string): string; export declare function removeSystemReservedChars(filename: string): string; export declare function isFfmpegStartSegment(line: string): boolean; export declare function isFfmpegStart(line: string): boolean; export declare const formatTemplate: (string: string, ...args: any[]) => string; export declare function createInvalidStreamChecker(count?: number): (ffmpegLogLine: string) => boolean; export declare function createTimeoutChecker(onTimeout: () => void, time: number): { update: () => void; stop: () => void; }; export declare function downloadImage(imageUrl: string, savePath: string): Promise<void>; /** * 根据指定的顺序对对象数组进行排序 * @param objects 要排序的对象数组 * @param order 指定的顺序 * @param key 用于排序的键 * @returns 排序后的对象数组 */ export declare function sortByKeyOrder<T, K extends keyof T>(objects: T[], order: T[K][], key: K): T[]; declare const _default: { replaceExtName: typeof replaceExtName; singleton: typeof singleton; getValuesFromArrayLikeFlexSpaceBetween: typeof getValuesFromArrayLikeFlexSpaceBetween; ensureFolderExist: typeof ensureFolderExist; assert: typeof assert; assertStringType: typeof assertStringType; assertNumberType: typeof assertNumberType; assertObjectType: typeof assertObjectType; asyncThrottle: typeof asyncThrottle; isFfmpegStartSegment: typeof isFfmpegStartSegment; createInvalidStreamChecker: typeof createInvalidStreamChecker; createTimeoutChecker: typeof createTimeoutChecker; downloadImage: typeof downloadImage; md5: (str: string) => string; uuid: () => `${string}-${string}-${string}-${string}-${string}`; sortByKeyOrder: typeof sortByKeyOrder; }; export default _default;