UNPKG

publishr

Version:

A tool for harmonious publishing of git and npm packages.

131 lines (104 loc) 3.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _es6Promise = require("es6-promise"); var _fs = require("fs"); var _fs2 = _interopRequireDefault(_fs); var _constants = require("./constants"); var _logger = require("./logger"); var _logger2 = _interopRequireDefault(_logger); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var fileUtils = { readFile: function readFile(filePath) { return new _es6Promise.Promise(function (resolve, reject) { _fs2.default.readFile(filePath, "utf8", function (err, contents) { if (err) { _logger2.default.fail("read '" + filePath + "'", err); return reject(err); } _logger2.default.pass("read '" + filePath + "'"); return resolve(contents); }); }); }, readFiles: function readFiles(files) { return _es6Promise.Promise.all(files.map(function (file) { return fileUtils.readFile(file.oldPath).then(function (contents) { file.contents = contents; return _es6Promise.Promise.resolve(file); }); })); }, readPackage: function readPackage() { return fileUtils.readFile("package.json").then(function (contents) { return _es6Promise.Promise.resolve(JSON.parse(contents)); }); }, removeFile: function removeFile(filePath) { return new _es6Promise.Promise(function (resolve, reject) { _fs2.default.unlink(filePath, function (err) { if (err) { _logger2.default.fail("remove '" + filePath + "'", err); return reject(err); } _logger2.default.pass("remove '" + filePath + "'"); return resolve(); }); }); }, statFile: function statFile(filePath) { return new _es6Promise.Promise(function (resolve, reject) { _fs2.default.stat(filePath, function (err, stats) { if (err) { return reject(err); } return resolve(stats); }); }); }, statFiles: function statFiles(files) { return _es6Promise.Promise.all(files.map(function (file) { return fileUtils.statFile(file.newPath).then(function () { file.created = false; return _es6Promise.Promise.resolve(file); }).catch(function (err) { if (err.code !== "ENOENT") { return _es6Promise.Promise.reject(err); } file.created = true; return _es6Promise.Promise.resolve(file); }); })); }, writeFile: function writeFile(filePath, contents) { return new _es6Promise.Promise(function (resolve, reject) { _fs2.default.writeFile(filePath, contents, "utf8", function (err) { if (err) { _logger2.default.fail("write '" + filePath + "'", err); return reject(err); } _logger2.default.pass("write '" + filePath + "'"); return resolve(); }); }); }, writeFiles: function writeFiles(files) { return _es6Promise.Promise.all(files.map(function (file) { return fileUtils.writeFile(file.newPath, file.contents).then(function () { file.written = true; return _es6Promise.Promise.resolve(file); }); })); }, writePackage: function writePackage(json) { var contents = void 0; try { contents = JSON.stringify(json, null, _constants.NUM_JSON_SPACES); } catch (err) { return _es6Promise.Promise.reject(err); } return fileUtils.writeFile("package.json", contents); } }; exports.default = fileUtils;