tools.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. export const arrange = (source: number[]) => {
  2. let t: number | undefined;
  3. let ta: number[] | undefined;
  4. const r: number[][] = [];
  5. source.forEach(function (v) {
  6. if (t === v) {
  7. (ta as number[]).push(t as number);
  8. t = (t as number) + 1;
  9. return;
  10. }
  11. ta = [v];
  12. t = v + 1;
  13. r.push(ta);
  14. });
  15. return r;
  16. };
  17. export const arrayUnique = (arr: any[], name: string) => {
  18. const _map = new Map<string, { index: number }>();
  19. const _result: any[] = [];
  20. return arr.reduce((item: any[], next: any) => {
  21. if(_map.has(next[name] + '')) {
  22. item.splice((_map.get(next[name] + '') as { index: number }).index, 1, next);
  23. } else {
  24. item.push(next);
  25. _map.set(next[name] + '', { index: item.length - 1 });
  26. }
  27. return item;
  28. }, _result);
  29. };
  30. export const errHandler = (err: any, step: string, fileItem?: any) => {
  31. try {
  32. const errLog: any = { step: step, message: {} };
  33. if (err.status) {
  34. errLog.errName = err.data['Code']['_text'];
  35. const _logSet: any = {
  36. ...err.config.headers,
  37. ...err.headers,
  38. url: err.config['url'],
  39. hostId: err.data['HostId']['_text'],
  40. status: err.status,
  41. statusText: err.statusText,
  42. dTime: err.dTime,
  43. };
  44. if (fileItem) _logSet.partSize = fileItem.partSize;
  45. Object.keys(_logSet).forEach(key => {
  46. errLog.message[key.toLowerCase()] = _logSet[key.toString()];
  47. });
  48. } else {
  49. errLog.errName = err.message;
  50. errLog.dTime = err.dTime;
  51. errLog.url = err.url;
  52. if (fileItem) errLog.partSize = fileItem.partSize;
  53. }
  54. return errLog;
  55. } catch (e) {
  56. const errLog: any = { step: step };
  57. errLog.errName = 'parseLogError';
  58. (errLog as any).message = err;
  59. return errLog;
  60. }
  61. };
  62. export const timeSkewedHandle = () => {
  63. };