xliff-generator
Version:
A simple module to create xliff files
82 lines (81 loc) • 2.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const mkdirp = require("mkdirp");
const pathLib = require("path");
const io_error_1 = require("../errors/io.error");
class FileService {
constructor(logger) {
this.logger = logger;
}
fileExists(path, cb) {
fs.access(path, fs.constants.R_OK, cb);
}
readFile(path, options, cb) {
fs.readFile(path, options, cb);
}
readFileAsPromise(path, options) {
return new Promise((resolve, reject) => {
this.readFile(path, options, (fsErr, fileContent) => {
if (fsErr) {
reject(new io_error_1.IOError(fsErr.message));
return;
}
resolve(fileContent);
});
});
}
readFileSync(path, options) {
try {
this.logger.trace('Enter FileService.readFileSync');
return fs.readFileSync(path, options);
}
catch (e) {
this.logger.info('An error occured while reading from file system', e);
throw new io_error_1.IOError(e);
}
finally {
this.logger.trace('Leave FileService.readFileSync');
}
}
writeFile(path, data, options, cb) {
mkdirp(pathLib.dirname(path), (err) => {
if (err) {
return cb(err);
}
fs.writeFile(path, data, options, cb);
});
}
writeFileAsPromise(path, data, options) {
try {
mkdirp.sync(pathLib.dirname(path));
}
catch (e) {
throw new io_error_1.IOError(e);
}
return new Promise(((resolve, reject) => {
this.writeFile(path, data, options, (fsErr) => {
if (fsErr) {
reject(new io_error_1.IOError(fsErr.message));
return;
}
resolve();
});
}));
}
writeFileSync(path, data, options) {
try {
this.logger.trace('Enter FileService.writeFileSync');
mkdirp.sync(pathLib.dirname(path));
fs.writeFileSync(path, data, options);
}
catch (e) {
this.logger.info('An error occured while writing to file system', e);
throw new io_error_1.IOError(e);
}
finally {
this.logger.trace('Leave FileService.writeFileSync');
}
}
}
exports.FileService = FileService;