@zwa73/utils 1.0.41 → 1.0.43
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/UtilFileTools.d.ts +1 -1
- package/dist/UtilFileTools.js +4 -3
- package/dist/UtilFunctions.d.ts +2 -0
- package/dist/UtilFunctions.js +6 -0
- package/dist/UtilInterfaces.d.ts +25 -0
- package/package.json +2 -1
- package/src/UtilFileTools.ts +4 -3
- package/src/UtilFunctions.ts +6 -0
- package/src/UtilInterfaces.ts +31 -0
package/dist/UtilFileTools.d.ts
CHANGED
|
@@ -76,7 +76,7 @@ export declare namespace UtilFT {
|
|
|
76
76
|
/**搜索路径符合正则表达式的文件
|
|
77
77
|
* @param folder - 文件夹路径
|
|
78
78
|
* @param traitRegex - 正则表达式
|
|
79
|
-
* @returns {Record<string, string>} 文件名与路径的映射
|
|
79
|
+
* @returns {Record<string, string>} 文件名与路径的映射 Record<fileName,filePath>
|
|
80
80
|
*/
|
|
81
81
|
function fileSearch(folder: string, traitRegex: string): Record<string, string>;
|
|
82
82
|
}
|
package/dist/UtilFileTools.js
CHANGED
|
@@ -5,6 +5,7 @@ const fs = require("fs");
|
|
|
5
5
|
const path = require("path");
|
|
6
6
|
const UtilInterfaces_1 = require("./UtilInterfaces");
|
|
7
7
|
const UtilLogger_1 = require("./UtilLogger");
|
|
8
|
+
const JSON5 = require("json5");
|
|
8
9
|
/**文件工具 */
|
|
9
10
|
var UtilFT;
|
|
10
11
|
(function (UtilFT) {
|
|
@@ -121,7 +122,7 @@ var UtilFT;
|
|
|
121
122
|
return def;
|
|
122
123
|
return {};
|
|
123
124
|
}
|
|
124
|
-
return
|
|
125
|
+
return JSON5.parse(str);
|
|
125
126
|
}
|
|
126
127
|
UtilFT.loadJSONFileSync = loadJSONFileSync;
|
|
127
128
|
async function loadJSONFile(filePath, def) {
|
|
@@ -137,7 +138,7 @@ var UtilFT;
|
|
|
137
138
|
return def;
|
|
138
139
|
return {};
|
|
139
140
|
}
|
|
140
|
-
return
|
|
141
|
+
return JSON5.parse(str);
|
|
141
142
|
}
|
|
142
143
|
UtilFT.loadJSONFile = loadJSONFile;
|
|
143
144
|
/**写入JSON文件
|
|
@@ -167,7 +168,7 @@ var UtilFT;
|
|
|
167
168
|
/**搜索路径符合正则表达式的文件
|
|
168
169
|
* @param folder - 文件夹路径
|
|
169
170
|
* @param traitRegex - 正则表达式
|
|
170
|
-
* @returns {Record<string, string>} 文件名与路径的映射
|
|
171
|
+
* @returns {Record<string, string>} 文件名与路径的映射 Record<fileName,filePath>
|
|
171
172
|
*/
|
|
172
173
|
function fileSearch(folder, traitRegex) {
|
|
173
174
|
let outMap = {};
|
package/dist/UtilFunctions.d.ts
CHANGED
package/dist/UtilFunctions.js
CHANGED
|
@@ -92,4 +92,10 @@ var UtilFunc;
|
|
|
92
92
|
});
|
|
93
93
|
}
|
|
94
94
|
UtilFunc.exec = exec;
|
|
95
|
+
const NeverResolvedPromise = new Promise(() => { });
|
|
96
|
+
/**获得一个永不完成的Promise单例 */
|
|
97
|
+
function getNeverResolvedPromise() {
|
|
98
|
+
return NeverResolvedPromise;
|
|
99
|
+
}
|
|
100
|
+
UtilFunc.getNeverResolvedPromise = getNeverResolvedPromise;
|
|
95
101
|
})(UtilFunc = exports.UtilFunc || (exports.UtilFunc = {}));
|
package/dist/UtilInterfaces.d.ts
CHANGED
|
@@ -30,3 +30,28 @@ export type Inverted<T extends Record<keyof T, string | number | symbol>> = {
|
|
|
30
30
|
};
|
|
31
31
|
/**N长度 T类型的元组 */
|
|
32
32
|
export type FixedLengthTuple<T, N extends number, R extends unknown[] = []> = R['length'] extends N ? R : FixedLengthTuple<T, N, [T, ...R]>;
|
|
33
|
+
/**不影响智能补全的任意字符串
|
|
34
|
+
* (string&Object)
|
|
35
|
+
* (string&String)
|
|
36
|
+
*/
|
|
37
|
+
export type AnyString = (string & {});
|
|
38
|
+
/**创建一个新的类型,这个新的类型包含了基础类型 B 的所有属性,
|
|
39
|
+
* 以及一个名为 K[N] 类型为 T 的新属性。
|
|
40
|
+
* 所有 K 中非 K[N] 的其他属性都是可选的并且不能被赋值(因为它们的类型是 never)。
|
|
41
|
+
*/
|
|
42
|
+
type ExclusiveSub<B, T, K extends string[], N extends number> = B & {
|
|
43
|
+
[P in K[N]]: T;
|
|
44
|
+
} & {
|
|
45
|
+
[P in Exclude<K[number], K[N]>]?: never;
|
|
46
|
+
};
|
|
47
|
+
/**递归地创建一个元组类型, 所有成员类型都有一个 K[number] 键 并且与其他成员互斥
|
|
48
|
+
* 这个元组类型的每个元素都是通过 ExclusiveSub 类型创建的。
|
|
49
|
+
*/
|
|
50
|
+
type ExclusiveRecursive<B, T, K extends string[], R extends unknown[] = []> = R['length'] extends K['length'] ? R : ExclusiveRecursive<B, T, K, [ExclusiveSub<B, T, K, R['length']>, ...R]>;
|
|
51
|
+
/**互斥表
|
|
52
|
+
* 从 ExclusiveRecursive 类型创建的元组中创建一个或类型, 可以是任意一个元组元素类型
|
|
53
|
+
*/
|
|
54
|
+
export type ExclusiveRecord<B, T, K extends string[], TMP = ExclusiveRecursive<B, T, K>> = TMP[keyof TMP];
|
|
55
|
+
/**符合JObject约束的互斥表 */
|
|
56
|
+
export type ExclusiveJObject<B extends JObject, T extends JToken, K extends string[], TMP extends JArray = ExclusiveRecursive<B, T, K>> = TMP[number];
|
|
57
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zwa73/utils",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.43",
|
|
4
4
|
"description": "my utils",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"html-entities": "^2.3.3",
|
|
20
20
|
"http-proxy-agent": "^5.0.0",
|
|
21
21
|
"https-proxy-agent": "^5.0.1",
|
|
22
|
+
"json5": "^2.2.3",
|
|
22
23
|
"tiktoken": "^1.0.7",
|
|
23
24
|
"winston": "^3.10.0",
|
|
24
25
|
"winston-daily-rotate-file": "^4.7.1"
|
package/src/UtilFileTools.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as fs from "fs";
|
|
|
2
2
|
import * as path from "path";
|
|
3
3
|
import { JObject, JToken, stringifyJToken } from "./UtilInterfaces";
|
|
4
4
|
import { SLogger } from "./UtilLogger";
|
|
5
|
+
import * as JSON5 from 'json5';
|
|
5
6
|
|
|
6
7
|
/**文件工具 */
|
|
7
8
|
export namespace UtilFT{
|
|
@@ -134,7 +135,7 @@ export function loadJSONFileSync<T extends JToken>(filePath: string,def?: T): T
|
|
|
134
135
|
return def;
|
|
135
136
|
return {} as T;
|
|
136
137
|
}
|
|
137
|
-
return
|
|
138
|
+
return JSON5.parse(str);
|
|
138
139
|
}
|
|
139
140
|
|
|
140
141
|
/**加载json文件 异步
|
|
@@ -167,7 +168,7 @@ export async function loadJSONFile<T extends JToken>(filePath: string,def?: T):
|
|
|
167
168
|
return def;
|
|
168
169
|
return {} as T;
|
|
169
170
|
}
|
|
170
|
-
return
|
|
171
|
+
return JSON5.parse(str);
|
|
171
172
|
}
|
|
172
173
|
|
|
173
174
|
/**写入JSON文件
|
|
@@ -200,7 +201,7 @@ export async function writeJSONFile(
|
|
|
200
201
|
/**搜索路径符合正则表达式的文件
|
|
201
202
|
* @param folder - 文件夹路径
|
|
202
203
|
* @param traitRegex - 正则表达式
|
|
203
|
-
* @returns {Record<string, string>} 文件名与路径的映射
|
|
204
|
+
* @returns {Record<string, string>} 文件名与路径的映射 Record<fileName,filePath>
|
|
204
205
|
*/
|
|
205
206
|
export function fileSearch(folder: string, traitRegex: string) {
|
|
206
207
|
let outMap: Record<string, string> = {};
|
package/src/UtilFunctions.ts
CHANGED
|
@@ -91,5 +91,11 @@ export function exec(command: string) {
|
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
+
const NeverResolvedPromise = new Promise(()=>{});
|
|
95
|
+
/**获得一个永不完成的Promise单例 */
|
|
96
|
+
export function getNeverResolvedPromise<T>():Promise<T>{
|
|
97
|
+
return NeverResolvedPromise as Promise<T>;
|
|
98
|
+
}
|
|
99
|
+
|
|
94
100
|
}
|
|
95
101
|
|
package/src/UtilInterfaces.ts
CHANGED
|
@@ -39,3 +39,34 @@ export type Inverted<T extends Record<keyof T, string | number | symbol>> = {
|
|
|
39
39
|
export type FixedLengthTuple<T, N extends number, R extends unknown[] = []> =
|
|
40
40
|
R['length'] extends N ? R : FixedLengthTuple<T, N, [T, ...R]>;
|
|
41
41
|
|
|
42
|
+
|
|
43
|
+
/**不影响智能补全的任意字符串
|
|
44
|
+
* (string&Object)
|
|
45
|
+
* (string&String)
|
|
46
|
+
*/
|
|
47
|
+
export type AnyString = (string&{});
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
/**创建一个新的类型,这个新的类型包含了基础类型 B 的所有属性,
|
|
52
|
+
* 以及一个名为 K[N] 类型为 T 的新属性。
|
|
53
|
+
* 所有 K 中非 K[N] 的其他属性都是可选的并且不能被赋值(因为它们的类型是 never)。
|
|
54
|
+
*/
|
|
55
|
+
type ExclusiveSub<B, T, K extends string[], N extends number> =
|
|
56
|
+
B & { [P in K[N]]: T } & { [P in Exclude<K[number], K[N]>]?: never };
|
|
57
|
+
|
|
58
|
+
/**递归地创建一个元组类型, 所有成员类型都有一个 K[number] 键 并且与其他成员互斥
|
|
59
|
+
* 这个元组类型的每个元素都是通过 ExclusiveSub 类型创建的。
|
|
60
|
+
*/
|
|
61
|
+
type ExclusiveRecursive<B, T, K extends string[], R extends unknown[] = []> =
|
|
62
|
+
R['length'] extends K['length'] ? R
|
|
63
|
+
: ExclusiveRecursive<B, T, K, [ExclusiveSub<B, T, K, R['length']>, ...R]>;
|
|
64
|
+
|
|
65
|
+
/**互斥表
|
|
66
|
+
* 从 ExclusiveRecursive 类型创建的元组中创建一个或类型, 可以是任意一个元组元素类型
|
|
67
|
+
*/
|
|
68
|
+
export type ExclusiveRecord<B, T, K extends string[], TMP = ExclusiveRecursive<B, T, K>> = TMP[keyof TMP];
|
|
69
|
+
|
|
70
|
+
/**符合JObject约束的互斥表 */
|
|
71
|
+
export type ExclusiveJObject<B extends JObject,T extends JToken,K extends string[],
|
|
72
|
+
TMP extends JArray = ExclusiveRecursive<B,T,K>> = TMP[number];
|