@techor/fs
Version:
A human-friendly file system
41 lines (34 loc) • 1.29 kB
JavaScript
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 };