w-converhp 2.0.39 → 2.0.41

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.
@@ -10,73 +10,85 @@ import fsDeleteFile from 'wsemi/src/fsDeleteFile.mjs'
10
10
  import mergeSlices from './mergeSlices.wk.umd.js'
11
11
 
12
12
 
13
- //managerMergeSlices
14
- let managerMergeSlices = () => {
13
+ //qPush
14
+ let qPush = (fileHash, chunkTotal, pathUploadTemp) => {
15
15
 
16
- //qPush
17
- let qPush = (fileHash, chunkTotal, pathUploadTemp) => {
16
+ //id, 使用fileHash代表不用佇列儲存, 通過id即可解析反查
17
+ let id = `${now2strp()}|${genID(6)}|${fileHash}`
18
18
 
19
- //id
20
- let id = `${now2strp()}:${genID(6)}:${fileHash}`
19
+ //setTimeout, 脫勾觸發
20
+ setTimeout(() => {
21
+ mergeSlices(fileHash, chunkTotal, pathUploadTemp)
22
+ .catch((err) => {
23
+ console.log(err)
24
+ })
25
+ }, 1)
21
26
 
22
- //setTimeout, 脫勾觸發
23
- setTimeout(() => {
24
- mergeSlices(fileHash, chunkTotal, pathUploadTemp)
25
- .catch((err) => {
26
- console.log(err)
27
- })
28
- }, 1)
29
-
30
- return id
31
- }
27
+ return id
28
+ }
32
29
 
33
- //qGet
34
- let qGet = (id, pathUploadTemp) => {
30
+ //qGet
31
+ let qGet = (id, pathUploadTemp) => {
32
+ let errTemp = ''
35
33
 
36
- //fileHash
37
- let s = sep(id, ':')
38
- let fileHash = get(s, 2, '')
39
- if (!isestr(fileHash)) {
40
- throw new Error(`can not find fileHash in id[${id}]`)
34
+ //check
35
+ if (!isestr(id)) {
36
+ errTemp = `invalid id[${id}]`
37
+ console.log(errTemp)
38
+ return {
39
+ state: 'error',
40
+ msg: errTemp,
41
+ path: '',
41
42
  }
43
+ }
42
44
 
43
- //fp
44
- let fp = path.resolve(pathUploadTemp, fileHash)
45
- // console.log('fp', fp)
45
+ //fileHash
46
+ let s = sep(id, '|')
47
+ let fileHash = get(s, 2, '')
48
+ if (!isestr(fileHash)) {
49
+ errTemp = `can not find fileHash in id[${id}]`
50
+ console.log(errTemp)
51
+ return {
52
+ state: 'error',
53
+ msg: errTemp,
54
+ path: '',
55
+ }
56
+ }
46
57
 
47
- //fpd
48
- let fpd = path.resolve(pathUploadTemp, `${fileHash}.done`)
49
- // console.log('fpd', fpd)
58
+ //fp
59
+ let fp = path.resolve(pathUploadTemp, fileHash)
60
+ // console.log('fp', fp)
50
61
 
51
- //bfp, bfpd, b
52
- let bfp = fsIsFile(fp)
53
- let bfpd = fsIsFile(fpd)
54
- let b = bfp && bfpd //記得要同時偵測fp與fpd, 否則有些已經移動fp但fpd忘記刪, 就會造成誤判
62
+ //fpd
63
+ let fpd = path.resolve(pathUploadTemp, `${fileHash}.done`)
64
+ // console.log('fpd', fpd)
55
65
 
56
- //check, 若有.done檔但沒合併檔, 就代表合併檔已被處理或移動, .done檔須自動刪除
57
- if (!bfp && bfpd) {
58
- fsDeleteFile(fpd)
59
- }
66
+ //bfp, bfpd, b
67
+ let bfp = fsIsFile(fp)
68
+ let bfpd = fsIsFile(fpd)
69
+ let b = bfp && bfpd //記得要同時偵測fp與fpd, 否則有些已經移動fp但fpd忘記刪, 就會造成誤判
60
70
 
61
- //check, 若已經完成任務, 且外部調用get取得完成訊息, 則可自動刪除.done檔, 但因不能保證合併後有完成再處理動作, 例如移動至處理資料夾再處理, 故保留.done
62
- if (b) {
63
- // fsDeleteFile(fpd)
64
- }
71
+ //check, 若有.done檔但沒合併檔, 就代表合併檔已被處理或移動, .done檔須自動刪除
72
+ if (!bfp && bfpd) {
73
+ fsDeleteFile(fpd)
74
+ }
65
75
 
66
- return {
67
- state: b ? 'done' : 'merging',
68
- path: fp,
69
- }
76
+ //check, 若已經完成任務, 且外部調用get取得完成訊息, 則可自動刪除.done檔, 但因不能保證合併後有完成再處理動作, 例如移動至處理資料夾再處理, 故保留.done檔
77
+ if (b) {
78
+ // fsDeleteFile(fpd)
70
79
  }
71
80
 
72
- //r
73
- let r = {
74
- push: qPush,
75
- get: qGet,
81
+ return {
82
+ state: b ? 'success' : 'merging',
83
+ msg: '',
84
+ path: fp,
76
85
  }
86
+ }
77
87
 
78
- return r
88
+ let r = {
89
+ push: qPush,
90
+ get: qGet,
79
91
  }
80
92
 
81
93
 
82
- export default managerMergeSlices
94
+ export default r