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.
@@ -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>;
@@ -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.call(RequestFactory_1.RequestFactory.getInstance().quitCommand());
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
- yield this.runScript(fileName, port);
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 = 500;
1082
- const timeout = 30000;
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 30 seconds"));
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 = 500;
1115
- const timeout = 30000;
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 30 seconds"));
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skyeye-sdk-js",
3
- "version": "1.4.4",
3
+ "version": "1.4.6",
4
4
  "description": "gRPC to SkyEye",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -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.call(RequestFactory.getInstance().quitCommand());
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
- await this.runScript(fileName, port);
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 = 500;
1005
- const timeout = 30000;
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 30 seconds"));
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 = 500;
1043
- const timeout = 30000;
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 30 seconds"));
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<void> {
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<void> {
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
  });