UNPKG

xliff-generator

Version:

A simple module to create xliff files

82 lines (81 loc) 2.53 kB
"use strict"; 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;