@codersvn/npm-auto-version
Version:
This script is used to automatically generate new NPM versions when publishing.
96 lines (71 loc) • 2.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Parser = undefined;
var _stringify = require('babel-runtime/core-js/json/stringify');
var _stringify2 = _interopRequireDefault(_stringify);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _semver = require('semver');
var _semver2 = _interopRequireDefault(_semver);
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Version = function () {
function Version(data) {
(0, _classCallCheck3.default)(this, Version);
this.major = data.major;
this.minor = data.minor;
this.patch = data.patch;
}
(0, _createClass3.default)(Version, [{
key: 'toString',
value: function toString() {
return [this.major, this.minor, this.patch].join('.');
}
}, {
key: 'increase',
value: function increase() {
var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'patch';
return _semver2.default.inc(this.toString(), type);
}
}]);
return Version;
}();
var Parser = exports.Parser = function () {
function Parser(file_path) {
(0, _classCallCheck3.default)(this, Parser);
this.file_path = file_path;
}
(0, _createClass3.default)(Parser, [{
key: 'getPackageVersion',
value: function getPackageVersion() {
var version = void 0;
try {
version = require(this.file_path).version;
} catch (e) {
throw new Error('Could not load package.json, please make sure it exists');
}
if (!_semver2.default.valid(version)) {
throw new Error('Invalid version number found in package.json, please make sure it is valid');
}
return new Version({ major: _semver2.default.major(version), minor: _semver2.default.minor(version), patch: _semver2.default.patch(version) });
}
/**
* Updates the package.json with the new version number
* @method writePackageVersion
* @param {String} newVersion New version string MAJOR.MINOR.PATCH
*/
}, {
key: 'writePackageVersion',
value: function writePackageVersion(newVersion) {
var raw = require(this.file_path);
raw.version = newVersion;
_fs2.default.writeFileSync(this.file_path, (0, _stringify2.default)(raw, null, 2));
}
}]);
return Parser;
}();