@zwa73/utils 1.0.80 → 1.0.82
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/compile.bat +2 -0
- package/dist/QuickFunction.d.ts +2 -15
- package/dist/QuickFunction.js +21 -19
- package/dist/UtilCodecs.js +1 -1
- package/dist/UtilCom.js +1 -1
- package/dist/UtilDecorators.d.ts +1 -1
- package/dist/UtilDecorators.js +4 -3
- package/dist/UtilFP.js +1 -1
- package/dist/UtilFileTools.js +1 -1
- package/dist/UtilFunctions.d.ts +65 -18
- package/dist/UtilFunctions.js +141 -29
- package/dist/UtilInterfaces.d.ts +18 -13
- package/dist/UtilSymbol.d.ts +29 -10
- package/dist/UtilSymbol.js +22 -9
- package/jest.config.js +16 -0
- package/package.json +12 -5
- package/release.bat +3 -4
- package/{postinstall.js → scripts/postinstall.js} +2 -2
- package/src/QuickFunction.ts +47 -28
- package/src/UtilDecorators.ts +3 -1
- package/src/UtilFunctions.ts +183 -44
- package/src/UtilInterfaces.ts +44 -11
- package/src/UtilSymbol.ts +35 -11
- package/test.bat +1 -1
- package/tsconfig.compile.json +4 -0
- package/tsconfig.json +3 -2
- package/watch.bat +1 -0
- package/backup/package - 1.json +0 -26
- package/dist/test/composeTest.d.ts +0 -78
- package/dist/test/composeTest.js +0 -95
- package/dist/test/importtest.d.ts +0 -1
- package/dist/test/importtest.js +0 -4
- package/dist/test/repeatTest.d.ts +0 -1
- package/dist/test/repeatTest.js +0 -29
- package/dist/test/test.d.ts +0 -1
- package/dist/test/test.js +0 -139
- package/dist/test/test2.d.ts +0 -1
- package/dist/test/test2.js +0 -35
- package/req_test/cjsRmjs.bat +0 -2
- package/req_test/cjsRmjs.cjs +0 -3
- package/req_test/mjsRcjs.bat +0 -2
- package/req_test/mjsRcjs.mjs +0 -3
- package/req_test/req.cjs +0 -7
- package/req_test/req.mjs +0 -3
- package/src/test/composeTest.ts +0 -134
- package/src/test/importtest.ts +0 -5
- package/src/test/repeatTest.ts +0 -29
- package/src/test/test.ts +0 -167
- package/src/test/test2.ts +0 -39
- package/test/test.bat +0 -2
- package/test/test.js +0 -37
- package/test.js +0 -53
- package/testAndCompile.bat +0 -4
- package/tsCompile.bat +0 -3
- package/tsCompileWatch.bat +0 -2
package/src/test/test.ts
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import { UtilFP } from "@src/UtilFP";
|
|
2
|
-
import { UtilFunc } from "@src/UtilFunctions";
|
|
3
|
-
import { ComposedClass, FixedLengthTuple, FuncPropNames } from "@src/UtilInterfaces";
|
|
4
|
-
import { ComposedFullClassMult, composeClassFull } from "@src/backup";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
// 使用示例
|
|
8
|
-
class Monster{
|
|
9
|
-
constructor(a:number){}
|
|
10
|
-
monfunc(){
|
|
11
|
-
return "mon"
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
class Monster1{
|
|
15
|
-
constructor(a:number){}
|
|
16
|
-
m1num=123;
|
|
17
|
-
monfunc1(){
|
|
18
|
-
return "mon1"
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
type OtherMonster = ComposedFullClassMult<{
|
|
22
|
-
om:string
|
|
23
|
-
mon:Monster
|
|
24
|
-
},[Monster,Monster1]>
|
|
25
|
-
const OtherMonster = {
|
|
26
|
-
init(){
|
|
27
|
-
let mon = new Monster(123);
|
|
28
|
-
let mon1 = new Monster1(223);
|
|
29
|
-
let om = {
|
|
30
|
-
om:"123",mon
|
|
31
|
-
}
|
|
32
|
-
return composeClassFull(om,mon,mon1);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
let om = OtherMonster.init();//?
|
|
37
|
-
om.monfunc();//?
|
|
38
|
-
om.monfunc1();//?
|
|
39
|
-
om.m1num//?
|
|
40
|
-
|
|
41
|
-
type ExtData = {
|
|
42
|
-
攻击 : number;
|
|
43
|
-
生命 : number;
|
|
44
|
-
防御 : number;
|
|
45
|
-
暴击 : number;
|
|
46
|
-
暴击伤害 : number;
|
|
47
|
-
攻击加成 : number;
|
|
48
|
-
生命加成 : number;
|
|
49
|
-
防御加成 : number;
|
|
50
|
-
};
|
|
51
|
-
const BASE_MAX = { 攻击: 24, 生命: 54, 防御: 16, 暴击: 5, 暴击伤害: 5, 攻击加成: 3.8, 生命加成: 3.8, 防御加成: 3.8 }
|
|
52
|
-
const 精调前 = [
|
|
53
|
-
{ 攻击 : 17, 生命: 0 , 防御: 0 , 暴击: 0 , 暴击伤害: 3.5 , 攻击加成: 3.0, 生命加成: 0, 防御加成: 3.4 } , // 霰弹 专用消焰器
|
|
54
|
-
{ 攻击 : 19, 生命: 0 , 防御: 0 , 暴击: 4.5 , 暴击伤害: 4.5 , 攻击加成: 3.4, 生命加成: 0, 防御加成: 0 } , // 霰弹 专用消音器
|
|
55
|
-
{ 攻击 : 21, 生命: 0 , 防御: 10 , 暴击: 0 , 暴击伤害: 0 , 攻击加成: 3.8, 生命加成: 0, 防御加成: 3.0 } , // 机枪 重型制退器
|
|
56
|
-
{ 攻击 : 17, 生命: 48 , 防御: 14 , 暴击: 0 , 暴击伤害: 0 , 攻击加成: 2.6, 生命加成: 0, 防御加成: 0 } , // 冲锋 消焰器攻击头
|
|
57
|
-
{ 攻击 : 23, 生命: 0 , 防御: 0 , 暴击: 5 , 暴击伤害: 0 , 攻击加成: 3.4, 生命加成: 0, 防御加成: 0 } , // 狙击 异位打击 快拆战术手电
|
|
58
|
-
{ 攻击 : 17, 生命: 53 , 防御: 0 , 暴击: 0 , 暴击伤害: 0 , 攻击加成: 3.4, 生命加成: 0, 防御加成: 0 } , // 霰弹 减伤支援 钢化铆钉
|
|
59
|
-
{ 攻击 : 21, 生命: 0 , 防御: 0 , 暴击: 3.5 , 暴击伤害: 0 , 攻击加成: 3.0, 生命加成: 0, 防御加成: 0 } , // 冲锋 异位打击 内瞄式红点
|
|
60
|
-
{ 攻击 : 17, 生命: 0 , 防御: 3.8, 暴击: 0 , 暴击伤害: 0 , 攻击加成: 2.6, 生命加成: 0, 防御加成: 0 } , // 机枪 双重对策 镭射插件
|
|
61
|
-
{ 攻击 : 19, 生命: 38 , 防御: 0 , 暴击: 0 , 暴击伤害: 0 , 攻击加成: 3.4, 生命加成: 0, 防御加成: 0 } , // 机枪 双重对策 折叠脚架
|
|
62
|
-
] as const;
|
|
63
|
-
const 精调后 = [
|
|
64
|
-
{ 攻击 : 26, 生命: 0 , 防御: 0 , 暴击: 0 , 暴击伤害: 8.1 , 攻击加成: 7.5, 生命加成: 0, 防御加成: 5.8 } , // 霰弹 专用消焰器
|
|
65
|
-
{ 攻击 : 31, 生命: 0 , 防御: 0 , 暴击: 10.4, 暴击伤害: 10.4, 攻击加成: 7.5, 生命加成: 0, 防御加成: 0 } , // 霰弹 专用消音器
|
|
66
|
-
{ 攻击 : 49, 生命: 0 , 防御: 17 , 暴击: 0 , 暴击伤害: 0 , 攻击加成: 7.6, 生命加成: 0, 防御加成: 6.9 } , // 机枪 重型制退器
|
|
67
|
-
{ 攻击 : 46, 生命: 116, 防御: 27 , 暴击: 0 , 暴击伤害: 0 , 攻击加成: 5.0, 生命加成: 0, 防御加成: 0 } , // 冲锋 消焰器攻击头
|
|
68
|
-
{ 攻击 : 42, 生命: 0 , 防御: 0 , 暴击: 11.5, 暴击伤害: 0 , 攻击加成: 6.8, 生命加成: 0, 防御加成: 0 } , // 狙击 异位打击 快拆战术
|
|
69
|
-
{ 攻击 : 34, 生命: 101, 防御: 0 , 暴击: 0 , 暴击伤害: 0 , 攻击加成: 6.5, 生命加成: 0, 防御加成: 0 } , // 霰弹 减伤支援 钢化铆钉
|
|
70
|
-
{ 攻击 : 38, 生命: 0 , 防御: 0 , 暴击: 8.4 , 暴击伤害: 0 , 攻击加成: 4.8, 生命加成: 0, 防御加成: 0 } , // 冲锋 异位打击 内瞄式红
|
|
71
|
-
{ 攻击 : 43, 生命: 0 , 防御: 8.0, 暴击: 0 , 暴击伤害: 0 , 攻击加成: 7.3, 生命加成: 0, 防御加成: 0 } , // 机枪 双重对策 镭射插件
|
|
72
|
-
{ 攻击 : 42, 生命: 54 , 防御: 0 , 暴击: 0 , 暴击伤害: 0 , 攻击加成: 6.2, 生命加成: 0, 防御加成: 0 } , // 机枪 双重对策 折叠脚架
|
|
73
|
-
] as const;
|
|
74
|
-
const Pointify = (ed:ExtData)=>
|
|
75
|
-
UtilFunc.mapEntries(ed,(k,v)=> v ? v / BASE_MAX[k] : 0 );
|
|
76
|
-
const Sump = (ed:ExtData)=> Object.values(ed).reduce((r,v)=>r+v);
|
|
77
|
-
const pipeFunc = UtilFP.flow(Pointify,Sump);
|
|
78
|
-
const Display = (list:number[])=>list.reduce((r,v)=>`${r}\t${v.toFixed(2)}`,"").trim();
|
|
79
|
-
const pre = 精调前.map((v)=>pipeFunc(v));
|
|
80
|
-
const aft = 精调后.map((v)=>pipeFunc(v));
|
|
81
|
-
const div = pre.map((dv,i)=>aft[i]/dv);
|
|
82
|
-
Display(pre)//?
|
|
83
|
-
Display(aft)//?
|
|
84
|
-
Display(div)//?
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
interface obja {
|
|
88
|
-
a: number;
|
|
89
|
-
}
|
|
90
|
-
// 定义一个函数,它将作为构造函数
|
|
91
|
-
function MyObject() {
|
|
92
|
-
// @ts-ignore
|
|
93
|
-
this.a = 123;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
let asloop = [
|
|
98
|
-
{
|
|
99
|
-
type:"effect_of_condition",
|
|
100
|
-
id:"loop",
|
|
101
|
-
effect:[
|
|
102
|
-
{if:{math:["i",">","0"]},
|
|
103
|
-
then:[
|
|
104
|
-
{u_message:"hello world"},
|
|
105
|
-
{math:["i","-=","1"]},
|
|
106
|
-
{run_eocs:"loop"},
|
|
107
|
-
]}
|
|
108
|
-
]
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
type:"effect_of_condition",
|
|
112
|
-
id:"main",
|
|
113
|
-
effect:[
|
|
114
|
-
{math:["i","=","10"]},
|
|
115
|
-
{run_eocs:"loop"}
|
|
116
|
-
]
|
|
117
|
-
}
|
|
118
|
-
]
|
|
119
|
-
let asaloop = [
|
|
120
|
-
{
|
|
121
|
-
type:"effect_of_condition",
|
|
122
|
-
id:"loop",
|
|
123
|
-
effect:[
|
|
124
|
-
{u_message:"hello world"}
|
|
125
|
-
]
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
type:"effect_of_condition",
|
|
129
|
-
id:"main",
|
|
130
|
-
effect:[
|
|
131
|
-
{
|
|
132
|
-
run_eoc_with:"efl",
|
|
133
|
-
variables:{
|
|
134
|
-
i:"0",
|
|
135
|
-
length:"10",
|
|
136
|
-
eoc:"loop"
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
]
|
|
140
|
-
}
|
|
141
|
-
]
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
const testa = {
|
|
145
|
-
_a: 123
|
|
146
|
-
}
|
|
147
|
-
Object.defineProperty(testa, 'a', {
|
|
148
|
-
get: () =>1,
|
|
149
|
-
set: function(value) {
|
|
150
|
-
console.log('Set:', value);
|
|
151
|
-
},
|
|
152
|
-
enumerable: true
|
|
153
|
-
});
|
|
154
|
-
Object.defineProperty(testa, 'c', {
|
|
155
|
-
value: 123,
|
|
156
|
-
writable: true,
|
|
157
|
-
enumerable: true,
|
|
158
|
-
configurable: true
|
|
159
|
-
});
|
|
160
|
-
testa.constructor.prototype//?
|
|
161
|
-
testa//?
|
|
162
|
-
let testkeys:any = [];
|
|
163
|
-
for(let k in testa)
|
|
164
|
-
testkeys.push(k)
|
|
165
|
-
testkeys//?
|
|
166
|
-
|
|
167
|
-
const a = "123";
|
package/src/test/test2.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import * as fs from "fs";
|
|
2
|
-
import * as path from "path";
|
|
3
|
-
import { UtilFT } from "@src/UtilFileTools";
|
|
4
|
-
|
|
5
|
-
// 将字符串转换为十六进制
|
|
6
|
-
function stringToHex(str:string) {
|
|
7
|
-
const buf = Buffer.from(str, 'utf8');
|
|
8
|
-
return buf.toString('hex');
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
// 将十六进制转换为字符串
|
|
12
|
-
function hexToString(hex:string) {
|
|
13
|
-
const buf = Buffer.from(hex, 'hex');
|
|
14
|
-
return buf.toString('utf8');
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
// 示例
|
|
18
|
-
let str = "Hello World";
|
|
19
|
-
let hex = "0B0000002D";
|
|
20
|
-
|
|
21
|
-
console.log(stringToHex(str)); // 输出字符串对应的十六进制
|
|
22
|
-
console.log(hexToString(hex)); // 输出十六进制对应的字符串
|
|
23
|
-
hexToString("556E6974794653")//?
|
|
24
|
-
/**
|
|
25
|
-
首先我有一个文件夹./in
|
|
26
|
-
我在里面存放了一些整合加密的二进制文件,文件名符合正则/.*\.bk/
|
|
27
|
-
我需要你帮我写解密程序,将其解密并分离为单独的文件,接下来我告诉你解密方式:
|
|
28
|
-
读取文件后,我们先用split(hexToString(hex))对文本进行分割成多块,然后在每一块找到第二个"UnityFS",
|
|
29
|
-
再从第二个UnityFS的开头截取到每一块的末尾
|
|
30
|
-
我举一个例子,假设我们有一段分割完成的文本块 "112233 UnityFS sasasd UnityFS我需要的内容"
|
|
31
|
-
那么它截取完成之后应该是"UnityFS我需要的内容"
|
|
32
|
-
最后,我们在将所有截取完成的文本块作为文件输出到./out/{filename}
|
|
33
|
-
文件名就是 {原文件名+块编号.bs}
|
|
34
|
-
开始写吧
|
|
35
|
-
**/
|
|
36
|
-
path.parse("123.bs").name;//?
|
|
37
|
-
|
|
38
|
-
let filepath = "F:\\Sosarciel\\SosarcielCore\\NodeJs\\utils\\src"
|
|
39
|
-
UtilFT.fileSearchGlob(`${filepath}/**/*.ts`,"**/test/**/*.ts");//?
|
package/test/test.bat
DELETED
package/test/test.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
const { Completed, Failed, PromiseStat, PromiseVerifyFn, UtilFunc } = require("../dist");
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
let timeList = [21000,5000,1000000]
|
|
5
|
-
let resList = ["Success","Failure","Failure"]
|
|
6
|
-
let index = 0;
|
|
7
|
-
// 模拟的异步函数,有一定几率失败
|
|
8
|
-
async function mockAsyncFunction() {
|
|
9
|
-
return new Promise((resolve, reject) => {
|
|
10
|
-
|
|
11
|
-
let delay =timeList[index];
|
|
12
|
-
let result = resList[index];
|
|
13
|
-
console.log("延迟: "+delay,"结果: "+result)
|
|
14
|
-
setTimeout(() => {
|
|
15
|
-
resolve(result);
|
|
16
|
-
}, delay);
|
|
17
|
-
index++;
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// 验证函数,只有当结果为 "Success" 时才认为成功
|
|
22
|
-
function mockVerifyFunction(result) {
|
|
23
|
-
return result === "Success" ? Completed : Failed;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// 测试 repeatPromise 函数
|
|
27
|
-
UtilFunc.repeatPromise(mockAsyncFunction, mockVerifyFunction, 3, 10)
|
|
28
|
-
.then(result => {
|
|
29
|
-
if (result === null) {
|
|
30
|
-
console.log("全部超时");
|
|
31
|
-
} else {
|
|
32
|
-
console.log("成功:", result);
|
|
33
|
-
}
|
|
34
|
-
})
|
|
35
|
-
.catch(err => {
|
|
36
|
-
console.error("出现错误", err);
|
|
37
|
-
});
|
package/test.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
let {SList,SHashMap,SEntry,SFfmpegTool,fileSearch,sleep,SLogger} = require('./dist');
|
|
2
|
-
|
|
3
|
-
let slist = new SList([1,2,3,3,4,5,6]);
|
|
4
|
-
slist.each(val => console.log(val));
|
|
5
|
-
for(let v of slist)
|
|
6
|
-
console.log(v)
|
|
7
|
-
|
|
8
|
-
let map = new SHashMap();
|
|
9
|
-
map.put("123",456)
|
|
10
|
-
map.put("789",111)
|
|
11
|
-
for(let {key,value} of map)
|
|
12
|
-
console.log(key,value)
|
|
13
|
-
|
|
14
|
-
//SFfmpegTool.setFfmpegPath("E:/系统工具/ffmpeg-master-latest-win64-gpl/bin/ffmpeg.exe");
|
|
15
|
-
async function main(){
|
|
16
|
-
//SFfmpegTool.setFfmpegPath("E:/系统工具/ffmpeg-master-latest-win64-gpl/bin/ffmpeg.exe");
|
|
17
|
-
//console.log(111111111111)
|
|
18
|
-
let timelog = SLogger.time("timetest0")
|
|
19
|
-
timelog[0]=process.hrtime()[0]-1000;
|
|
20
|
-
SLogger.timeEnd("timetest0")
|
|
21
|
-
SLogger.time("timetest")
|
|
22
|
-
let data = await SFfmpegTool.getAudioMetaData("input.wav");
|
|
23
|
-
//console.log(22)
|
|
24
|
-
console.log(data);
|
|
25
|
-
//
|
|
26
|
-
//let fileMap = fileSearch("F:/Sosarciel/SoulTide-Collection-VITS-TrainingSet/TrainingSet/Akaset/sliced_audio",'.*\\.wav');
|
|
27
|
-
//let ioMap = {};
|
|
28
|
-
//for(let key in fileMap){
|
|
29
|
-
// let value = fileMap[key];
|
|
30
|
-
// ioMap[value] = "./test/"+key;
|
|
31
|
-
//}
|
|
32
|
-
//console.log(ioMap)
|
|
33
|
-
//await SFfmpegTool.resampleMP(ioMap)
|
|
34
|
-
await sleep(2000);
|
|
35
|
-
SLogger.timeEnd("timetest")
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
main();
|
|
39
|
-
let a= {a:1};
|
|
40
|
-
SLogger.createLogger("default","silly","./testlog","silly")
|
|
41
|
-
//SLogger.createLogger("default","silly");
|
|
42
|
-
SLogger.fatal('This is an fatal message');
|
|
43
|
-
SLogger.error('This is an error message');
|
|
44
|
-
SLogger.warn('This is a warning message');
|
|
45
|
-
SLogger.info('This is an info message');
|
|
46
|
-
SLogger.http('This is an http message');
|
|
47
|
-
SLogger.verbose('This is a verbose message');
|
|
48
|
-
SLogger.debug('This is a debug message');
|
|
49
|
-
SLogger.silly('This is a silly message');
|
|
50
|
-
|
|
51
|
-
SLogger.fatal('This is an info message',123,true);
|
|
52
|
-
SLogger.info({a:"1111111111111111111111111111111111111111111111111111111111111111111111111111111\n11111"});
|
|
53
|
-
|
package/testAndCompile.bat
DELETED
package/tsCompile.bat
DELETED
package/tsCompileWatch.bat
DELETED