server_photo_s85js/api_v1/scanner/writeJsonAtomic.js
2026-08-11 08:45:04 +02:00

17 lines
502 B
JavaScript

// api_v1/scanner/writeJsonAtomic.js
const path = require('path');
const fsp = require('fs/promises');
async function writeJsonAtomic(filePath, data) {
const tmpPath = `${filePath}.${process.pid}.${Date.now()}.${Math.random()
.toString(16)
.slice(2)}.tmp`;
const json = JSON.stringify(data, null, 2);
await fsp.mkdir(path.dirname(filePath), { recursive: true });
await fsp.writeFile(tmpPath, json, 'utf8');
await fsp.rename(tmpPath, filePath);
}
module.exports = writeJsonAtomic;