UNPKG

ipink-util

Version:

util.js

237 lines (236 loc) 7.03 kB
type ColorMap = { success?: string; warning?: string; error?: string; info?: string; primary?: string; img?: string; }; type TitleMap = { success?: string; warning?: string; error?: string; info?: string; primary?: string; img?: string; }; /** * 打印扩展配置 */ interface PrintOption { color?: string; title?: string; block?: boolean; } interface ILogConfig { instance: ILog | null; /** * 配置五种打印的配色 */ colorMap?: ColorMap; /** * 1. 是否取第一个入参作为标题, 默认false, 但可以通过[3]实现 * 2. 如果开启了此项, 且如果入参只有一个成员, 则同等于未开启此项, 但可以通过[3]实现 * 3. 可以使用 log.title("标题").info("info message") 设置title */ hasTitle?: boolean; /** * 配置五种打印的默认标题 */ titleMap?: TitleMap; block?: boolean; } interface ILog { /** * 同步配置信息 */ setOption: (options?: ILogConfig) => void; /** * 设置输出标题, 在option.hasTitle为false时手动调用设置title; true的时候可以不考虑 * log.title("Title").info(123) * @param title */ title: (title?: string) => ILog; /** * 设置输出块级样式 * log.block().info(123) */ block: () => ILog; /** * 设置输出扩展信息 * log.ext("Ext").info(123) * @param extMessage */ ext: (extMessage?: string) => ILog; /** * 输出一条info信息 * log.info("arg1", "arg2", "arg3") * @param args */ info: (...args: any[]) => void; /** * 输出一条success信息 * log.success("arg1", "arg2", "arg3") * @param args */ success: (...args: any[]) => void; /** * 输出一条warning信息 * log.warning("arg1") * @param args */ warning: (...args: any[]) => void; /** * 输出一条error信息 * log.error("arg1", "arg3") * @param args */ error: (...args: any[]) => void; /** * 输出一条primary信息 * log.primary("arg1") * @param args */ primary: (...args: any[]) => void; /** * 自定义输出颜色, 默认不输出title * 可以设置title, 使用log.title("Title").color("Content", "red") * log.color("123", "#ff0000") * @param content 输出内容 * @param color { ColorValue } 默认主题色 */ color: (content: string, color?: string) => void; /** * 输出一个图片 * log.color("http://www.kdi.com/1.png", 2) * @param url { string } * @param scale { number } */ img: (url: string, scale: number) => void; /** * 输出一个可折叠的console分组 * log.group("Group", [1, "2", null], true, "info") * log.group("Group2", 123) * log.group("Group3", () => { * console.log(1) * log.info(2) * }) * @param groupName { string } 分组名 * @param opt { Function | any[] | any } 可传入一个函数且函数体内为console输出集合; 或者直接传入输出内容[] * @param isClosed 设置折叠还是展开 * @param type 输出信息的类型 */ group: (groupName: string, opt: Function | any[] | any, isClosed?: boolean, type?: "primary" | "info" | "success" | "error" | "warning") => ILog; /** * 打印函数 * 外部调用需要注意使用规则 * * @param args { any[] } 输出成员 * @param options { PrintOption } 输入额外配置 */ printf: (args: any[], options?: PrintOption) => void; colorMap: ColorMap; titleMap: TitleMap; hasTitle: boolean; useBlock: boolean; wlog: Console; } /** * * 带颜色的醒目打印 Log * @example * ` import { log, Log } from "ipink-util" // Use log instance log.info("呵呵") // "呵呵" log.title("标题").info("Info message!") // 标题 Info message! // 给全局log加上默认标题, 或者首个字符串为标题 log.setOption({ hasTitle: true }) log.info("呵呵") // Info 呵呵 log.info("标题", "呵呵") // 标题 呵呵 log.info("标题", {}) // 标题 {} log.title().info("标题", "呵呵") log.error("标题", "呵呵") log.warning("标题", "呵呵") log.success("标题", "呵呵") log.primary("标题", "呵呵") log.color(123, "#ff0000") log.block().info(123) log.group(1, [1,2,3]) log.title("头标题").ext("扩展结尾标题/标识").primary("Content", "other") log.ext("扩展结尾标题/标识").primary("Content", "other") // Use Log class var logInstance = new Log({ hasTitle: true }); logInstance.info("呵呵") // Info 呵呵 ` */ export declare class Log implements ILog { static instance: ILog | null; /** * 通过该函数获取实例, 可以保证实例一直存在, 且配置一直是最新的. * @param option { ILogConfig } */ static getInstance(options?: ILogConfig): ILog; colorMap: ColorMap; titleMap: TitleMap; hasTitle: boolean; useBlock: boolean; wlog: Console; constructor(options?: ILogConfig); /** * 同步配置信息 */ setOption(options?: ILogConfig): void; img(url: string, scale?: number): void; printTitle: string; title(title?: string): ILog; extMessage: string; ext(extMessage?: string): ILog; /** * 打印函数 * 针对于args成员取餐规则 * @param args { any[] } */ printf(args: any[], options?: PrintOption): void; info(...args: any[]): void; success(...args: any[]): void; warning(...args: any[]): void; error(...args: any[]): void; primary(...args: any[]): void; /** * 设置title, 使用log.title("Title").color("Content", "red") */ color(content: string, color?: string | undefined): void; useOnceBlock: boolean; block(): ILog; group(groupName: string | undefined, opt: Function | any[] | any, isClosed?: boolean, type?: "primary" | "info" | "success" | "error" | "warning"): ILog; } /** * * 带颜色的醒目打印 Log * @example * ` import { log, Log } from "ipink-util" // Use log instance log.info("呵呵") // "呵呵" log.title("标题").info("Info message!") // 标题 Info message! // 给全局log加上默认标题, 或者首个字符串为标题 log.setOption({ hasTitle: true }) log.info("呵呵") // Info 呵呵 log.info("标题", "呵呵") // 标题 呵呵 log.info("标题", {}) // 标题 {} log.title().info("标题", "呵呵") log.error("标题", "呵呵") log.warning("标题", "呵呵") log.success("标题", "呵呵") log.primary("标题", "呵呵") log.color(123, "#ff0000") log.block().info(123) log.group(1, [1,2,3]) // Use Log class var logInstance = new Log({ hasTitle: true }); logInstance.info("呵呵") // Info 呵呵 ` */ export declare const log: ILog; export {};