const fs = require('fs');
const path = require('path');
class TextFileSync {
constructor(filename) {
this.filename = filename;
this.tempFilename = path.join(path.dirname(filename), `.${path.basename(filename)}.tmp`);
}
read() {
let data;
try {
data = fs.readFileSync(this.filename, 'utf-8');
}
catch (e) {
if (e.code === 'ENOENT') {
return null;
}
throw e;
}
return data;
}
write(str) {
fs.writeFileSync(this.tempFilename, str);
fs.renameSync(this.tempFilename, this.filename);
}
}
module.exports = { TextFileSync };