UNPKG

@codersvn/npm-auto-version

Version:

This script is used to automatically generate new NPM versions when publishing.

96 lines (71 loc) 2.62 kB
'use strict'; 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; }();