skyeye-sdk-js 1.4.4 → 1.4.6
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/src/SkyEyeClient.d.ts +1 -0
- package/dist/src/SkyEyeClient.js +61 -11
- package/package.json +1 -1
- package/src/SkyEyeClient.ts +58 -14
|
@@ -24,6 +24,7 @@ export declare class SkyEyeClient extends JSONTransmissionClient {
|
|
|
24
24
|
RunTestcase(json: string): Promise<any>;
|
|
25
25
|
Monitor(json: string): Promise<any>;
|
|
26
26
|
call(request: JSONRequest): Promise<any>;
|
|
27
|
+
callTimeout(request: JSONRequest, timeout: number): Promise<any>;
|
|
27
28
|
private printRequestLog;
|
|
28
29
|
private printResponseLog;
|
|
29
30
|
runScriptRequest(filename: string): Promise<any>;
|
package/dist/src/SkyEyeClient.js
CHANGED
|
@@ -146,6 +146,39 @@ class SkyEyeClient extends skyeye_rpc_grpc_pb_1.JSONTransmissionClient {
|
|
|
146
146
|
// console.log("res:",res)
|
|
147
147
|
const ackObj = JSON.parse(response.toString()).ack;
|
|
148
148
|
// this.printResponseLog(ackObj)
|
|
149
|
+
if (ackObj.result === 'false')
|
|
150
|
+
ackObj.result = false;
|
|
151
|
+
return ackObj;
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
// console.error("Error during gRPC request:", JSON.stringify(request));
|
|
155
|
+
// console.error("Error during gRPC call:", error);
|
|
156
|
+
throw error;
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
callTimeout(request, timeout) {
|
|
161
|
+
const _super = Object.create(null, {
|
|
162
|
+
callSkyEye: { get: () => super.callSkyEye }
|
|
163
|
+
});
|
|
164
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
165
|
+
try {
|
|
166
|
+
// this.printRequestLog(request)
|
|
167
|
+
const deadline = new Date(Date.now() + timeout * 1000); // 设置5秒超时
|
|
168
|
+
const response = yield new Promise((resolve, reject) => {
|
|
169
|
+
_super.callSkyEye.call(this, request, (error, response) => {
|
|
170
|
+
if (error) {
|
|
171
|
+
reject(error);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
resolve(response);
|
|
175
|
+
}
|
|
176
|
+
}, { deadline });
|
|
177
|
+
});
|
|
178
|
+
// const res = JSON.parse(response.toString());
|
|
179
|
+
// console.log("res:",res)
|
|
180
|
+
const ackObj = JSON.parse(response.toString()).ack;
|
|
181
|
+
// this.printResponseLog(ackObj)
|
|
149
182
|
return ackObj;
|
|
150
183
|
}
|
|
151
184
|
catch (error) {
|
|
@@ -209,9 +242,14 @@ class SkyEyeClient extends skyeye_rpc_grpc_pb_1.JSONTransmissionClient {
|
|
|
209
242
|
quitCommand() {
|
|
210
243
|
return __awaiter(this, void 0, void 0, function* () {
|
|
211
244
|
try {
|
|
212
|
-
return yield this.
|
|
245
|
+
return yield this.callTimeout(RequestFactory_1.RequestFactory.getInstance().quitCommand(), 2);
|
|
213
246
|
}
|
|
214
247
|
catch (error) {
|
|
248
|
+
// 无法连接,杀死进程
|
|
249
|
+
if (this.childProcess) {
|
|
250
|
+
console.log('Terminating SkyEye child process...');
|
|
251
|
+
this.childProcess.kill();
|
|
252
|
+
}
|
|
215
253
|
console.error("Error during quitCommand:", error);
|
|
216
254
|
throw error;
|
|
217
255
|
}
|
|
@@ -1059,10 +1097,22 @@ class SkyEyeClient extends skyeye_rpc_grpc_pb_1.JSONTransmissionClient {
|
|
|
1059
1097
|
try {
|
|
1060
1098
|
console.log('runExample');
|
|
1061
1099
|
this.childProcess = yield this.startSkyEye(port, skyeyeDir);
|
|
1100
|
+
let response;
|
|
1101
|
+
let ackObj;
|
|
1062
1102
|
yield this.checkState();
|
|
1063
1103
|
yield this.checkModule();
|
|
1064
|
-
yield this.setWorkingDirectory(pathSkyEye, port);
|
|
1065
|
-
|
|
1104
|
+
response = yield this.setWorkingDirectory(pathSkyEye, port);
|
|
1105
|
+
ackObj = JSON.parse(response.toString()).ack;
|
|
1106
|
+
if (ackObj.result === "false") {
|
|
1107
|
+
ackObj.result = false;
|
|
1108
|
+
throw new Error(ackObj.error);
|
|
1109
|
+
}
|
|
1110
|
+
response = yield this.runScript(fileName, port);
|
|
1111
|
+
ackObj = JSON.parse(response.toString()).ack;
|
|
1112
|
+
if (ackObj.result === "false") {
|
|
1113
|
+
ackObj.result = false;
|
|
1114
|
+
throw new Error(ackObj.error);
|
|
1115
|
+
}
|
|
1066
1116
|
return true;
|
|
1067
1117
|
}
|
|
1068
1118
|
catch (error) {
|
|
@@ -1078,13 +1128,13 @@ class SkyEyeClient extends skyeye_rpc_grpc_pb_1.JSONTransmissionClient {
|
|
|
1078
1128
|
checkModule() {
|
|
1079
1129
|
return new Promise((resolve, reject) => {
|
|
1080
1130
|
let flag = true;
|
|
1081
|
-
const checkInterval =
|
|
1082
|
-
const timeout =
|
|
1131
|
+
const checkInterval = 100;
|
|
1132
|
+
const timeout = 300000;
|
|
1083
1133
|
const startTime = Date.now();
|
|
1084
1134
|
const check = () => {
|
|
1085
1135
|
const elapsedTime = Date.now() - startTime;
|
|
1086
1136
|
if (elapsedTime >= timeout) {
|
|
1087
|
-
reject(new Error("Timeout: State check exceeded
|
|
1137
|
+
reject(new Error("Timeout: State check exceeded 300 seconds"));
|
|
1088
1138
|
return;
|
|
1089
1139
|
}
|
|
1090
1140
|
if (!flag) {
|
|
@@ -1111,13 +1161,13 @@ class SkyEyeClient extends skyeye_rpc_grpc_pb_1.JSONTransmissionClient {
|
|
|
1111
1161
|
checkState() {
|
|
1112
1162
|
return new Promise((resolve, reject) => {
|
|
1113
1163
|
let flag = true;
|
|
1114
|
-
const checkInterval =
|
|
1115
|
-
const timeout =
|
|
1164
|
+
const checkInterval = 100;
|
|
1165
|
+
const timeout = 300000;
|
|
1116
1166
|
const startTime = Date.now();
|
|
1117
1167
|
const check = () => {
|
|
1118
1168
|
const elapsedTime = Date.now() - startTime;
|
|
1119
1169
|
if (elapsedTime >= timeout) {
|
|
1120
|
-
reject(new Error("Timeout: State check exceeded
|
|
1170
|
+
reject(new Error("Timeout: State check exceeded 300 seconds"));
|
|
1121
1171
|
return;
|
|
1122
1172
|
}
|
|
1123
1173
|
if (!flag) {
|
|
@@ -1173,7 +1223,7 @@ class SkyEyeClient extends skyeye_rpc_grpc_pb_1.JSONTransmissionClient {
|
|
|
1173
1223
|
}
|
|
1174
1224
|
else {
|
|
1175
1225
|
console.log("chdir res:", response);
|
|
1176
|
-
resolve();
|
|
1226
|
+
resolve(response);
|
|
1177
1227
|
}
|
|
1178
1228
|
});
|
|
1179
1229
|
});
|
|
@@ -1190,7 +1240,7 @@ class SkyEyeClient extends skyeye_rpc_grpc_pb_1.JSONTransmissionClient {
|
|
|
1190
1240
|
}
|
|
1191
1241
|
else {
|
|
1192
1242
|
console.log("run_script res:", response);
|
|
1193
|
-
resolve();
|
|
1243
|
+
resolve(response);
|
|
1194
1244
|
}
|
|
1195
1245
|
});
|
|
1196
1246
|
});
|
package/package.json
CHANGED
package/src/SkyEyeClient.ts
CHANGED
|
@@ -111,6 +111,32 @@ export class SkyEyeClient extends JSONTransmissionClient {
|
|
|
111
111
|
// console.log("res:",res)
|
|
112
112
|
const ackObj = JSON.parse(response.toString()).ack;
|
|
113
113
|
// this.printResponseLog(ackObj)
|
|
114
|
+
if (ackObj.result === 'false') ackObj.result = false
|
|
115
|
+
return ackObj;
|
|
116
|
+
} catch (error) {
|
|
117
|
+
// console.error("Error during gRPC request:", JSON.stringify(request));
|
|
118
|
+
// console.error("Error during gRPC call:", error);
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
public async callTimeout(request: JSONRequest, timeout:number) {
|
|
124
|
+
try {
|
|
125
|
+
// this.printRequestLog(request)
|
|
126
|
+
const deadline = new Date(Date.now() + timeout * 1000); // 设置5秒超时
|
|
127
|
+
const response = await new Promise<JSONResponse>((resolve, reject) => {
|
|
128
|
+
super.callSkyEye(request, (error: grpc.ServiceError | null, response: JSONResponse) => {
|
|
129
|
+
if (error) {
|
|
130
|
+
reject(error);
|
|
131
|
+
} else {
|
|
132
|
+
resolve(response);
|
|
133
|
+
}
|
|
134
|
+
},{deadline});
|
|
135
|
+
});
|
|
136
|
+
// const res = JSON.parse(response.toString());
|
|
137
|
+
// console.log("res:",res)
|
|
138
|
+
const ackObj = JSON.parse(response.toString()).ack;
|
|
139
|
+
// this.printResponseLog(ackObj)
|
|
114
140
|
return ackObj;
|
|
115
141
|
} catch (error) {
|
|
116
142
|
// console.error("Error during gRPC request:", JSON.stringify(request));
|
|
@@ -169,8 +195,13 @@ export class SkyEyeClient extends JSONTransmissionClient {
|
|
|
169
195
|
|
|
170
196
|
public async quitCommand() {
|
|
171
197
|
try {
|
|
172
|
-
return await this.
|
|
198
|
+
return await this.callTimeout(RequestFactory.getInstance().quitCommand(),2);
|
|
173
199
|
} catch (error) {
|
|
200
|
+
// 无法连接,杀死进程
|
|
201
|
+
if (this.childProcess) {
|
|
202
|
+
console.log('Terminating SkyEye child process...');
|
|
203
|
+
this.childProcess.kill();
|
|
204
|
+
}
|
|
174
205
|
console.error("Error during quitCommand:", error);
|
|
175
206
|
throw error;
|
|
176
207
|
}
|
|
@@ -982,11 +1013,24 @@ export class SkyEyeClient extends JSONTransmissionClient {
|
|
|
982
1013
|
public async initSkyEyeAndRun2(pathSkyEye: string, fileName: string, port: string, skyeyeDir: string) {
|
|
983
1014
|
try {
|
|
984
1015
|
console.log('runExample');
|
|
1016
|
+
|
|
985
1017
|
this.childProcess = await this.startSkyEye(port, skyeyeDir);
|
|
1018
|
+
let response
|
|
1019
|
+
let ackObj
|
|
986
1020
|
await this.checkState();
|
|
987
1021
|
await this.checkModule();
|
|
988
|
-
await this.setWorkingDirectory(pathSkyEye, port);
|
|
989
|
-
|
|
1022
|
+
response = await this.setWorkingDirectory(pathSkyEye, port);
|
|
1023
|
+
ackObj = JSON.parse(response.toString()).ack;
|
|
1024
|
+
if (ackObj.result === "false") {
|
|
1025
|
+
ackObj.result = false
|
|
1026
|
+
throw new Error(ackObj.error)
|
|
1027
|
+
}
|
|
1028
|
+
response = await this.runScript(fileName, port);
|
|
1029
|
+
ackObj = JSON.parse(response.toString()).ack;
|
|
1030
|
+
if (ackObj.result === "false") {
|
|
1031
|
+
ackObj.result = false
|
|
1032
|
+
throw new Error(ackObj.error)
|
|
1033
|
+
}
|
|
990
1034
|
return true;
|
|
991
1035
|
} catch (error) {
|
|
992
1036
|
console.error("initSkyEyeAndRun error:", error);
|
|
@@ -1001,15 +1045,15 @@ export class SkyEyeClient extends JSONTransmissionClient {
|
|
|
1001
1045
|
private checkModule() {
|
|
1002
1046
|
return new Promise((resolve, reject) => {
|
|
1003
1047
|
let flag = true;
|
|
1004
|
-
const checkInterval =
|
|
1005
|
-
const timeout =
|
|
1048
|
+
const checkInterval = 100;
|
|
1049
|
+
const timeout = 300000;
|
|
1006
1050
|
const startTime = Date.now();
|
|
1007
1051
|
|
|
1008
1052
|
|
|
1009
1053
|
const check = () => {
|
|
1010
1054
|
const elapsedTime = Date.now() - startTime;
|
|
1011
1055
|
if (elapsedTime >= timeout) {
|
|
1012
|
-
reject(new Error("Timeout: State check exceeded
|
|
1056
|
+
reject(new Error("Timeout: State check exceeded 300 seconds"));
|
|
1013
1057
|
return;
|
|
1014
1058
|
}
|
|
1015
1059
|
|
|
@@ -1039,15 +1083,15 @@ export class SkyEyeClient extends JSONTransmissionClient {
|
|
|
1039
1083
|
private checkState() {
|
|
1040
1084
|
return new Promise((resolve, reject) => {
|
|
1041
1085
|
let flag = true;
|
|
1042
|
-
const checkInterval =
|
|
1043
|
-
const timeout =
|
|
1086
|
+
const checkInterval = 100;
|
|
1087
|
+
const timeout = 300000;
|
|
1044
1088
|
const startTime = Date.now();
|
|
1045
1089
|
|
|
1046
1090
|
|
|
1047
1091
|
const check = () => {
|
|
1048
1092
|
const elapsedTime = Date.now() - startTime;
|
|
1049
1093
|
if (elapsedTime >= timeout) {
|
|
1050
|
-
reject(new Error("Timeout: State check exceeded
|
|
1094
|
+
reject(new Error("Timeout: State check exceeded 300 seconds"));
|
|
1051
1095
|
return;
|
|
1052
1096
|
}
|
|
1053
1097
|
|
|
@@ -1096,7 +1140,7 @@ export class SkyEyeClient extends JSONTransmissionClient {
|
|
|
1096
1140
|
}
|
|
1097
1141
|
|
|
1098
1142
|
|
|
1099
|
-
private setWorkingDirectory(pathSkyEye: string, port: string): Promise<
|
|
1143
|
+
private setWorkingDirectory(pathSkyEye: string, port: string): Promise<JSONResponse> {
|
|
1100
1144
|
const client = new JSONTransmissionClient(`127.0.0.1:${port}`, grpc.credentials.createInsecure());
|
|
1101
1145
|
const Jr = new JSONRequest();
|
|
1102
1146
|
Jr.setRequest(`{"request": {"name": "chdir", "args": {"path":"${pathSkyEye}"}}}`);
|
|
@@ -1108,25 +1152,25 @@ export class SkyEyeClient extends JSONTransmissionClient {
|
|
|
1108
1152
|
reject(error);
|
|
1109
1153
|
} else {
|
|
1110
1154
|
console.log("chdir res:", response);
|
|
1111
|
-
resolve();
|
|
1155
|
+
resolve(response);
|
|
1112
1156
|
}
|
|
1113
1157
|
});
|
|
1114
1158
|
});
|
|
1115
1159
|
}
|
|
1116
1160
|
|
|
1117
|
-
private runScript(fileName: string, port: string): Promise<
|
|
1161
|
+
private runScript(fileName: string, port: string): Promise<JSONResponse> {
|
|
1118
1162
|
const client = new JSONTransmissionClient(`127.0.0.1:${port}`, grpc.credentials.createInsecure());
|
|
1119
1163
|
const Jr = new JSONRequest();
|
|
1120
1164
|
Jr.setRequest(`{"request": {"name": "run_script", "args": {"filename":"${fileName}"}}}`);
|
|
1121
1165
|
|
|
1122
|
-
return new Promise((resolve, reject) => {
|
|
1166
|
+
return new Promise<JSONResponse>((resolve, reject) => {
|
|
1123
1167
|
client.callSkyEye(Jr, (error: ServiceError | null, response: JSONResponse) => {
|
|
1124
1168
|
if (error) {
|
|
1125
1169
|
console.log("run_script error res:", error);
|
|
1126
1170
|
reject(error);
|
|
1127
1171
|
} else {
|
|
1128
1172
|
console.log("run_script res:", response);
|
|
1129
|
-
resolve();
|
|
1173
|
+
resolve(response);
|
|
1130
1174
|
}
|
|
1131
1175
|
});
|
|
1132
1176
|
});
|