ipink-util
Version:
util.js
237 lines (236 loc) • 7.03 kB
TypeScript
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 {};