cvitool 1.0.751 → 1.0.753

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.
@@ -11,8 +11,8 @@ interface CustomObject {
11
11
  [key: string]: any;
12
12
  }
13
13
  interface getMediaFileTypeRes {
14
- type: string;
15
- extname: string;
14
+ type: 'image' | 'video' | 'audio' | 'unknow';
15
+ extname: 'jpg' | 'png' | 'webp' | 'bmp' | 'heic' | 'gif' | 'mp3' | 'wav' | 'pcm' | 'flac' | 'm4a' | 'aac' | 'mp4' | 'mov' | 'flv' | 'mkv' | 'avi' | 'webm' | 'ogg' | 'm4v' | 'wmv' | 'unknow';
16
16
  }
17
17
  /**
18
18
  * 获取一个随机字符串
@@ -76,7 +76,12 @@ declare function getMediaFileType(target: string | Buffer | Readable): Promise<g
76
76
  * @param url
77
77
  * @returns
78
78
  */
79
- declare function checkURLResource(url: string, timeout?: number): Promise<boolean>;
79
+ declare function checkURLResource(url: string, timeout?: number): Promise<{
80
+ isEffective: boolean;
81
+ message?: string;
82
+ resHeaders?: CustomObject;
83
+ resBody?: CustomObject | string;
84
+ }>;
80
85
  /**
81
86
  * 写入json文件
82
87
  * @param data 待写入json对象
@@ -261,14 +261,17 @@ function getMediaFileType(target) {
261
261
  if (checkString('WAV', 8, 10, buffer)) {
262
262
  return getResult('audio|wav');
263
263
  }
264
- if (checkString('M4A', 8, 10, buffer)) {
265
- return getResult('audio|m4a');
266
- }
267
- if (checkString('heic', 8, 11, buffer) || checkString('mif1', 8, 11, buffer)) {
268
- return getResult('image|heic');
269
- }
270
264
  if (checkString('ftyp', 4, 7, buffer)) {
271
- if (checkString('ftypqt', 4, 9, buffer)) {
265
+ if (checkString('M4A', 8, 10, buffer)) {
266
+ return getResult('audio|m4a');
267
+ }
268
+ if (checkString('M4V', 8, 10, buffer)) {
269
+ return getResult('video|m4v');
270
+ }
271
+ if (checkString('heic', 8, 11, buffer) || checkString('mif1', 8, 11, buffer)) {
272
+ return getResult('image|heic');
273
+ }
274
+ if (checkString('qt', 8, 9, buffer)) {
272
275
  return getResult('video|mov');
273
276
  }
274
277
  return getResult('video|mp4');
@@ -319,17 +322,19 @@ function getMediaFileType(target) {
319
322
  */
320
323
  function checkURLResource(url, timeout) {
321
324
  return __awaiter(this, void 0, void 0, function* () {
322
- let isEffective = true;
325
+ const obj = {
326
+ isEffective: true
327
+ };
323
328
  try {
324
329
  yield hgo.get(url, { headers: { Range: 'bytes=0-0' }, resType: 'buffer', timeout });
325
330
  }
326
331
  catch (e) {
327
- // if (e.name === 'timeoutError') {
328
- // throw e;
329
- // }
330
- isEffective = false;
332
+ obj.isEffective = false;
333
+ obj.message = e.message;
334
+ obj.resHeaders = e.resHeaders;
335
+ obj.resBody = e.resBody;
331
336
  }
332
- return isEffective;
337
+ return obj;
333
338
  });
334
339
  }
335
340
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cvitool",
3
- "version": "1.0.751",
3
+ "version": "1.0.753",
4
4
  "description": "cvitool",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/src/cutil.ts CHANGED
@@ -26,8 +26,8 @@ interface CustomObject {
26
26
  }
27
27
 
28
28
  interface getMediaFileTypeRes {
29
- type: string,
30
- extname: string
29
+ type: 'image' | 'video' | 'audio' | 'unknow',
30
+ extname: 'jpg' | 'png' | 'webp' | 'bmp' | 'heic' | 'gif' | 'mp3' | 'wav' | 'pcm' | 'flac' | 'm4a' | 'aac' | 'mp4' | 'mov' | 'flv' | 'mkv' | 'avi' | 'webm' | 'ogg' | 'm4v' | 'wmv' | 'unknow'
31
31
  }
32
32
 
33
33
  /**
@@ -229,12 +229,12 @@ async function getMediaFileType(target: string | Buffer | Readable): Promise<get
229
229
  }
230
230
  return equal;
231
231
  };
232
- const getResult = (typeStr: string) => {
232
+ const getResult = (typeStr: string): getMediaFileTypeRes => {
233
233
  const arr = typeStr.split('|');
234
234
  return {
235
235
  type: arr[0],
236
236
  extname: arr[1]
237
- };
237
+ } as getMediaFileTypeRes;
238
238
  };
239
239
  let buffer: Buffer;
240
240
  const targetType = getValueType(target);
@@ -267,14 +267,17 @@ async function getMediaFileType(target: string | Buffer | Readable): Promise<get
267
267
  if (checkString('WAV', 8, 10, buffer)) {
268
268
  return getResult('audio|wav');
269
269
  }
270
- if (checkString('M4A', 8, 10, buffer)) {
271
- return getResult('audio|m4a');
272
- }
273
- if (checkString('heic', 8, 11, buffer) || checkString('mif1', 8, 11, buffer)) {
274
- return getResult('image|heic');
275
- }
276
270
  if (checkString('ftyp', 4, 7, buffer)) {
277
- if (checkString('ftypqt', 4, 9, buffer)) {
271
+ if (checkString('M4A', 8, 10, buffer)) {
272
+ return getResult('audio|m4a');
273
+ }
274
+ if (checkString('M4V', 8, 10, buffer)) {
275
+ return getResult('video|m4v');
276
+ }
277
+ if (checkString('heic', 8, 11, buffer) || checkString('mif1', 8, 11, buffer)) {
278
+ return getResult('image|heic');
279
+ }
280
+ if (checkString('qt', 8, 9, buffer)) {
278
281
  return getResult('video|mov');
279
282
  }
280
283
  return getResult('video|mp4');
@@ -324,16 +327,18 @@ async function getMediaFileType(target: string | Buffer | Readable): Promise<get
324
327
  * @returns
325
328
  */
326
329
  async function checkURLResource(url: string, timeout?: number) {
327
- let isEffective = true;
330
+ const obj: { isEffective: boolean, message?: string, resHeaders?: CustomObject, resBody?: CustomObject | string } = {
331
+ isEffective: true
332
+ };
328
333
  try {
329
334
  await hgo.get(url, { headers: { Range: 'bytes=0-0' }, resType: 'buffer', timeout });
330
335
  } catch (e) {
331
- // if (e.name === 'timeoutError') {
332
- // throw e;
333
- // }
334
- isEffective = false;
336
+ obj.isEffective = false;
337
+ obj.message = e.message;
338
+ obj.resHeaders = e.resHeaders;
339
+ obj.resBody = e.resBody;
335
340
  }
336
- return isEffective;
341
+ return obj;
337
342
  }
338
343
 
339
344
  /**