@zwa73/utils 1.0.60 → 1.0.62
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.
- package/dist/UtilCodecs.d.ts +16 -16
- package/dist/UtilCodecs.js +16 -16
- package/dist/UtilCom.d.ts +22 -25
- package/dist/UtilCom.js +35 -38
- package/dist/UtilDecorators.d.ts +15 -8
- package/dist/UtilDecorators.js +79 -25
- package/dist/UtilFP.d.ts +46 -0
- package/dist/UtilFP.js +52 -0
- package/dist/UtilFfmpegTools.d.ts +30 -30
- package/dist/UtilFfmpegTools.js +32 -32
- package/dist/UtilFileTools.d.ts +30 -35
- package/dist/UtilFileTools.js +17 -18
- package/dist/UtilFunctions.d.ts +37 -78
- package/dist/UtilFunctions.js +27 -62
- package/dist/UtilInterfaces.d.ts +26 -11
- package/dist/UtilInterfaces.js +12 -3
- package/dist/UtilLogger.d.ts +55 -55
- package/dist/UtilLogger.js +55 -55
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/test/composeTest.d.ts +26 -0
- package/dist/test/composeTest.js +50 -0
- package/dist/test/importtest.d.ts +1 -0
- package/dist/test/importtest.js +4 -0
- package/dist/test/test.js +5 -3
- package/package.json +1 -1
- package/src/UtilClass.ts +1051 -1051
- package/src/UtilCodecs.ts +117 -117
- package/src/UtilCom.ts +171 -174
- package/src/UtilDecorators.ts +174 -116
- package/src/UtilFP.ts +98 -0
- package/src/UtilFfmpegTools.ts +271 -271
- package/src/UtilFileTools.ts +231 -236
- package/src/UtilFunctions.ts +289 -364
- package/src/UtilInterfaces.ts +158 -138
- package/src/UtilLogger.ts +386 -386
- package/src/index.ts +10 -9
- package/src/test/composeTest.ts +50 -0
- package/src/test/importtest.ts +5 -0
- package/src/test/test.ts +8 -6
- package/src/test/test2.ts +2 -3
- package/tsconfig.json +2 -7
|
@@ -15,63 +15,63 @@ declare class SFfmpegTool {
|
|
|
15
15
|
*/
|
|
16
16
|
static setFfmpegPath(ffmpegPath: string): void;
|
|
17
17
|
/**获取音频文件的元数据
|
|
18
|
-
* @param
|
|
19
|
-
* @returns
|
|
18
|
+
* @param inputWavPath - 输入音频文件路径
|
|
19
|
+
* @returns 返回音频文件的元数据
|
|
20
20
|
*/
|
|
21
21
|
static getAudioMetaData(inputWavPath: string): Promise<FfprobeData | null>;
|
|
22
22
|
/**flac转ogg
|
|
23
|
-
* @param
|
|
24
|
-
* @param
|
|
25
|
-
* @param
|
|
23
|
+
* @param inputFlacFile - 输入flac文件路径
|
|
24
|
+
* @param outputOggPath - 输出ogg文件路径
|
|
25
|
+
* @param quality - 质量
|
|
26
26
|
*/
|
|
27
27
|
static flac2ogg(inputFlacFile: string, outputOggPath: string, quality?: number): Promise<boolean>;
|
|
28
28
|
/**wav转ogg
|
|
29
|
-
* @param
|
|
30
|
-
* @param
|
|
31
|
-
* @param
|
|
29
|
+
* @param inputWavPath - 输入wav文件路径
|
|
30
|
+
* @param outputOggPath - 输出ogg文件路径
|
|
31
|
+
* @param quality - 质量
|
|
32
32
|
*/
|
|
33
33
|
static wav2ogg(inputWavPath: string, outputOggPath: string, quality?: number): Promise<boolean>;
|
|
34
34
|
/**剪切音频
|
|
35
|
-
* @param
|
|
36
|
-
* @param
|
|
37
|
-
* @param
|
|
38
|
-
* @param
|
|
35
|
+
* @param audioPath - 输入音频文件路径
|
|
36
|
+
* @param outPath - 输出音频文件路径
|
|
37
|
+
* @param start - 开始时间
|
|
38
|
+
* @param time - 时长
|
|
39
39
|
*/
|
|
40
40
|
static cutAudio(audioPath: string, outPath: string, start: number, time: number): Promise<boolean>;
|
|
41
41
|
/**删除首尾静音
|
|
42
|
-
* @param
|
|
43
|
-
* @param
|
|
44
|
-
* @param
|
|
45
|
-
* @param
|
|
42
|
+
* @param inputWavPath - 输入wav文件路径
|
|
43
|
+
* @param outputWavPath - 输出wav文件路径
|
|
44
|
+
* @param threshold - 静音阈值/dB
|
|
45
|
+
* @param silence - 保留静音时长
|
|
46
46
|
*/
|
|
47
47
|
static trimSilence(inputWavPath: string, outputWavPath: string, threshold?: number, silence?: number): Promise<boolean>;
|
|
48
48
|
/**重采样
|
|
49
|
-
* @param
|
|
50
|
-
* @param
|
|
49
|
+
* @param inputWavPath - 输入wav文件路径
|
|
50
|
+
* @param outputWavPath - 输出wav文件路径
|
|
51
51
|
*/
|
|
52
52
|
static resample(inputWavPath: string, outputWavPath: string, rate?: number): Promise<boolean>;
|
|
53
53
|
/**wav转ogg多线程
|
|
54
|
-
* @param
|
|
55
|
-
* @param
|
|
56
|
-
* @param
|
|
54
|
+
* @param ioMap - 输入输出路径映射
|
|
55
|
+
* @param quality - 质量
|
|
56
|
+
* @param cpCount - 并发数
|
|
57
57
|
*/
|
|
58
58
|
static wav2oggMP(ioMap: IOMap, quality?: number, cpCount?: number): Promise<void>;
|
|
59
59
|
/**flac转ogg多线程
|
|
60
|
-
* @param
|
|
61
|
-
* @param
|
|
62
|
-
* @param
|
|
60
|
+
* @param ioMap - 输入输出路径映射
|
|
61
|
+
* @param quality - 质量
|
|
62
|
+
* @param cpCount - 并发数
|
|
63
63
|
*/
|
|
64
64
|
static flac2oggMP(ioMap: IOMap, quality?: number, cpCount?: number): Promise<void>;
|
|
65
65
|
/**删除静音多线程
|
|
66
|
-
* @param
|
|
67
|
-
* @param
|
|
68
|
-
* @param
|
|
66
|
+
* @param ioMap - 输入输出路径映射
|
|
67
|
+
* @param threshold - 静音阈值/dB
|
|
68
|
+
* @param silence - 保留静音时长
|
|
69
69
|
*/
|
|
70
70
|
static trimSilenceMP(ioMap: IOMap, threshold?: number, silence?: number, cpCount?: number): Promise<void>;
|
|
71
71
|
/**重采样多线程
|
|
72
|
-
* @param
|
|
73
|
-
* @param
|
|
74
|
-
* @param
|
|
72
|
+
* @param ioMap - 输入输出路径映射
|
|
73
|
+
* @param rate - 采样率
|
|
74
|
+
* @param cpCount - 并发数
|
|
75
75
|
*/
|
|
76
76
|
static resampleMP(ioMap: IOMap, rate?: number, cpCount?: number): Promise<void>;
|
|
77
77
|
}
|
package/dist/UtilFfmpegTools.js
CHANGED
|
@@ -24,8 +24,8 @@ class SFfmpegTool {
|
|
|
24
24
|
fluentFfmpeg.setFfmpegPath(ffmpegPath);
|
|
25
25
|
}
|
|
26
26
|
/**获取音频文件的元数据
|
|
27
|
-
* @param
|
|
28
|
-
* @returns
|
|
27
|
+
* @param inputWavPath - 输入音频文件路径
|
|
28
|
+
* @returns 返回音频文件的元数据
|
|
29
29
|
*/
|
|
30
30
|
static async getAudioMetaData(inputWavPath) {
|
|
31
31
|
return new Promise((resolve, reject) => {
|
|
@@ -41,9 +41,9 @@ class SFfmpegTool {
|
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
/**flac转ogg
|
|
44
|
-
* @param
|
|
45
|
-
* @param
|
|
46
|
-
* @param
|
|
44
|
+
* @param inputFlacFile - 输入flac文件路径
|
|
45
|
+
* @param outputOggPath - 输出ogg文件路径
|
|
46
|
+
* @param quality - 质量
|
|
47
47
|
*/
|
|
48
48
|
static async flac2ogg(inputFlacFile, outputOggPath, quality = 10) {
|
|
49
49
|
let wavPath = path.join(path.dirname(inputFlacFile), `tmp_${path.basename(inputFlacFile, ".flac")}.wav`);
|
|
@@ -66,9 +66,9 @@ class SFfmpegTool {
|
|
|
66
66
|
return true;
|
|
67
67
|
}
|
|
68
68
|
/**wav转ogg
|
|
69
|
-
* @param
|
|
70
|
-
* @param
|
|
71
|
-
* @param
|
|
69
|
+
* @param inputWavPath - 输入wav文件路径
|
|
70
|
+
* @param outputOggPath - 输出ogg文件路径
|
|
71
|
+
* @param quality - 质量
|
|
72
72
|
*/
|
|
73
73
|
static async wav2ogg(inputWavPath, outputOggPath, quality = 10) {
|
|
74
74
|
//.audioQuality(10)
|
|
@@ -85,10 +85,10 @@ class SFfmpegTool {
|
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
/**剪切音频
|
|
88
|
-
* @param
|
|
89
|
-
* @param
|
|
90
|
-
* @param
|
|
91
|
-
* @param
|
|
88
|
+
* @param audioPath - 输入音频文件路径
|
|
89
|
+
* @param outPath - 输出音频文件路径
|
|
90
|
+
* @param start - 开始时间
|
|
91
|
+
* @param time - 时长
|
|
92
92
|
*/
|
|
93
93
|
static async cutAudio(audioPath, outPath, start, time) {
|
|
94
94
|
return new Promise((resolve, reject) => {
|
|
@@ -101,10 +101,10 @@ class SFfmpegTool {
|
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
103
|
/**删除首尾静音
|
|
104
|
-
* @param
|
|
105
|
-
* @param
|
|
106
|
-
* @param
|
|
107
|
-
* @param
|
|
104
|
+
* @param inputWavPath - 输入wav文件路径
|
|
105
|
+
* @param outputWavPath - 输出wav文件路径
|
|
106
|
+
* @param threshold - 静音阈值/dB
|
|
107
|
+
* @param silence - 保留静音时长
|
|
108
108
|
*/
|
|
109
109
|
static async trimSilence(inputWavPath, outputWavPath, threshold = -50, silence = 0.2) {
|
|
110
110
|
return new Promise((resolve, reject) => {
|
|
@@ -119,8 +119,8 @@ class SFfmpegTool {
|
|
|
119
119
|
});
|
|
120
120
|
}
|
|
121
121
|
/**重采样
|
|
122
|
-
* @param
|
|
123
|
-
* @param
|
|
122
|
+
* @param inputWavPath - 输入wav文件路径
|
|
123
|
+
* @param outputWavPath - 输出wav文件路径
|
|
124
124
|
*/
|
|
125
125
|
static async resample(inputWavPath, outputWavPath, rate = 22050) {
|
|
126
126
|
return new Promise((resolve, reject) => {
|
|
@@ -133,9 +133,9 @@ class SFfmpegTool {
|
|
|
133
133
|
}
|
|
134
134
|
//多线程处理
|
|
135
135
|
/**wav转ogg多线程
|
|
136
|
-
* @param
|
|
137
|
-
* @param
|
|
138
|
-
* @param
|
|
136
|
+
* @param ioMap - 输入输出路径映射
|
|
137
|
+
* @param quality - 质量
|
|
138
|
+
* @param cpCount - 并发数
|
|
139
139
|
*/
|
|
140
140
|
static async wav2oggMP(ioMap, quality = 10, cpCount = 16) {
|
|
141
141
|
await new UtilClass_1.SList(Object.entries(ioMap))
|
|
@@ -147,9 +147,9 @@ class SFfmpegTool {
|
|
|
147
147
|
.appendOperations();
|
|
148
148
|
}
|
|
149
149
|
/**flac转ogg多线程
|
|
150
|
-
* @param
|
|
151
|
-
* @param
|
|
152
|
-
* @param
|
|
150
|
+
* @param ioMap - 输入输出路径映射
|
|
151
|
+
* @param quality - 质量
|
|
152
|
+
* @param cpCount - 并发数
|
|
153
153
|
*/
|
|
154
154
|
static async flac2oggMP(ioMap, quality = 10, cpCount = 16) {
|
|
155
155
|
await new UtilClass_1.SList(Object.entries(ioMap))
|
|
@@ -161,9 +161,9 @@ class SFfmpegTool {
|
|
|
161
161
|
.appendOperations();
|
|
162
162
|
}
|
|
163
163
|
/**删除静音多线程
|
|
164
|
-
* @param
|
|
165
|
-
* @param
|
|
166
|
-
* @param
|
|
164
|
+
* @param ioMap - 输入输出路径映射
|
|
165
|
+
* @param threshold - 静音阈值/dB
|
|
166
|
+
* @param silence - 保留静音时长
|
|
167
167
|
*/
|
|
168
168
|
static async trimSilenceMP(ioMap, threshold = -50, silence = 0.2, cpCount = 16) {
|
|
169
169
|
await new UtilClass_1.SList(Object.entries(ioMap))
|
|
@@ -175,9 +175,9 @@ class SFfmpegTool {
|
|
|
175
175
|
.appendOperations();
|
|
176
176
|
}
|
|
177
177
|
/**重采样多线程
|
|
178
|
-
* @param
|
|
179
|
-
* @param
|
|
180
|
-
* @param
|
|
178
|
+
* @param ioMap - 输入输出路径映射
|
|
179
|
+
* @param rate - 采样率
|
|
180
|
+
* @param cpCount - 并发数
|
|
181
181
|
*/
|
|
182
182
|
static async resampleMP(ioMap, rate = 22050, cpCount = 16) {
|
|
183
183
|
await new UtilClass_1.SList(Object.entries(ioMap))
|
|
@@ -192,8 +192,8 @@ class SFfmpegTool {
|
|
|
192
192
|
exports.SFfmpegTool = SFfmpegTool;
|
|
193
193
|
SFfmpegTool.init();
|
|
194
194
|
/**多线程任务分割器
|
|
195
|
-
* @param
|
|
196
|
-
* @param
|
|
195
|
+
* @param iomap - 输入输出路径映射
|
|
196
|
+
* @param cpCount - 并发数
|
|
197
197
|
*/
|
|
198
198
|
function MPClip(iomap, cpCount = 16) {
|
|
199
199
|
let cpList = [];
|
package/dist/UtilFileTools.d.ts
CHANGED
|
@@ -1,76 +1,71 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { JToken } from "./UtilInterfaces";
|
|
2
2
|
/**文件工具 */
|
|
3
3
|
export declare namespace UtilFT {
|
|
4
4
|
/**验证路径 文件或文件夹 是否存在 异步
|
|
5
5
|
* @async
|
|
6
|
-
* @param
|
|
7
|
-
* @returns
|
|
6
|
+
* @param filePath - 待验证的路径
|
|
7
|
+
* @returns 是否存在
|
|
8
8
|
*/
|
|
9
9
|
function pathExists(filePath: string): Promise<boolean>;
|
|
10
10
|
/**验证路径 文件或文件夹 是否存在 同步
|
|
11
|
-
* @param
|
|
12
|
-
* @returns
|
|
11
|
+
* @param filePath - 待验证的路径
|
|
12
|
+
* @returns - 是否存在
|
|
13
13
|
*/
|
|
14
14
|
function pathExistsSync(filePath: string): boolean;
|
|
15
15
|
/**路径不存在时创建路径 以path.sep结尾时创建文件夹 异步
|
|
16
16
|
* @async
|
|
17
|
-
* @param
|
|
18
|
-
* @param
|
|
19
|
-
* @returns
|
|
17
|
+
* @param filePath - 待创建的路径
|
|
18
|
+
* @param isDir - 强制创建一个文件夹
|
|
19
|
+
* @returns 是否成功创建
|
|
20
20
|
*/
|
|
21
21
|
function createPath(filePath: string, isDir?: boolean): Promise<boolean>;
|
|
22
22
|
/**路径不存在时创建路径 以path.sep结尾时创建文件夹 同步
|
|
23
|
-
* @param
|
|
24
|
-
* @param
|
|
25
|
-
* @returns
|
|
23
|
+
* @param filePath - 待创建的路径
|
|
24
|
+
* @param isDir - 强制验证一个文件夹
|
|
25
|
+
* @returns 是否成功创建
|
|
26
26
|
*/
|
|
27
27
|
function createPathSync(filePath: string, isDir?: boolean): boolean;
|
|
28
28
|
/**确保路径存在 不存在时创建 异步
|
|
29
29
|
* @async
|
|
30
|
-
* @param
|
|
31
|
-
* @param
|
|
32
|
-
* @returns
|
|
30
|
+
* @param filePath - 待验证的路径
|
|
31
|
+
* @param isDir - 强制验证一个文件夹
|
|
32
|
+
* @returns 是否成功执行 创建或已存在
|
|
33
33
|
*/
|
|
34
34
|
function ensurePathExists(filePath: string, isDir?: boolean): Promise<boolean>;
|
|
35
35
|
/**确保路径存在 不存在时创建 同步
|
|
36
|
-
* @param
|
|
37
|
-
* @returns
|
|
36
|
+
* @param filePath - 待验证的路径
|
|
37
|
+
* @returns 是否成功执行 创建或已存在
|
|
38
38
|
*/
|
|
39
39
|
function ensurePathExistsSync(filePath: string, isDir?: boolean): boolean;
|
|
40
40
|
/**加载json文件 同步
|
|
41
|
-
*
|
|
42
|
-
* @
|
|
43
|
-
* @returns {JObject} - 加载完成的对象或空{}
|
|
41
|
+
* @param filePath - 文件路径
|
|
42
|
+
* @returns 加载完成的对象或空{}
|
|
44
43
|
*/
|
|
45
|
-
function loadJSONFileSync(filePath: string):
|
|
44
|
+
function loadJSONFileSync(filePath: string): JToken;
|
|
46
45
|
/**加载json文件 同步
|
|
47
|
-
*
|
|
48
|
-
* @param
|
|
49
|
-
* @
|
|
50
|
-
* @returns {T} - 加载完成的对象或默认值
|
|
46
|
+
* @param filePath - 文件路径
|
|
47
|
+
* @param def - 默认值
|
|
48
|
+
* @returns 加载完成的对象或默认值
|
|
51
49
|
*/
|
|
52
50
|
function loadJSONFileSync<T extends JToken>(filePath: string, def: T): T;
|
|
53
51
|
/**加载json文件 异步
|
|
54
|
-
* Object (string)
|
|
55
52
|
* @async
|
|
56
|
-
* @param
|
|
57
|
-
* @returns
|
|
53
|
+
* @param filePath - 文件路径
|
|
54
|
+
* @returns 加载完成的对象或空{}
|
|
58
55
|
*/
|
|
59
|
-
function loadJSONFile(filePath: string): Promise<
|
|
56
|
+
function loadJSONFile(filePath: string): Promise<JToken>;
|
|
60
57
|
/**加载json文件 异步
|
|
61
|
-
* Object (string)
|
|
62
58
|
* @async
|
|
63
|
-
* @param
|
|
64
|
-
* @param
|
|
65
|
-
* @returns
|
|
59
|
+
* @param filePath - 文件路径
|
|
60
|
+
* @param def - 默认值
|
|
61
|
+
* @returns 加载完成的对象或默认值
|
|
66
62
|
*/
|
|
67
63
|
function loadJSONFile<T extends JToken>(filePath: string, def: T): Promise<T>;
|
|
68
64
|
/**写入JSON文件
|
|
69
65
|
* void (string,Object)
|
|
70
66
|
* @async
|
|
71
|
-
* @param
|
|
72
|
-
* @param
|
|
73
|
-
* @returns {Promise<void>}
|
|
67
|
+
* @param filePath - 文件路径
|
|
68
|
+
* @param token - 所要写入的JToken
|
|
74
69
|
*/
|
|
75
70
|
function writeJSONFile(filePath: string, token: JToken): Promise<void>;
|
|
76
71
|
/**搜索路径符合正则表达式的文件
|
package/dist/UtilFileTools.js
CHANGED
|
@@ -12,8 +12,8 @@ var UtilFT;
|
|
|
12
12
|
(function (UtilFT) {
|
|
13
13
|
/**验证路径 文件或文件夹 是否存在 异步
|
|
14
14
|
* @async
|
|
15
|
-
* @param
|
|
16
|
-
* @returns
|
|
15
|
+
* @param filePath - 待验证的路径
|
|
16
|
+
* @returns 是否存在
|
|
17
17
|
*/
|
|
18
18
|
async function pathExists(filePath) {
|
|
19
19
|
try {
|
|
@@ -27,8 +27,8 @@ var UtilFT;
|
|
|
27
27
|
}
|
|
28
28
|
UtilFT.pathExists = pathExists;
|
|
29
29
|
/**验证路径 文件或文件夹 是否存在 同步
|
|
30
|
-
* @param
|
|
31
|
-
* @returns
|
|
30
|
+
* @param filePath - 待验证的路径
|
|
31
|
+
* @returns - 是否存在
|
|
32
32
|
*/
|
|
33
33
|
function pathExistsSync(filePath) {
|
|
34
34
|
try {
|
|
@@ -42,9 +42,9 @@ var UtilFT;
|
|
|
42
42
|
UtilFT.pathExistsSync = pathExistsSync;
|
|
43
43
|
/**路径不存在时创建路径 以path.sep结尾时创建文件夹 异步
|
|
44
44
|
* @async
|
|
45
|
-
* @param
|
|
46
|
-
* @param
|
|
47
|
-
* @returns
|
|
45
|
+
* @param filePath - 待创建的路径
|
|
46
|
+
* @param isDir - 强制创建一个文件夹
|
|
47
|
+
* @returns 是否成功创建
|
|
48
48
|
*/
|
|
49
49
|
async function createPath(filePath, isDir) {
|
|
50
50
|
if (isDir == true)
|
|
@@ -66,9 +66,9 @@ var UtilFT;
|
|
|
66
66
|
}
|
|
67
67
|
UtilFT.createPath = createPath;
|
|
68
68
|
/**路径不存在时创建路径 以path.sep结尾时创建文件夹 同步
|
|
69
|
-
* @param
|
|
70
|
-
* @param
|
|
71
|
-
* @returns
|
|
69
|
+
* @param filePath - 待创建的路径
|
|
70
|
+
* @param isDir - 强制验证一个文件夹
|
|
71
|
+
* @returns 是否成功创建
|
|
72
72
|
*/
|
|
73
73
|
function createPathSync(filePath, isDir) {
|
|
74
74
|
if (isDir == true)
|
|
@@ -90,9 +90,9 @@ var UtilFT;
|
|
|
90
90
|
UtilFT.createPathSync = createPathSync;
|
|
91
91
|
/**确保路径存在 不存在时创建 异步
|
|
92
92
|
* @async
|
|
93
|
-
* @param
|
|
94
|
-
* @param
|
|
95
|
-
* @returns
|
|
93
|
+
* @param filePath - 待验证的路径
|
|
94
|
+
* @param isDir - 强制验证一个文件夹
|
|
95
|
+
* @returns 是否成功执行 创建或已存在
|
|
96
96
|
*/
|
|
97
97
|
async function ensurePathExists(filePath, isDir) {
|
|
98
98
|
if (await pathExists(filePath))
|
|
@@ -101,8 +101,8 @@ var UtilFT;
|
|
|
101
101
|
}
|
|
102
102
|
UtilFT.ensurePathExists = ensurePathExists;
|
|
103
103
|
/**确保路径存在 不存在时创建 同步
|
|
104
|
-
* @param
|
|
105
|
-
* @returns
|
|
104
|
+
* @param filePath - 待验证的路径
|
|
105
|
+
* @returns 是否成功执行 创建或已存在
|
|
106
106
|
*/
|
|
107
107
|
function ensurePathExistsSync(filePath, isDir) {
|
|
108
108
|
if (pathExistsSync(filePath))
|
|
@@ -145,9 +145,8 @@ var UtilFT;
|
|
|
145
145
|
/**写入JSON文件
|
|
146
146
|
* void (string,Object)
|
|
147
147
|
* @async
|
|
148
|
-
* @param
|
|
149
|
-
* @param
|
|
150
|
-
* @returns {Promise<void>}
|
|
148
|
+
* @param filePath - 文件路径
|
|
149
|
+
* @param token - 所要写入的JToken
|
|
151
150
|
*/
|
|
152
151
|
async function writeJSONFile(filePath, token) {
|
|
153
152
|
let str = (0, UtilInterfaces_1.stringifyJToken)(token);
|
package/dist/UtilFunctions.d.ts
CHANGED
|
@@ -1,123 +1,82 @@
|
|
|
1
|
-
import { ComposedClassMult,
|
|
1
|
+
import { ComposedClassMult, ComposedClassPart, JToken, PromiseProcFn, PromiseVerifyFn } from "./UtilInterfaces";
|
|
2
2
|
/**常用函数 */
|
|
3
3
|
export declare namespace UtilFunc {
|
|
4
4
|
/**获取当前时间戳
|
|
5
|
-
*
|
|
6
|
-
* @returns {number} 时间戳
|
|
5
|
+
* @returns 时间戳
|
|
7
6
|
*/
|
|
8
|
-
|
|
7
|
+
function getTime(): number;
|
|
9
8
|
/**初始化对象的字段
|
|
10
|
-
*
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @param
|
|
14
|
-
* @returns
|
|
9
|
+
* 会改变obj
|
|
10
|
+
* @param obj - 所要初始化的对象
|
|
11
|
+
* @param field - 所要初始化的字段
|
|
12
|
+
* @param defaultVal - 默认值
|
|
13
|
+
* @returns 最终值
|
|
15
14
|
*/
|
|
16
|
-
|
|
15
|
+
function initField<T>(obj: Record<string, T>, field: string, defaultVal: T): T;
|
|
17
16
|
/**生成一串uuid
|
|
18
|
-
*
|
|
19
|
-
* @returns {string} uuid
|
|
17
|
+
* @returns uuid
|
|
20
18
|
*/
|
|
21
|
-
|
|
19
|
+
function genUUID(): string;
|
|
22
20
|
/**计算Hash
|
|
23
|
-
*
|
|
24
|
-
* @
|
|
25
|
-
* @returns {string} hash
|
|
21
|
+
* @param str - 待计算的字符串
|
|
22
|
+
* @returns hash
|
|
26
23
|
*/
|
|
27
|
-
|
|
24
|
+
function calcHash(str: string): string;
|
|
28
25
|
/**深克隆 序列化并反序列化
|
|
29
|
-
* @template
|
|
30
|
-
* @param
|
|
31
|
-
* @returns
|
|
26
|
+
* @template T - JToken类型的泛型
|
|
27
|
+
* @param obj - 克隆目标
|
|
28
|
+
* @returns 克隆结果
|
|
32
29
|
*/
|
|
33
|
-
|
|
30
|
+
function deepClone<T extends JToken>(obj: T): T;
|
|
34
31
|
/**是否为安全的数字
|
|
35
|
-
* @param
|
|
36
|
-
* @returns
|
|
32
|
+
* @param num - 所要检测的数字
|
|
33
|
+
* @returns 是否安全
|
|
37
34
|
*/
|
|
38
|
-
|
|
35
|
+
function isSafeNumber(num: number): boolean;
|
|
39
36
|
/**等待 timeMs 毫秒
|
|
40
37
|
* @async
|
|
41
|
-
* @param
|
|
42
|
-
* @returns
|
|
38
|
+
* @param timeMs - 等待的毫秒数
|
|
39
|
+
* @returns
|
|
43
40
|
*/
|
|
44
|
-
|
|
41
|
+
function sleep(timeMs: number): Promise<boolean>;
|
|
45
42
|
/**封装的 cp.exec 执行一段指令 指令完成后返回 Promise
|
|
46
|
-
* @param
|
|
43
|
+
* @param command 指令文本
|
|
47
44
|
*/
|
|
48
|
-
|
|
45
|
+
function exec(command: string): Promise<{
|
|
49
46
|
stdout: string;
|
|
50
47
|
stderr: string;
|
|
51
48
|
}>;
|
|
52
49
|
/**获得一个永不完成的Promise单例 */
|
|
53
|
-
|
|
50
|
+
function getNeverResolvedPromise<T>(): Promise<T>;
|
|
54
51
|
/**重复尝试promise
|
|
55
52
|
* @async
|
|
56
|
-
* @param
|
|
57
|
-
* @param
|
|
58
|
-
* @param
|
|
59
|
-
* @param
|
|
60
|
-
* @returns
|
|
53
|
+
* @param procFn - 发起函数
|
|
54
|
+
* @param verifyFn - 验证函数
|
|
55
|
+
* @param repeatCount - 重试次数
|
|
56
|
+
* @param repeatTime - 超时时间/秒 最小为10秒
|
|
57
|
+
* @returns - 结果 null 为全部失败/超时
|
|
61
58
|
*/
|
|
62
|
-
|
|
63
|
-
/**柯里化函数类型 */
|
|
64
|
-
type CurryFunc<T, PrevArgs extends any[] = []> = T extends (...args: infer Args) => infer Result ? Args extends [infer Arg, ...infer RestArgs] ? RestArgs extends [] ? ((...args: [...PrevArgs, Arg]) => Result) : ((...args: [...PrevArgs, Arg]) => CurryFunc<(...rest: RestArgs) => Result>) & (CurryFunc<(...args: RestArgs) => Result, [...PrevArgs, Arg]>) : Args extends [] ? () => Result : never : never;
|
|
65
|
-
/**柯里化转换
|
|
66
|
-
* @param {T} fn - 将要转换的函数
|
|
67
|
-
* @returns {CurryFunc<T>} 柯里化的函数
|
|
68
|
-
*/
|
|
69
|
-
export function curry<T extends (...args: any[]) => any>(fn: T): CurryFunc<T>;
|
|
70
|
-
/**
|
|
71
|
-
let sumvoid = ()=>10;
|
|
72
|
-
let a = curry(sumvoid);//?
|
|
73
|
-
console.log(a());
|
|
74
|
-
let sum = (a:number,b:string,c:number,d:boolean)=>a+b+c+d;
|
|
75
|
-
let sumCu = curry(sum);//?
|
|
76
|
-
let suma = sumCu(1)("ss");//?
|
|
77
|
-
let sumb = sumCu(1,"1")(2);//?
|
|
78
|
-
let sumc = sumCu(4);//?
|
|
79
|
-
let sumz = sumCu(1,"b",3)(false);//?
|
|
80
|
-
console.log(suma(2,true));
|
|
81
|
-
console.log(sumb(true));
|
|
82
|
-
console.log(sumc("s",3,false));
|
|
83
|
-
*/
|
|
84
|
-
/**可组合的函数 */
|
|
85
|
-
type CompFunc<T = any, R = any> = (arg: T) => R;
|
|
86
|
-
/**函数组合 从右到左执行 */
|
|
87
|
-
export function compose<T>(...fs: CompFunc<T, T>[]): CompFunc<T, T>;
|
|
88
|
-
export function compose<T, R>(f1: CompFunc<T, R>): CompFunc<T, R>;
|
|
89
|
-
export function compose<T, R, R1>(f2: CompFunc<R, R1>, f1: CompFunc<T, R>): CompFunc<T, R1>;
|
|
90
|
-
export function compose<T, R, R1, R2>(f3: CompFunc<R1, R2>, f2: CompFunc<R, R1>, f1: CompFunc<T, R>): CompFunc<T, R2>;
|
|
91
|
-
export function compose<T, R, R1, R2, R3>(f4: CompFunc<R2, R3>, f3: CompFunc<R1, R2>, f2: CompFunc<R, R1>, f1: CompFunc<T, R>): CompFunc<T, R3>;
|
|
92
|
-
export function compose<T, R, R1, R2, R3, R4>(f5: CompFunc<R3, R4>, f4: CompFunc<R2, R3>, f3: CompFunc<R1, R2>, f2: CompFunc<R, R1>, f1: CompFunc<T, R>): CompFunc<T, R4>;
|
|
93
|
-
/**函数管道 从左到右执行 */
|
|
94
|
-
export function pipeline<T>(...fs: CompFunc<T, T>[]): CompFunc<T, T>;
|
|
95
|
-
export function pipeline<T, R>(f1: CompFunc<T, R>): CompFunc<T, R>;
|
|
96
|
-
export function pipeline<T, R, R1>(f1: CompFunc<T, R>, f2: CompFunc<R, R1>): CompFunc<T, R1>;
|
|
97
|
-
export function pipeline<T, R, R1, R2>(f1: CompFunc<T, R>, f2: CompFunc<R, R1>, f3: CompFunc<R1, R2>): CompFunc<T, R2>;
|
|
98
|
-
export function pipeline<T, R, R1, R2, R3>(f1: CompFunc<T, R>, f2: CompFunc<R, R1>, f3: CompFunc<R1, R2>, f4: CompFunc<R2, R3>): CompFunc<T, R3>;
|
|
99
|
-
export function pipeline<T, R, R1, R2, R3, R4>(f1: CompFunc<T, R>, f2: CompFunc<R, R1>, f3: CompFunc<R1, R2>, f4: CompFunc<R2, R3>, f5: CompFunc<R3, R4>): CompFunc<T, R4>;
|
|
59
|
+
function repeatPromise<T>(procFn: PromiseProcFn<T>, verifyFn?: PromiseVerifyFn<T>, repeatCount?: number, repeatTime?: number): Promise<T | null>;
|
|
100
60
|
/**部分类组合
|
|
101
61
|
* 将mixin的部分字段混入base
|
|
102
62
|
* @param base - 基础类
|
|
103
63
|
* @param mixin - 目标类
|
|
104
64
|
* @param fields - 需要混入的字段
|
|
105
|
-
* @returns
|
|
65
|
+
* @returns 混合完成的类
|
|
106
66
|
*/
|
|
107
|
-
|
|
67
|
+
function composeClassPart<Base extends object, Mixin extends object, Field extends keyof Mixin>(base: Base, mixin: Mixin, ...fields: Field[]): ComposedClassPart<Base, Mixin, Field>;
|
|
108
68
|
/**类组合
|
|
109
69
|
* 将mixinList每个成员的字段混入base
|
|
110
70
|
* @param base - 基础类
|
|
111
71
|
* @param mixinList - 目标类
|
|
112
72
|
* @returns - 混合完成的类
|
|
113
73
|
*/
|
|
114
|
-
|
|
74
|
+
function composeClass<Base extends object, MixinList extends object[]>(base: Base, ...mixinList: MixinList): ComposedClassMult<Base, MixinList>;
|
|
115
75
|
/**对对象的每个属性应用映射函数,并返回一个新的对象。
|
|
116
76
|
* @template T - 对象的类型
|
|
117
77
|
* @param obj - 要处理的对象
|
|
118
78
|
* @param mapper - 映射函数,接受一个值和一个键,返回一个新的值
|
|
119
79
|
* @returns - 一个新的对象,它的属性是原对象的属性经过映射函数处理后的结果
|
|
120
80
|
*/
|
|
121
|
-
|
|
122
|
-
export {};
|
|
81
|
+
function mapEntries<T extends Object>(obj: T, mapper: (key: keyof T, value: T[keyof T]) => T[keyof T]): T;
|
|
123
82
|
}
|