@qiniu/miku-delivery-mp-ks
Version:
Kuaishou Mini Program SDK for Miku Delivery
45 lines (44 loc) • 2.26 kB
TypeScript
/** Unix time, the number of seconds elapsed since January 1, 1970 UTC. */
export declare function unixTime(): number;
/** `{ a: '1', b: null }` <-> `a=1&b` */
export type QueryParams = Record<string, string | null>;
/** 简易的 query parse 实现,也可用于简单的 application/x-www-form-urlencoded 反序列化 */
export declare function parseQuery(querystring: string): QueryParams;
/** 简易的 query stringify 实现,也可用于简单的 application/x-www-form-urlencoded 序列化 */
export declare function stringifyQuery(params: QueryParams): string;
export declare function uuid(length?: number): string;
export declare function mapObj<I, O>(obj: Record<string, I>, mapper: (i: I) => O): Record<string, O>;
export type DeferedStatus = 'pending' | 'resolved' | 'rejected';
export type Resolve<T> = (value: T | PromiseLike<T>) => void;
export type Reject = (reason?: unknown) => void;
export type Defered<T> = {
resolve: Resolve<T>;
reject: Reject;
promise: Promise<T>;
status: DeferedStatus;
value: T | null;
};
export declare function createDefered<T>(): Defered<T>;
export declare function wait(ms: number): Promise<unknown>;
export declare class TimeoutError extends Error {
name: string;
}
export declare function waitTimeout<T = any>(timeout: number, operation: string): Promise<T>;
/** 被取消的操作会抛出的异常 */
export declare class AbortError extends Error {
name: string;
}
/** 将任意类型的异常转换为用于上报的 `err_msg` & `err_desc` */
export declare function getErrInfo(err: unknown): {
err_msg: string;
err_desc: string;
};
/** 将时间点相减,用于日志上报:1) 处理时间点缺失的逻辑 2) 单位 `ms` 转为上报需要的 `s` */
export declare function timeMinus(t1: number | undefined, t2: number | undefined): number;
/** 毫秒转换为秒 */
export declare function formatMillisecondToSecond(time: number): number;
/** hostname (`${host}:${port}`) -> host + port */
export declare function parseHost(hostname: string, defaultPort?: number): readonly [string, number];
export declare function getExt(pathname: string): string;
export declare function isM3u8Url(url: string): boolean;
export declare function isFlvUrl(url: string): boolean;