@tracing/shared
Version:
275 lines (209 loc) • 7.65 kB
TypeScript
export declare type AnyFun = (...args: any[]) => any;
export declare class BaseStorage<T> {
private name;
private s;
constructor(name: string, type: BaseStorageOptions);
get(): T | null;
set(value: T): boolean;
clear(): void;
}
export declare type BaseStorageOptions = "localStorage" | "sessionStorage";
export declare function browserPerformanceTimer(): TracingPerformanceTimer | undefined;
export declare type Choice<T = string> = T[] | ((arg: T) => boolean) | RegExp;
export declare function choice<T extends string>(type: Choice<T>): (arg: T) => boolean;
export declare interface CookieOptions {
path: string;
domain: string;
expires: string | number | Date;
secure: boolean;
}
export declare function createCookie<T>(name: string, options?: Partial<CookieOptions>): {
get(): T | null;
set(value: T): boolean;
clear(): void;
};
export declare function createLocalStorage<T>(name: string): BaseStorage<T>;
export declare function createSessionStorage<T>(name: string): BaseStorage<T>;
/**
* 解码数据
* @param data - 要解码的数据
* @returns
*/
export declare function decrypt(data: string): string;
/**
* 编码数据
* @param data - 要编码的数据
* @returns
*/
export declare function encrypt(data: string): string;
export declare function formatNumber(number: number, precision?: number): number;
/**
* 获取一个 DOM 元素的属性名列表
* @param el - 元素
*/
export declare function getAttributeNames(el: Element): string[];
/********************************* DOM ***********************************/
/**
* 获取当前元素的选择器
*
* @param el - 元素
* @param stopClass - 停止向上查询的 class 名列表
* @param stopById - 是否在碰到 id 时 停止向上查找
* @param isPath - 是否在获取路径中使用
*
*/
export declare function getCurrentElementSelector(el: Element, stopClass?: string[], stopById?: boolean, isPath?: boolean): string;
/**
* 获取一个 DOM 元素的类名数组
* @param el - 元素
*
*/
export declare function getElementClassList(el: Element): string[];
/**
* 获取一个 DOM 元素的类名
*
* @param el - 元素
*
*/
export declare function getElementClassName(el: Element): string;
/**
* 获取一个 DOM 元素的主体文本内容
*
* @param el - 元素
* @param isTrim - 是否去除前后空格
*
*/
export declare function getElementContent(el: Element, isTrim?: boolean): string;
export declare function getElementId(el: Element): string;
/**
* 获取指定元素在 DOM 树中的路径
*
* @param el - 元素
* @param stopClass - 停止向上查询的class名列表
* @param stopById - 是否在碰到 id 时 停止向上查找
*
*/
export declare function getElementPath(el: Element, stopClass?: string[], stopById?: boolean): string;
/**
* 获取指定元素在 DOM 树的唯一选择器
*
* @param el - 元素
* @param stopClass - 停止向上查询的class名列表
* @param stopById - 是否在碰到 id 时 停止向上查找
*
*/
export declare function getElementSelector(el: Element, stopClass?: string[], stopById?: boolean): string;
/**
* 获取一个 DOM 元素的标签名
*
* @param el - 元素
* @param isLowerCase - 是否小写
*
*/
export declare function getElementTagName(el: Element, isLowerCase?: boolean): string;
export declare function getGlobalThis<T = Window>(): T;
/**
* 获取当前页面的 URL 名称
*/
export declare function getPathName(): string;
/**
* 提供便捷的获取页面常用属性方法
*/
/********************************* BOM ***********************************/
/**
* 获取来源页
*/
export declare function getReferrer(): string;
/**
* 获取显示屏幕分辨率高度
*/
export declare function getScreenHeight(): number;
/**
* 获取显示屏幕分辨率宽度
*/
export declare function getScreenWidth(): number;
/**
* 获取时区偏移值
*/
export declare function getTimezoneOffset(): number;
/**
* 获取当前页面的标题
*/
export declare function getTitle(): string;
export declare const getType: (obj: any) => string;
/**
* 获取当前页面的 URL
*/
export declare function getUrl(): string;
/**
* 获取当前页面的 DOM 视窗高度
*/
export declare function getViewportHeight(): number;
/**
* 获取当前页面的 DOM 视窗宽度
*/
export declare function getViewportWidth(): number;
export declare function hasOwn<T extends Record<string, any>>(obj: T, key: keyof T): boolean;
export declare const isArr: (arg: any) => arg is any[];
export declare const isBool: (obj: unknown) => obj is boolean;
export declare function isBrowser(): boolean;
export declare const isDate: (obj: unknown) => obj is Date;
export declare function isElement(value: unknown): value is Element;
export declare function isErrorEvent(value: unknown): value is ErrorEvent;
export declare const isFn: (val: any) => val is Function;
export declare function isInstanceOf(wat: any, base: any): boolean;
export declare const isNum: (obj: unknown) => obj is number;
export declare const isObj: (value: unknown) => value is Record<string, any>;
export declare const isPlainObj: (obj: unknown) => obj is object;
export declare function isPrimitive(wat: unknown): wat is Primitive;
export declare const isRegexp: (obj: unknown) => obj is RegExp;
export declare const isStr: (obj: unknown) => obj is string;
export declare const isType: <T>(type: string | string[]) => (obj: unknown) => obj is T;
export declare const isUndefined: (obj: unknown) => obj is undefined;
/**
* return local now time
*/
export declare function localTime(): number;
export declare function noop(): void;
export declare function omit<T extends Record<string, any>, K extends keyof T>(origin: T, keys: K[]): Omit<T, K>;
export declare type PartialOmit<T extends Record<string, any>, K extends keyof T> = Partial<Omit<T, K>> & Pick<T, K>;
export declare function pick<T extends Record<string, any>, K extends keyof T>(origin: T, keys: K[]): Pick<T, K>;
export declare function pickParse<T extends Record<string, any>, K extends keyof T & string>(obj: T, keys: K[], parse: (arg: T[K]) => T[K], omit?: K[]): T;
export declare type Primitive = number | string | boolean | bigint | symbol | null | undefined;
/**
* 根据一个 object 返回 url query
*/
export declare function qs(obj: Record<string, any>, prefix?: string): string;
export declare type RemoveIndexSignature<T> = {
[K in keyof T as string extends K ? never : number extends K ? never : symbol extends K ? never : K]: T[K];
};
/**
* return page load relative time
*/
export declare function timestamp(): number | "?";
/**
* in tracing time only is millisecond
*/
declare interface TracingPerformanceTimer {
timeOrigin: number;
now: () => number;
}
/**
* 转化参数,如果是函数就会执行
*
* @param origin - 原始数据
*
*/
export declare function transProfile<T extends Record<string, any>>(origin: T): Record<string, any>;
export declare type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
/**
* if you not know property return this (reduce build size)
*/
export declare const unknown = "?";
/**
* UUID4 generator
*
* @returns string Generated UUID4.
*/
export declare function uuid4(): string;
export { }