fix: 修復文件監聽重復問題
This commit is contained in:
7
index.ts
7
index.ts
@@ -5,9 +5,11 @@ import YAML from 'yaml'
|
||||
import {IrequestData} from './types.js'
|
||||
|
||||
const path: string = YAML.parse(fs.readFileSync('../config.yml', 'utf-8')).path
|
||||
const lock: string[] = []
|
||||
|
||||
fs.watch(path, async function (event, filename) {
|
||||
if (!(filename && event === 'change')) return
|
||||
if (!(filename && event === 'change') || lock.includes(filename)) return
|
||||
lock.push(filename)
|
||||
const jpath: string = `${path}/${filename}`
|
||||
const requestData: IrequestData = JSON.parse(fs.readFileSync(jpath).toString())
|
||||
if (requestData.Processed === true) return
|
||||
@@ -41,4 +43,7 @@ fs.watch(path, async function (event, filename) {
|
||||
}
|
||||
requestData.Processed = true
|
||||
fs.writeFileSync(jpath, JSON.stringify(requestData))
|
||||
setTimeout(() => {
|
||||
lock.splice(lock.indexOf(filename), 1)
|
||||
}, 300)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user