@iflyrpa/share 0.0.14-beta.9 → 0.0.15-beta.0

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/index.js CHANGED
@@ -165,17 +165,13 @@ function ensureFile(filePath) {
165
165
  async function downloadImage(url, savePath) {
166
166
  await ensureFile(savePath);
167
167
  return new Promise((resolve, reject)=>{
168
- external_node_https_default().get(url, (response)=>{
168
+ const handleResponse = (response)=>{
169
169
  if (301 === response.statusCode || 302 === response.statusCode) {
170
170
  const redirectUrl = response.headers.location;
171
- if (redirectUrl) external_node_https_default().get(redirectUrl, (res)=>{
172
- const fileStream = external_node_fs_default().createWriteStream(savePath);
173
- res.pipe(fileStream);
174
- fileStream.on('finish', ()=>{
175
- fileStream.close();
176
- console.log(`${response.statusCode} 下载完成,文件已保存至:`, savePath);
177
- resolve(savePath);
178
- });
171
+ if (redirectUrl) external_node_https_default().get(redirectUrl, handleResponse).on("error", handleError);
172
+ else reject({
173
+ code: 200,
174
+ message: "图片下载失败: 跳转地址无效"
179
175
  });
180
176
  } else if (200 === response.statusCode) {
181
177
  const fileStream = external_node_fs_default().createWriteStream(savePath);
@@ -185,15 +181,75 @@ async function downloadImage(url, savePath) {
185
181
  console.log("下载完成,文件已保存至:", savePath);
186
182
  resolve(savePath);
187
183
  });
184
+ fileStream.on("error", (err)=>{
185
+ reject({
186
+ code: 500,
187
+ message: `图片Buffer写入失败: ${err.message}`
188
+ });
189
+ });
188
190
  } else {
189
191
  console.log("图片下载失败:", response.statusCode);
190
192
  response.resume();
191
- reject();
193
+ reject({
194
+ code: 500,
195
+ message: `图片下载失败,状态码: ${response.statusCode}`
196
+ });
192
197
  }
193
- }).on("error", (error)=>{
194
- console.error("请求图片时发生错误:", error.message);
195
- reject();
198
+ };
199
+ const handleError = (error)=>{
200
+ let customMessage = {
201
+ code: 500,
202
+ message: "请求图片时发生未知错误,请检查网络连接或稍后重试!"
203
+ };
204
+ switch(error.code){
205
+ case "ECONNRESET":
206
+ customMessage = {
207
+ code: 500,
208
+ message: "连接被重置,请检查网络连接或稍后重试!"
209
+ };
210
+ break;
211
+ case "ENOTFOUND":
212
+ customMessage = {
213
+ code: 500,
214
+ message: "域名解析失败,请检查网络连接或稍后重试!"
215
+ };
216
+ break;
217
+ case "ETIMEDOUT":
218
+ customMessage = {
219
+ code: 500,
220
+ message: "超时,请检查网络连接或稍后重试!"
221
+ };
222
+ break;
223
+ case "ECONNREFUSED":
224
+ customMessage = {
225
+ code: 500,
226
+ message: "目标服务器拒绝连接,请检查网络连接或稍后重试!"
227
+ };
228
+ break;
229
+ case "EAI_AGAIN":
230
+ customMessage = {
231
+ code: 500,
232
+ message: " DNS 查询超时,请检查网络连接或稍后重试!"
233
+ };
234
+ break;
235
+ default:
236
+ break;
237
+ }
238
+ customMessage.message = "请求图片时" + customMessage.message;
239
+ customMessage.extra = {
240
+ url
241
+ };
242
+ reject(customMessage);
243
+ };
244
+ const req = external_node_https_default().get(url, handleResponse);
245
+ req.setTimeout(10000, ()=>{
246
+ req.destroy();
247
+ reject({
248
+ code: 200,
249
+ message: "图片下载超时,请检查网络连接或稍后重试!"
250
+ });
196
251
  });
252
+ req.on("error", handleError);
197
253
  });
198
254
  }
199
255
  function getFilenameFromUrl(imageUrl) {
package/dist/index.mjs CHANGED
@@ -108,17 +108,13 @@ function ensureFile(filePath) {
108
108
  async function downloadImage(url, savePath) {
109
109
  await ensureFile(savePath);
110
110
  return new Promise((resolve, reject)=>{
111
- __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__["default"].get(url, (response)=>{
111
+ const handleResponse = (response)=>{
112
112
  if (301 === response.statusCode || 302 === response.statusCode) {
113
113
  const redirectUrl = response.headers.location;
114
- if (redirectUrl) __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__["default"].get(redirectUrl, (res)=>{
115
- const fileStream = __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].createWriteStream(savePath);
116
- res.pipe(fileStream);
117
- fileStream.on('finish', ()=>{
118
- fileStream.close();
119
- console.log(`${response.statusCode} 下载完成,文件已保存至:`, savePath);
120
- resolve(savePath);
121
- });
114
+ if (redirectUrl) __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__["default"].get(redirectUrl, handleResponse).on("error", handleError);
115
+ else reject({
116
+ code: 200,
117
+ message: "图片下载失败: 跳转地址无效"
122
118
  });
123
119
  } else if (200 === response.statusCode) {
124
120
  const fileStream = __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].createWriteStream(savePath);
@@ -128,15 +124,75 @@ async function downloadImage(url, savePath) {
128
124
  console.log("下载完成,文件已保存至:", savePath);
129
125
  resolve(savePath);
130
126
  });
127
+ fileStream.on("error", (err)=>{
128
+ reject({
129
+ code: 500,
130
+ message: `图片Buffer写入失败: ${err.message}`
131
+ });
132
+ });
131
133
  } else {
132
134
  console.log("图片下载失败:", response.statusCode);
133
135
  response.resume();
134
- reject();
136
+ reject({
137
+ code: 500,
138
+ message: `图片下载失败,状态码: ${response.statusCode}`
139
+ });
140
+ }
141
+ };
142
+ const handleError = (error)=>{
143
+ let customMessage = {
144
+ code: 500,
145
+ message: "请求图片时发生未知错误,请检查网络连接或稍后重试!"
146
+ };
147
+ switch(error.code){
148
+ case "ECONNRESET":
149
+ customMessage = {
150
+ code: 500,
151
+ message: "连接被重置,请检查网络连接或稍后重试!"
152
+ };
153
+ break;
154
+ case "ENOTFOUND":
155
+ customMessage = {
156
+ code: 500,
157
+ message: "域名解析失败,请检查网络连接或稍后重试!"
158
+ };
159
+ break;
160
+ case "ETIMEDOUT":
161
+ customMessage = {
162
+ code: 500,
163
+ message: "超时,请检查网络连接或稍后重试!"
164
+ };
165
+ break;
166
+ case "ECONNREFUSED":
167
+ customMessage = {
168
+ code: 500,
169
+ message: "目标服务器拒绝连接,请检查网络连接或稍后重试!"
170
+ };
171
+ break;
172
+ case "EAI_AGAIN":
173
+ customMessage = {
174
+ code: 500,
175
+ message: " DNS 查询超时,请检查网络连接或稍后重试!"
176
+ };
177
+ break;
178
+ default:
179
+ break;
135
180
  }
136
- }).on("error", (error)=>{
137
- console.error("请求图片时发生错误:", error.message);
138
- reject();
181
+ customMessage.message = "请求图片时" + customMessage.message;
182
+ customMessage.extra = {
183
+ url
184
+ };
185
+ reject(customMessage);
186
+ };
187
+ const req = __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__["default"].get(url, handleResponse);
188
+ req.setTimeout(10000, ()=>{
189
+ req.destroy();
190
+ reject({
191
+ code: 200,
192
+ message: "图片下载超时,请检查网络连接或稍后重试!"
193
+ });
139
194
  });
195
+ req.on("error", handleError);
140
196
  });
141
197
  }
142
198
  function getFilenameFromUrl(imageUrl) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iflyrpa/share",
3
- "version": "0.0.14-beta.9",
3
+ "version": "0.0.15-beta.0",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",