diff --git a/index.ts b/index.ts index 8386eb9..82d9759 100644 --- a/index.ts +++ b/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) })