w-dwdata-builder
v1.0.34
Published
A builder for download data.
Maintainers
Readme
w-dwdata-builder
A builder for download data.
Documentation
To view documentation or get support, visit docs.
Installation
Using npm(ES6 module):
npm i w-dwdata-builderExample:
Link: [dev source code]
import fs from 'fs'
import _ from 'lodash-es'
import w from 'wsemi'
import WDwdataBuilder from './src/WDwdataBuilder.mjs'
//fdResult, 額外創建供另產結果之用
let fdResult = `./_result`
w.fsCleanFolder(fdResult)
//fdTagRemove
let fdTagRemove = `./_tagRemove`
w.fsCleanFolder(fdTagRemove)
//fdDwAttime
let fdDwAttime = `./_dwAttime`
w.fsCleanFolder(fdDwAttime)
//fdDwCurrent
let fdDwCurrent = `./_dwCurrent`
w.fsCleanFolder(fdDwCurrent)
//fdTaskCpActualSrc
let fdTaskCpActualSrc = `./_taskCpActualSrc`
w.fsCleanFolder(fdTaskCpActualSrc)
//fdTaskCpSrc
let fdTaskCpSrc = `./_taskCpSrc`
w.fsCleanFolder(fdTaskCpSrc)
//funDownload
let funDownload = async() => {
//items
let items = [
{
'id': '114115',
'tag': '2025082116374751115',
'number': '115',
'time': '2025-08-21T16:37:47+08:00',
'timeRec': '2025-08-21 16:37:47',
'timeTag': '20250821163747',
'ml': '5.1',
},
{
'id': '114116',
'tag': '2025082214061554116',
'number': '116',
'time': '2025-08-22T14:06:15+08:00',
'timeRec': '2025-08-22 14:06:15',
'timeTag': '20250822140615',
'ml': '5.4',
},
]
_.each(items, (v) => {
let fp = `${fdDwAttime}/${v.id}.json`
fs.writeFileSync(fp, JSON.stringify(v), 'utf8')
})
return items
}
//funGetCurrent
let funGetCurrent = async() => {
//vfps
let vfps = w.fsTreeFolder(fdDwCurrent, 1)
// console.log('vfps', vfps)
//items
let items = []
_.each(vfps, (v) => {
let j = fs.readFileSync(v.path, 'utf8')
let item = JSON.parse(j)
items.push(item)
})
return items
}
//funRemove
let funRemove = async(v) => {
let fd = `${fdResult}/${v.id}`
if (w.fsIsFolder(fd)) {
w.fsDeleteFolder(fd)
}
}
//funAdd
let funAdd = async(v) => {
let fd = `${fdResult}/${v.id}`
if (w.fsIsFolder(fd)) {
w.fsCleanFolder(fd)
}
//do somethings
}
//funModify
let funModify = async(v) => {
let fd = `${fdResult}/${v.id}`
if (w.fsIsFolder(fd)) {
w.fsCleanFolder(fd)
}
//do somethings
}
let opt = {
fdTagRemove,
fdDwAttime,
fdDwCurrent,
fdTaskCpActualSrc,
fdTaskCpSrc,
funDownload,
funGetCurrent,
funRemove,
funAdd,
funModify,
}
let ev = await WDwdataBuilder(opt)
.catch((err) => {
console.log(err)
})
ev.on('change', (msg) => {
delete msg.type
delete msg.timeRunStart
delete msg.timeRunEnd
delete msg.timeRunSpent
console.log('change', msg)
})
// change { event: 'start', msg: 'running...' }
// change { event: 'proc-callfun-afterStart', msg: 'start...' }
// change { event: 'proc-callfun-afterStart', msg: 'done' }
// change { event: 'proc-callfun-download', msg: 'start...' }
// change { event: 'proc-callfun-download', num: 2, msg: 'done' }
// change { event: 'proc-callfun-getCurrent', msg: 'start...' }
// change { event: 'proc-callfun-getCurrent', num: 0, msg: 'done' }
// change { event: 'proc-compare', msg: 'start...' }
// change {
// event: 'proc-compare',
// numRemove: 0,
// numAdd: 2,
// numModify: 0,
// numSame: 0,
// msg: 'done'
// }
// change { event: 'proc-add-callfun-add', id: '114115', msg: 'start...' }
// change { event: 'proc-add-callfun-add', id: '114115', msg: 'done' }
// change { event: 'proc-add-callfun-add', id: '114116', msg: 'start...' }
// change { event: 'proc-add-callfun-add', id: '114116', msg: 'done' }
// change { event: 'proc-callfun-beforeEnd', msg: 'start...' }
// change { event: 'proc-callfun-beforeEnd', msg: 'done' }
// change { event: 'end', msg: 'done' }