UNPKG

@dot-event/version

Version:

dot-event package version operation

218 lines (177 loc) 5.18 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = _default; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _fs = _interopRequireDefault(require("@dot-event/fs")); var _git = _interopRequireDefault(require("@dot-event/git")); var _log = _interopRequireDefault(require("@dot-event/log")); var _spawn = _interopRequireDefault(require("@dot-event/spawn")); var _store = _interopRequireDefault(require("@dot-event/store")); var _fsExtra = require("fs-extra"); var _semver = _interopRequireDefault(require("semver")); var _component = require("./version/component"); var _deps = require("./version/deps"); var _git2 = require("./version/git"); var _init = require("./version/init"); var _npm = require("./version/npm"); var _phase = require("./version/phase"); // Packages // Helpers // Composer function _default(options) { const { events } = options; if (events.ops.has("version")) { return options; } (0, _fs.default)({ events }); (0, _git.default)({ events }); (0, _log.default)({ events }); (0, _spawn.default)({ events }); (0, _store.default)({ events }); events.withOptions({ cwd: process.cwd() }).onAny({ version: [_component.component, _init.readPackageJson, (0, _phase.phase)(events, "Read package json"), _deps.addDeps, (0, _phase.phase)(events, "Consolidate dependencies"), _git2.status, (0, _phase.phase)(events, "Git status"), bumpVersions, (0, _phase.phase)(events, "Bump versions"), matchVersions, (0, _phase.phase)(events, "Match versions"), writePackageJson, (0, _phase.phase)(events, "Write package json"), _git2.commit, (0, _phase.phase)(events, "Commit"), _npm.publish, (0, _phase.phase)(events, "Publish"), () => events.emit("unmount")], versionSetupOnce: () => events.argv({ alias: { d: ["dry"], f: ["force"], p: ["publish"] } }) }); return options; } function bumpVersions(_x) { return _bumpVersions.apply(this, arguments); } function _bumpVersions() { _bumpVersions = (0, _asyncToGenerator2.default)(function* (options) { const { events, props } = options; const { behind, dirty, needsPublish } = events.get([...props, "gitStatus", "results"]); if (behind || dirty) { yield events.set([...props, "ignore"], true); } if (needsPublish) { yield bumpVersion(options); } }); return _bumpVersions.apply(this, arguments); } function matchVersions(_x2) { return _matchVersions.apply(this, arguments); } function _matchVersions() { _matchVersions = (0, _asyncToGenerator2.default)(function* (options) { const { events, props } = options; const { deps, devDeps, ignore } = events.get(props); if (ignore) { return; } for (const dep in deps) { const newDep = events.get(["deps", dep]); if (deps[dep] !== newDep) { yield events.set([...props, "deps", dep], newDep); yield bumpVersion(options); } } for (const dep in devDeps) { const newDep = events.get(["deps", dep]); if (devDeps[dep] !== newDep) { yield events.set([...props, "devDeps", dep], newDep); yield bumpVersion(options); } } }); return _matchVersions.apply(this, arguments); } function writePackageJson(_x3) { return _writePackageJson.apply(this, arguments); } function _writePackageJson() { _writePackageJson = (0, _asyncToGenerator2.default)(function* (options) { const { events, props } = options; const { deps, devDeps, ignore, projectPkgPath, version } = events.get(props); if (ignore) { return; } const json = yield (0, _fsExtra.readJson)(projectPkgPath); json.version = version; json.dependencies = deps; json.devDependencies = devDeps; yield events.fsWriteJson([...props, "syncDeps"], { json, path: projectPkgPath, spaces: 2 }); }); return _writePackageJson.apply(this, arguments); } function bumpVersion(_x4) { return _bumpVersion.apply(this, arguments); } function _bumpVersion() { _bumpVersion = (0, _asyncToGenerator2.default)(function* (options) { const { events, props, publish } = options; const { bumped, ignore, name, version } = events.get(props); if (bumped || ignore) { return; } const level = typeof publish === "string" ? publish : "patch"; const newVersion = _semver.default.inc(version, level); yield Promise.all([events.set([...props, "bumped"], true), events.set([...props, "version"], newVersion), (0, _deps.addDep)((0, _objectSpread2.default)({}, options, { name, version: newVersion }))]); }); return _bumpVersion.apply(this, arguments); } //# sourceMappingURL=version.js.map