mirror of
				https://gitee.com/dromara/mayfly-go
				synced 2025-11-04 08:20:25 +08:00 
			
		
		
		
	feat: 日常优化
This commit is contained in:
		@@ -5,17 +5,71 @@
 | 
			
		||||
 */
 | 
			
		||||
export function formatByteSize(size: any) {
 | 
			
		||||
    const value = Number(size);
 | 
			
		||||
        if (size && !isNaN(value)) {
 | 
			
		||||
            const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB', 'BB'];
 | 
			
		||||
            let index = 0;
 | 
			
		||||
            let k = value;
 | 
			
		||||
            if (value >= 1024) {
 | 
			
		||||
                while (k > 1024) {
 | 
			
		||||
                    k = k / 1024;
 | 
			
		||||
                    index++;
 | 
			
		||||
                }
 | 
			
		||||
    if (size && !isNaN(value)) {
 | 
			
		||||
        const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB', 'BB'];
 | 
			
		||||
        let index = 0;
 | 
			
		||||
        let k = value;
 | 
			
		||||
        if (value >= 1024) {
 | 
			
		||||
            while (k > 1024) {
 | 
			
		||||
                k = k / 1024;
 | 
			
		||||
                index++;
 | 
			
		||||
            }
 | 
			
		||||
            return `${k.toFixed(2)}${units[index]}`;
 | 
			
		||||
        }
 | 
			
		||||
        return '-';
 | 
			
		||||
        return `${k.toFixed(2)}${units[index]}`;
 | 
			
		||||
    }
 | 
			
		||||
    return '-';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 格式化json字符串
 | 
			
		||||
 * @param txt  json字符串
 | 
			
		||||
 * @param compress 是否压缩
 | 
			
		||||
 * @returns 格式化后的字符串
 | 
			
		||||
 */
 | 
			
		||||
export function formatJsonString(txt: string, compress: boolean) {
 | 
			
		||||
    var indentChar = '    ';
 | 
			
		||||
    if (/^\s*$/.test(txt)) {
 | 
			
		||||
        console.log('数据为空,无法格式化! ');
 | 
			
		||||
        return txt;
 | 
			
		||||
    }
 | 
			
		||||
    try {
 | 
			
		||||
        var data = JSON.parse(txt);
 | 
			
		||||
    } catch (e: any) {
 | 
			
		||||
        console.log('数据源语法错误,格式化失败! 错误信息: ' + e.description, 'err');
 | 
			
		||||
        return txt;
 | 
			
		||||
    }
 | 
			
		||||
    var draw: any = [],
 | 
			
		||||
        line = compress ? '' : '\n',
 | 
			
		||||
        // eslint-disable-next-line no-unused-vars
 | 
			
		||||
        nodeCount: number = 0,
 | 
			
		||||
        // eslint-disable-next-line no-unused-vars
 | 
			
		||||
        maxDepth: number = 0;
 | 
			
		||||
 | 
			
		||||
    var notify = function (name: any, value: any, isLast: any, indent: any, formObj: any) {
 | 
			
		||||
        nodeCount++; /*节点计数*/
 | 
			
		||||
        for (var i = 0, tab = ''; i < indent; i++) tab += indentChar; /* 缩进HTML */
 | 
			
		||||
        tab = compress ? '' : tab; /*压缩模式忽略缩进*/
 | 
			
		||||
        maxDepth = ++indent; /*缩进递增并记录*/
 | 
			
		||||
        if (value && value.constructor == Array) {
 | 
			
		||||
            /*处理数组*/
 | 
			
		||||
            draw.push(tab + (formObj ? '"' + name + '": ' : '') + '[' + line); /*缩进'[' 然后换行*/
 | 
			
		||||
            for (var i = 0; i < value.length; i++) notify(i, value[i], i == value.length - 1, indent, false);
 | 
			
		||||
            draw.push(tab + ']' + (isLast ? line : ',' + line)); /*缩进']'换行,若非尾元素则添加逗号*/
 | 
			
		||||
        } else if (value && typeof value == 'object') {
 | 
			
		||||
            /*处理对象*/
 | 
			
		||||
            draw.push(tab + (formObj ? '"' + name + '": ' : '') + '{' + line); /*缩进'{' 然后换行*/
 | 
			
		||||
            var len = 0,
 | 
			
		||||
                i = 0;
 | 
			
		||||
            for (var key in value) len++;
 | 
			
		||||
            for (var key in value) notify(key, value[key], ++i == len, indent, true);
 | 
			
		||||
            draw.push(tab + '}' + (isLast ? line : ',' + line)); /*缩进'}'换行,若非尾元素则添加逗号*/
 | 
			
		||||
        } else {
 | 
			
		||||
            if (typeof value == 'string') value = '"' + value + '"';
 | 
			
		||||
            draw.push(tab + (formObj ? '"' + name + '": ' : '') + value + (isLast ? '' : ',') + line);
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
    var isLast = true,
 | 
			
		||||
        indent = 0;
 | 
			
		||||
    notify('', data, isLast, indent, false);
 | 
			
		||||
    return draw.join('');
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user