almighty-tool 0.0.89 → 0.0.91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -61,5 +61,7 @@ declare const _default: {
|
|
|
61
61
|
toHumpName(value: string): string;
|
|
62
62
|
/** 将对象类型的css样式转化为字符串 */
|
|
63
63
|
cssStyleObjectToString(style: Record<string, string>): string;
|
|
64
|
+
/** 格式化字节 */
|
|
65
|
+
formatBytes(bytes: number, decimals?: number): string;
|
|
64
66
|
};
|
|
65
67
|
export default _default;
|
package/lib/utils/format.util.js
CHANGED
|
@@ -113,5 +113,16 @@ exports.default = {
|
|
|
113
113
|
});
|
|
114
114
|
return styles.join('; ');
|
|
115
115
|
},
|
|
116
|
+
/** 格式化字节 */
|
|
117
|
+
formatBytes: function (bytes, decimals) {
|
|
118
|
+
if (decimals === void 0) { decimals = 2; }
|
|
119
|
+
if (bytes === 0) {
|
|
120
|
+
return '0B';
|
|
121
|
+
}
|
|
122
|
+
var k = 1024;
|
|
123
|
+
var sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
124
|
+
var i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
125
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(decimals)) + '' + sizes[i];
|
|
126
|
+
},
|
|
116
127
|
};
|
|
117
128
|
//# sourceMappingURL=format.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.util.js","sourceRoot":"","sources":["../../src/utils/format.util.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"format.util.js","sourceRoot":"","sources":["../../src/utils/format.util.ts"],"names":[],"mappings":";;;;AAAA,+DAAuB;AACV,QAAA,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC;AAIpE,eAAe;AACF,QAAA,OAAO,GAAG;IACrB,SAAS;IACT,GAAG,EAAE,yXAAyX;IAC9X,WAAW;IACX,cAAc,EAAE,qBAAqB;IACrC,WAAW;IACX,eAAe,EAAE,gBAAgB;IACjC,SAAS;IACT,KAAK;IACH,6CAA6C;IAC7C,sOAAsO;IACxO,UAAU;IACV,qBAAqB,EAAE,mBAAmB;IAC1C,UAAU;IACV,eAAe,EACb,yNAAyN;IAC3N,aAAa;IACb,kBAAkB,EAAE,8EAA8E;IAClG,UAAU;IACV,aAAa,EAAE,UAAU;IACzB,SAAS;IACT,eAAe,EAAE,2CAA2C;IAC5D,aAAa;IACb,cAAc,EAAE,6FAA6F;IAC7G,aAAa;IACb,cAAc,EAAE,4CAA4C;IAC5D,YAAY;IACZ,aAAa,EAAE,2CAA2C;IAC1D,WAAW;IACX,YAAY,EACV,kLAAkL;IACpL,SAAS;IACT,aAAa,EAAE,gEAAgE;IAC/E,SAAS;IACT,aAAa,EAAE,yBAAyB;IACxC,SAAS;IACT,aAAa,EAAE,qBAAqB;IACpC,WAAW;IACX,kBAAkB,EAAE,2CAA2C;CAChE,CAAC;AAEF,kBAAe;IACb,mBAAmB,EAAnB,UAAoB,YAAoB;QACtC,OAAO,eAAO,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED,cAAc,EAAd,UAAe,YAAoB,EAAE,MAAc;QAAd,uBAAA,EAAA,cAAc;QACjD,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;SAC/C;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,aAAa;IACb,YAAY,EAAZ,UAAa,GAAW;QACtB,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,OAAO,EAAP,UAAQ,GAAW;QACjB,OAAO,eAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,kBAAkB;IAClB,aAAa,EAAb,UAAc,GAAW,EAAE,IAAkB;QAAlB,qBAAA,EAAA,SAAkB;QAC3C,IAAI,IAAI,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;YACpC,OAAO,eAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC9C;QAED,IAAI,IAAI,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;YACpC,OAAO,eAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC3C;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,aAAa;IACb,gBAAgB,EAAhB,UAAiB,GAAW;QAC1B,OAAO,eAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,YAAY;IACZ,KAAK,EAAL,UAAM,GAAW;QACf,OAAO,eAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc;IACd,YAAY,EAAZ,UAAa,KAAa;QACxB,IAAI,KAAK,EAAE;YACT,OAAO,KAAK;iBACT,IAAI,EAAE;iBACN,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;iBAC1B,WAAW,EAAE,CAAC;SAClB;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,cAAc;IACd,UAAU,EAAV,UAAW,KAAa;QACtB,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAC,IAAI,EAAE,MAAM;gBAC1C,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,wBAAwB;IACxB,sBAAsB,EAAtB,UAAuB,KAA6B;QAApD,iBAQC;QAPC,IAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,gBAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;YACxB,MAAM,CAAC,IAAI,CAAC,CAAC,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,YAAY;IACZ,WAAW,EAAX,UAAY,KAAa,EAAE,QAAY;QAAZ,yBAAA,EAAA,YAAY;QACrC,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QAED,IAAM,CAAC,GAAG,IAAI,CAAC;QACf,IAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpE,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,OAAO,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 字符串截断配置选项
|
|
3
|
+
*/
|
|
4
|
+
export declare type StringTruncateOptions = {
|
|
5
|
+
/** 截断后字符串的最大长度 */
|
|
6
|
+
length: number;
|
|
7
|
+
/** 截断位置:'end'(默认)|'start'|'middle' */
|
|
8
|
+
position?: 'end' | 'start' | 'middle';
|
|
9
|
+
/** 当position='middle'时,末尾保留的字符数 */
|
|
10
|
+
endChars?: number;
|
|
11
|
+
/** 省略符号,默认为'...' */
|
|
12
|
+
omission?: string;
|
|
13
|
+
/** 是否保留完整单词(不切断单词) */
|
|
14
|
+
preserveWord?: boolean;
|
|
15
|
+
};
|
|
16
|
+
declare const stringUtil: {
|
|
17
|
+
/**
|
|
18
|
+
* 高性能字符串截断函数
|
|
19
|
+
* @param str - 原始字符串
|
|
20
|
+
* @param options - 截断配置
|
|
21
|
+
* @returns 截断后的字符串
|
|
22
|
+
*
|
|
23
|
+
* 性能优化点:
|
|
24
|
+
* 1. 快速路径:直接返回满足条件的字符串
|
|
25
|
+
* 2. 避免不必要的计算:提前计算关键变量
|
|
26
|
+
* 3. 最小化字符串操作:使用slice替代substring
|
|
27
|
+
* 4. 优化单词保留逻辑:使用indexOf替代split
|
|
28
|
+
*/
|
|
29
|
+
truncate: (str: string, options: StringTruncateOptions) => string;
|
|
30
|
+
/**
|
|
31
|
+
* 简单截断处理(不保留单词)
|
|
32
|
+
*/
|
|
33
|
+
simpleTruncate: (str: string, options: Pick<StringTruncateOptions, "position" | "omission"> & {
|
|
34
|
+
maxLength: number;
|
|
35
|
+
endChars: number;
|
|
36
|
+
}) => string;
|
|
37
|
+
/**
|
|
38
|
+
* 保留单词的截断处理
|
|
39
|
+
*/
|
|
40
|
+
preserveWordTruncate: (str: string, options: Pick<StringTruncateOptions, "position" | "omission"> & {
|
|
41
|
+
maxLength: number;
|
|
42
|
+
}) => string;
|
|
43
|
+
};
|
|
44
|
+
export default stringUtil;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var stringUtil = {
|
|
4
|
+
/**
|
|
5
|
+
* 高性能字符串截断函数
|
|
6
|
+
* @param str - 原始字符串
|
|
7
|
+
* @param options - 截断配置
|
|
8
|
+
* @returns 截断后的字符串
|
|
9
|
+
*
|
|
10
|
+
* 性能优化点:
|
|
11
|
+
* 1. 快速路径:直接返回满足条件的字符串
|
|
12
|
+
* 2. 避免不必要的计算:提前计算关键变量
|
|
13
|
+
* 3. 最小化字符串操作:使用slice替代substring
|
|
14
|
+
* 4. 优化单词保留逻辑:使用indexOf替代split
|
|
15
|
+
*/
|
|
16
|
+
truncate: function (str, options) {
|
|
17
|
+
// 快速返回路径:字符串本身已满足长度要求
|
|
18
|
+
if (str.length <= options.length)
|
|
19
|
+
return str;
|
|
20
|
+
// 解构配置项并设置默认值
|
|
21
|
+
var length = options.length, _a = options.position, position = _a === void 0 ? 'end' : _a, _b = options.endChars, endChars = _b === void 0 ? 4 : _b, _c = options.omission, omission = _c === void 0 ? '...' : _c, _d = options.preserveWord, preserveWord = _d === void 0 ? false : _d;
|
|
22
|
+
// 计算实际可保留的最大长度(减去省略符长度)
|
|
23
|
+
var omissionLength = omission.length;
|
|
24
|
+
var maxLength = length - omissionLength;
|
|
25
|
+
// 根据是否保留单词选择处理路径
|
|
26
|
+
return preserveWord
|
|
27
|
+
? stringUtil.preserveWordTruncate(str, { position: position, omission: omission, maxLength: maxLength })
|
|
28
|
+
: stringUtil.simpleTruncate(str, { position: position, omission: omission, maxLength: maxLength, endChars: endChars });
|
|
29
|
+
},
|
|
30
|
+
/**
|
|
31
|
+
* 简单截断处理(不保留单词)
|
|
32
|
+
*/
|
|
33
|
+
simpleTruncate: function (str, options) {
|
|
34
|
+
var position = options.position, omission = options.omission, maxLength = options.maxLength, endChars = options.endChars;
|
|
35
|
+
// 使用switch语句优化分支预测
|
|
36
|
+
switch (position) {
|
|
37
|
+
case 'start':
|
|
38
|
+
// 开头截断:保留结尾部分
|
|
39
|
+
return omission + str.slice(-maxLength);
|
|
40
|
+
case 'middle':
|
|
41
|
+
// 中间截断:计算保留的起始和结束位置
|
|
42
|
+
return str.slice(0, Math.max(0, maxLength - endChars)) + omission + str.slice(-endChars);
|
|
43
|
+
case 'end':
|
|
44
|
+
default:
|
|
45
|
+
// 默认结尾截断
|
|
46
|
+
return str.slice(0, maxLength) + omission;
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
/**
|
|
50
|
+
* 保留单词的截断处理
|
|
51
|
+
*/
|
|
52
|
+
preserveWordTruncate: function (str, options) {
|
|
53
|
+
var position = options.position, omission = options.omission, maxLength = options.maxLength;
|
|
54
|
+
// 查找最近的空格位置(单词边界)
|
|
55
|
+
var spaceIndex = str.lastIndexOf(' ', maxLength);
|
|
56
|
+
// 根据截断位置选择处理方式
|
|
57
|
+
if (position === 'end') {
|
|
58
|
+
// 结尾截断:找到最近的空格位置截断
|
|
59
|
+
return spaceIndex === -1
|
|
60
|
+
? str.slice(0, maxLength) + omission // 没有空格则强制截断
|
|
61
|
+
: str.slice(0, spaceIndex) + omission;
|
|
62
|
+
}
|
|
63
|
+
if (position === 'start') {
|
|
64
|
+
// 开头截断:从末尾向前找第一个空格
|
|
65
|
+
var spaceIndexFromEnd = str.indexOf(' ', str.length - maxLength);
|
|
66
|
+
return spaceIndexFromEnd === -1
|
|
67
|
+
? omission + str.slice(-maxLength) // 没有空格则强制截断
|
|
68
|
+
: omission + str.slice(spaceIndexFromEnd + 1);
|
|
69
|
+
}
|
|
70
|
+
// 中间截断(最复杂的情况)
|
|
71
|
+
var half = Math.floor(maxLength / 2);
|
|
72
|
+
// 查找前半部分的最后一个空格
|
|
73
|
+
var firstSpace = str.lastIndexOf(' ', half);
|
|
74
|
+
// 查找后半部分的第一个空格
|
|
75
|
+
var lastSpace = str.indexOf(' ', str.length - half);
|
|
76
|
+
// 处理找不到空格的情况
|
|
77
|
+
if (firstSpace === -1 || lastSpace === -1) {
|
|
78
|
+
return str.slice(0, half) + omission + str.slice(-half);
|
|
79
|
+
}
|
|
80
|
+
// 组合结果:前半部分+省略符+后半部分
|
|
81
|
+
return str.slice(0, firstSpace) + omission + str.slice(lastSpace + 1);
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
exports.default = stringUtil;
|
|
85
|
+
//# sourceMappingURL=string.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.util.js","sourceRoot":"","sources":["../../src/utils/string.util.ts"],"names":[],"mappings":"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"}
|