UNPKG

deployment-tools

Version:

A Node.js scripts that helps you to compile and deploy the static assets (CSS/JavaScript/images) of your website without gulp and grunt using Node.js and npm scripts

96 lines (80 loc) 3.89 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); /** * Increment version inside package.json file according to a category * @param {String} category It must be a value between patch, minor, major * @param {Object} pkg The package.json object loaded into memory * @param {Object} config The config object (from package.json) * @return {Promise} The promise */ let updatePackageJson = (() => { var _ref = _asyncToGenerator(function* (category, pkg, config) { const packageJson = config.get('packageJson'); if (!packageJson) { return false; } // check if file exists const exists = yield _fs2.default.fileExistsAsync(packageJson); if (!exists) { _logger2.default.error('updatePackageJson file not found', packageJson); return false; } const newVersion = (0, _version2.default)(category, pkg.version); _logger2.default.log(`Update package.json from ${ pkg.version } to ${ newVersion }`); const newPackageJson = Object.assign({}, pkg, { version: newVersion }); // write the package.json updated and return a promise return _fs2.default.writeFileAsync(packageJson, JSON.stringify(newPackageJson, null, 2)); }); return function updatePackageJson(_x, _x2, _x3) { return _ref.apply(this, arguments); }; })(); /** * [updateWebconfig description] * Is an async function, it makes its promise. Any uncaught exception inside it becomes a rejection of that promise * @param {String} category It must be a value between patch, minor, major * @param {Object} pkg The package.json object * @param {Object} config The configuration Object from package.json * @return {Promise} The promise */ let updateWebconfig = (() => { var _ref2 = _asyncToGenerator(function* (category, pkg, config) { // check if config parameter exists. Web.config is OPT-IN const webConfig = config.get('webConfig'); if (!webConfig) { // immediate values are implicitly wrapped in an already-resolved promise, which is then awaited. // await automatically promise-wraps any non-promise values and since the value is a non-promise, the wrapped promise will immediately resolve // unwrapping is an async step, so we have to wait a tick before we can get that value // _context.abrupt('return', _context.sent) return yield false; } // check if file exists. Web.config is OPT-IN const exists = yield _fs2.default.fileExistsAsync(webConfig); if (!exists) { _logger2.default.error('updateWebconfig file not found', webConfig); return false; } const newVersion = (0, _version2.default)(category, pkg.version); const xmlString = yield _fs2.default.readFileAsync(webConfig); const newWebconfigXmlString = xmlString.replace(/<add .*"swversion".*\/>/igm, `<add key="swversion" value="${ newVersion }" />`); return _fs2.default.writeFileAsync(webConfig, newWebconfigXmlString); }); return function updateWebconfig(_x4, _x5, _x6) { return _ref2.apply(this, arguments); }; })(); var _fs = require('./fs'); var _fs2 = _interopRequireDefault(_fs); var _logger = require('./logger'); var _logger2 = _interopRequireDefault(_logger); var _version = require('./version.js'); var _version2 = _interopRequireDefault(_version); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { return step("next", value); }, function (err) { return step("throw", err); }); } } return step("next"); }); }; } exports.default = { getNewVersion: _version2.default, updatePackageJson, updateWebconfig };