UNPKG

@techor/fs

Version:

A human-friendly file system

41 lines (34 loc) 1.29 kB
import { readFileSync as readFileSync$1, existsSync, mkdirSync, writeFileSync as writeFileSync$1 } from 'fs'; import { dirname } from 'path'; function readFileSync(filepath, options) { if (!filepath) return; return existsSync(filepath) ? readFileSync$1(filepath, options) : undefined; } function readFileAsNormalizedStrSync(filepath, options) { const str = readFileSync(filepath, options); return str ? str.toString().replace(/(\r\n|\r|\n)/g, '\n') : undefined; } function readJSONFileSync(filepath, options) { const str = readFileAsNormalizedStrSync(filepath, options); return str ? JSON.parse(str) : undefined; } function writeFileSync(filePath, data, options) { if (!filePath) return; if (typeof data === 'object') { data = JSON.stringify(data); } if (!existsSync(filePath)) { mkdirSync(dirname(filePath), { recursive: true }); } writeFileSync$1(filePath, data, options); } function writeJSONFileSync(filePath, data, options) { if (!filePath || !data) return; if (typeof data === 'object') { data = JSON.stringify(data); } writeFileSync(filePath, data, options); } export { readFileAsNormalizedStrSync, readFileSync, readJSONFileSync, writeFileSync, writeJSONFileSync };