w-converhp 2.0.39 → 2.0.40

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.
@@ -529,7 +529,7 @@
529
529
  <br class="clear">
530
530
 
531
531
  <footer>
532
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Tue Apr 15 2025 16:07:51 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
532
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Wed Apr 16 2025 15:43:24 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
533
533
  </footer>
534
534
 
535
535
  <script>prettyPrint();</script>
@@ -724,6 +724,33 @@ function WConverhpClient(opt) {
724
724
  let chunkTotal = Math.ceil(fileTotalSize / sizeSlice)
725
725
  // console.log('chunkTotal', chunkTotal)
726
726
 
727
+ //progCount, progWeightSlice
728
+ let progCount = 0
729
+ let progWeightSlice = 0.99 //上傳階段進度使用99%
730
+ // let progWeightMerge = 0.01 //合併階段進度使用1%
731
+
732
+ //cbProgressSlice
733
+ let cbProgressSlice = (msg) => {
734
+ let perc = msg.prog
735
+ let dir = msg.m
736
+ if (dir === 'upload' &amp;&amp; perc === 100) {
737
+ progCount++
738
+ let r = progCount / chunkTotal
739
+ let prog = r * progWeightSlice * 100
740
+ let psiz = r * fileTotalSize
741
+ cbProgress({ prog, p: psiz, m: 'upload' })
742
+ }
743
+ }
744
+
745
+ //cbProgressMerge
746
+ let cbProgressMerge = (msg) => {
747
+ let perc = msg.prog
748
+ let dir = msg.m
749
+ if (dir === 'download' &amp;&amp; perc === 100) {
750
+ cbProgress({ prog: 100, p: fileTotalSize, m: 'upload' })
751
+ }
752
+ }
753
+
727
754
  //fileTotalHash
728
755
  // console.log(`calc hash for fileTotalSize[${fileTotalSize}]...`)
729
756
  let fileTotalHash = await calcHash(bb)
@@ -741,20 +768,22 @@ function WConverhpClient(opt) {
741
768
  // bSls: true,
742
769
  // slks: [
743
770
  // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
744
- // 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
745
- // 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
746
- // 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
747
- // 48, 49, 50, 51, 52, 53
748
771
  // ]
749
772
  // }
750
773
 
751
774
  //check
752
775
  if (resUpCkt.bAllHash) {
753
776
  // console.log('已有上傳大檔')
777
+
778
+ //cbProgressMerge
779
+ cbProgressMerge({ prog: 100, m: 'download' }) //觸發上傳完畢後之下載回應, 故m須為download
780
+
781
+ //resMg, 直接回傳
754
782
  let resMg = {
755
783
  filename: fileTotalName,
756
784
  path: resUpCkt.path,
757
785
  }
786
+
758
787
  return resMg
759
788
  }
760
789
 
@@ -819,33 +848,6 @@ function WConverhpClient(opt) {
819
848
  let packageId = fileTotalHash
820
849
  // console.log('packageId', packageId)
821
850
 
822
- //progCount, progWeightSlice
823
- let progCount = 0
824
- let progWeightSlice = 0.99 //上傳階段進度使用99%
825
- // let progWeightMerge = 0.01 //合併階段進度使用1%
826
-
827
- //cbProgressSlice
828
- let cbProgressSlice = (msg) => {
829
- let perc = msg.prog
830
- let dir = msg.m
831
- if (dir === 'upload' &amp;&amp; perc === 100) {
832
- progCount++
833
- let r = progCount / chunkTotal
834
- let prog = r * progWeightSlice * 100
835
- let psiz = r * fileTotalSize
836
- cbProgress({ prog, p: psiz, m: 'upload' })
837
- }
838
- }
839
-
840
- //cbProgressMerge
841
- let cbProgressMerge = (msg) => {
842
- let perc = msg.prog
843
- let dir = msg.m
844
- if (dir === 'download' &amp;&amp; perc === 100) {
845
- cbProgress({ prog: 100, p: fileTotalSize, m: 'upload' })
846
- }
847
- }
848
-
849
851
  //upload slice
850
852
  // console.log(`upload slice...`)
851
853
  for (let i = 0; i &lt; chunkTotal; i++) {
@@ -906,22 +908,33 @@ function WConverhpClient(opt) {
906
908
  // }
907
909
 
908
910
  //check
909
- if (res.state === 'done') {
911
+ if (res.state === 'success') {
912
+
913
+ //clearInterval
914
+ clearInterval(t)
910
915
 
911
916
  //cbProgressMerge
912
- cbProgressMerge({ prog: 100, m: 'download' })
917
+ cbProgressMerge({ prog: 100, m: 'download' }) //觸發上傳完畢後之下載回應, 故m須為download
913
918
 
914
- //resolve, 前端偵測state為'done'時提取msg顯示
919
+ //resolve, state為'success'時提取msg回傳
920
+ pm.resolve(res.msg)
921
+
922
+ }
923
+ else if (res.state === 'error') {
924
+ console.log('merge-slices-get error', res)
925
+
926
+ //clearInterval
927
+ clearInterval(t)
928
+
929
+ //reject, state為'error'時會於msg提供錯誤訊息
915
930
  pm.resolve(res.msg)
916
931
 
917
932
  }
918
933
 
919
934
  })
920
935
  .catch((err) => {
921
- console.log(err)
922
- })
923
- .finally(() => {
924
- clearInterval(t)
936
+ console.log('merge-slices-get catch', err)
937
+ //可能發生網路斷訊錯誤, 不clearInterval, 持續輪循測試合併大檔之狀態
925
938
  })
926
939
 
927
940
  }, 2000)
@@ -930,11 +943,11 @@ function WConverhpClient(opt) {
930
943
  }
931
944
 
932
945
  //checkMerging
933
- let resUpMgr = await checkMerging()
934
- // console.log('resUpMgr', resUpMgr)
946
+ let resMg = await checkMerging()
947
+ // console.log('resMg', resMg)
935
948
 
936
949
  // console.log(`upload slice done`)
937
- return resUpMgr
950
+ return resMg
938
951
  }
939
952
 
940
953
  //execute
@@ -1094,7 +1107,7 @@ export default WConverhpClient
1094
1107
  <br class="clear">
1095
1108
 
1096
1109
  <footer>
1097
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Tue Apr 15 2025 16:07:51 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1110
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Wed Apr 16 2025 15:43:24 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1098
1111
  </footer>
1099
1112
 
1100
1113
  <script>prettyPrint();</script>
@@ -789,7 +789,7 @@
789
789
  <br class="clear">
790
790
 
791
791
  <footer>
792
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Tue Apr 15 2025 16:07:51 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
792
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Wed Apr 16 2025 15:43:24 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
793
793
  </footer>
794
794
 
795
795
  <script>prettyPrint();</script>
@@ -811,14 +811,15 @@ function WConverhpServer(opt = {}) {
811
811
 
812
812
  //out
813
813
  out = {
814
- queueId,
815
814
  state: r.state,
815
+ msg: r.msg, //state為'error'時會於msg提供錯誤訊息
816
+ queueId,
816
817
  filename,
817
818
  path: r.path,
818
819
  }
819
820
 
820
821
  //check
821
- if (r.state === 'done') {
822
+ if (r.state === 'success') {
822
823
 
823
824
  //ri
824
825
  let ri = {
@@ -831,9 +832,9 @@ function WConverhpServer(opt = {}) {
831
832
  let ro = await procUpload(ri)
832
833
  // console.log('procUpload done', ro)
833
834
 
834
- //out merge, ro須附加至msg, 才供前端偵測state為'done'時提取msg顯示
835
+ //out merge, ro須附加至msg, 才供前端偵測state為'success'時提取msg顯示
835
836
  out = {
836
- ...out,
837
+ ...out, //state為'success'時msg為空字串, 直接被ro複寫至msg即可
837
838
  msg: ro,
838
839
  }
839
840
 
@@ -1477,7 +1478,7 @@ export default WConverhpServer
1477
1478
  <br class="clear">
1478
1479
 
1479
1480
  <footer>
1480
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Tue Apr 15 2025 16:07:51 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1481
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Wed Apr 16 2025 15:43:24 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1481
1482
  </footer>
1482
1483
 
1483
1484
  <script>prettyPrint();</script>
package/docs/index.html CHANGED
@@ -71,7 +71,7 @@
71
71
  <br class="clear">
72
72
 
73
73
  <footer>
74
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Tue Apr 15 2025 16:07:51 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
74
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Wed Apr 16 2025 15:43:24 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
75
75
  </footer>
76
76
 
77
77
  <script>prettyPrint();</script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "w-converhp",
3
- "version": "2.0.39",
3
+ "version": "2.0.40",
4
4
  "main": "dist/w-converhp-server.umd.js",
5
5
  "dependencies": {
6
6
  "@hapi/hapi": "^21.4.0",
package/scla.mjs CHANGED
@@ -5,6 +5,7 @@ import w from 'wsemi'
5
5
  import FormData from 'form-data'
6
6
  import WConverhpClient from './src/WConverhpClient.mjs'
7
7
 
8
+
8
9
  let ms = []
9
10
 
10
11
  let opt = {
@@ -677,6 +677,33 @@ function WConverhpClient(opt) {
677
677
  let chunkTotal = Math.ceil(fileTotalSize / sizeSlice)
678
678
  // console.log('chunkTotal', chunkTotal)
679
679
 
680
+ //progCount, progWeightSlice
681
+ let progCount = 0
682
+ let progWeightSlice = 0.99 //上傳階段進度使用99%
683
+ // let progWeightMerge = 0.01 //合併階段進度使用1%
684
+
685
+ //cbProgressSlice
686
+ let cbProgressSlice = (msg) => {
687
+ let perc = msg.prog
688
+ let dir = msg.m
689
+ if (dir === 'upload' && perc === 100) {
690
+ progCount++
691
+ let r = progCount / chunkTotal
692
+ let prog = r * progWeightSlice * 100
693
+ let psiz = r * fileTotalSize
694
+ cbProgress({ prog, p: psiz, m: 'upload' })
695
+ }
696
+ }
697
+
698
+ //cbProgressMerge
699
+ let cbProgressMerge = (msg) => {
700
+ let perc = msg.prog
701
+ let dir = msg.m
702
+ if (dir === 'download' && perc === 100) {
703
+ cbProgress({ prog: 100, p: fileTotalSize, m: 'upload' })
704
+ }
705
+ }
706
+
680
707
  //fileTotalHash
681
708
  // console.log(`calc hash for fileTotalSize[${fileTotalSize}]...`)
682
709
  let fileTotalHash = await calcHash(bb)
@@ -694,20 +721,22 @@ function WConverhpClient(opt) {
694
721
  // bSls: true,
695
722
  // slks: [
696
723
  // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
697
- // 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
698
- // 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
699
- // 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
700
- // 48, 49, 50, 51, 52, 53
701
724
  // ]
702
725
  // }
703
726
 
704
727
  //check
705
728
  if (resUpCkt.bAllHash) {
706
729
  // console.log('已有上傳大檔')
730
+
731
+ //cbProgressMerge
732
+ cbProgressMerge({ prog: 100, m: 'download' }) //觸發上傳完畢後之下載回應, 故m須為download
733
+
734
+ //resMg, 直接回傳
707
735
  let resMg = {
708
736
  filename: fileTotalName,
709
737
  path: resUpCkt.path,
710
738
  }
739
+
711
740
  return resMg
712
741
  }
713
742
 
@@ -772,33 +801,6 @@ function WConverhpClient(opt) {
772
801
  let packageId = fileTotalHash
773
802
  // console.log('packageId', packageId)
774
803
 
775
- //progCount, progWeightSlice
776
- let progCount = 0
777
- let progWeightSlice = 0.99 //上傳階段進度使用99%
778
- // let progWeightMerge = 0.01 //合併階段進度使用1%
779
-
780
- //cbProgressSlice
781
- let cbProgressSlice = (msg) => {
782
- let perc = msg.prog
783
- let dir = msg.m
784
- if (dir === 'upload' && perc === 100) {
785
- progCount++
786
- let r = progCount / chunkTotal
787
- let prog = r * progWeightSlice * 100
788
- let psiz = r * fileTotalSize
789
- cbProgress({ prog, p: psiz, m: 'upload' })
790
- }
791
- }
792
-
793
- //cbProgressMerge
794
- let cbProgressMerge = (msg) => {
795
- let perc = msg.prog
796
- let dir = msg.m
797
- if (dir === 'download' && perc === 100) {
798
- cbProgress({ prog: 100, p: fileTotalSize, m: 'upload' })
799
- }
800
- }
801
-
802
804
  //upload slice
803
805
  // console.log(`upload slice...`)
804
806
  for (let i = 0; i < chunkTotal; i++) {
@@ -859,22 +861,33 @@ function WConverhpClient(opt) {
859
861
  // }
860
862
 
861
863
  //check
862
- if (res.state === 'done') {
864
+ if (res.state === 'success') {
865
+
866
+ //clearInterval
867
+ clearInterval(t)
863
868
 
864
869
  //cbProgressMerge
865
- cbProgressMerge({ prog: 100, m: 'download' })
870
+ cbProgressMerge({ prog: 100, m: 'download' }) //觸發上傳完畢後之下載回應, 故m須為download
866
871
 
867
- //resolve, 前端偵測state為'done'時提取msg顯示
872
+ //resolve, state為'success'時提取msg回傳
873
+ pm.resolve(res.msg)
874
+
875
+ }
876
+ else if (res.state === 'error') {
877
+ console.log('merge-slices-get error', res)
878
+
879
+ //clearInterval
880
+ clearInterval(t)
881
+
882
+ //reject, state為'error'時會於msg提供錯誤訊息
868
883
  pm.resolve(res.msg)
869
884
 
870
885
  }
871
886
 
872
887
  })
873
888
  .catch((err) => {
874
- console.log(err)
875
- })
876
- .finally(() => {
877
- clearInterval(t)
889
+ console.log('merge-slices-get catch', err)
890
+ //可能發生網路斷訊錯誤, 不clearInterval, 持續輪循測試合併大檔之狀態
878
891
  })
879
892
 
880
893
  }, 2000)
@@ -883,11 +896,11 @@ function WConverhpClient(opt) {
883
896
  }
884
897
 
885
898
  //checkMerging
886
- let resUpMgr = await checkMerging()
887
- // console.log('resUpMgr', resUpMgr)
899
+ let resMg = await checkMerging()
900
+ // console.log('resMg', resMg)
888
901
 
889
902
  // console.log(`upload slice done`)
890
- return resUpMgr
903
+ return resMg
891
904
  }
892
905
 
893
906
  //execute
@@ -764,14 +764,15 @@ function WConverhpServer(opt = {}) {
764
764
 
765
765
  //out
766
766
  out = {
767
- queueId,
768
767
  state: r.state,
768
+ msg: r.msg, //state為'error'時會於msg提供錯誤訊息
769
+ queueId,
769
770
  filename,
770
771
  path: r.path,
771
772
  }
772
773
 
773
774
  //check
774
- if (r.state === 'done') {
775
+ if (r.state === 'success') {
775
776
 
776
777
  //ri
777
778
  let ri = {
@@ -784,9 +785,9 @@ function WConverhpServer(opt = {}) {
784
785
  let ro = await procUpload(ri)
785
786
  // console.log('procUpload done', ro)
786
787
 
787
- //out merge, ro須附加至msg, 才供前端偵測state為'done'時提取msg顯示
788
+ //out merge, ro須附加至msg, 才供前端偵測state為'success'時提取msg顯示
788
789
  out = {
789
- ...out,
790
+ ...out, //state為'success'時msg為空字串, 直接被ro複寫至msg即可
790
791
  msg: ro,
791
792
  }
792
793
 
@@ -40,8 +40,8 @@ let checkSlicesHash = async(fileSliceHashs, fileHash, pathUploadTemp) => {
40
40
  _fileHash = res
41
41
  })
42
42
  .catch((err) => {
43
- console.log(err)
44
43
  console.log(`fsIsFile(_pathFile)`, _pathFile, fsIsFile(_pathFile))
44
+ console.log(err)
45
45
  })
46
46
  // console.log('_fileHash', _fileHash)
47
47