UNPKG

npm-submodules

Version:

Simple way to manage typescipt and angular2 submodules from one repository

66 lines (65 loc) 2.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // import { TsmOptions } from '../types'; const execa = require('execa'); const path = require('path'); const Listr = require("listr"); const submodules_resolution_1 = require("../utils/submodules-resolution"); const npm_version_task_1 = require("../tasks/npm/npm-version.task"); function run(cli) { const { project, verbose, message, gitTagVersion, yarn, skipPush } = cli.flags; const noGitTagVersion = gitTagVersion === false; const version = cli.input[1]; if (!version) { return Promise.reject('Error: please provide version like (patch, major, prerelase, 1.2.3, etc.'); } return submodules_resolution_1.findSubmodules(project) .then((opts) => { // 1. version all sub modules // 2. version root package const tasks = new Listr([ { title: 'Version all submodules', task: () => new Listr(opts.map(opt => ({ title: `npm version (${opt.pkg.name}: ${opt.src})`, task: () => npm_version_task_1.npmVersion({ yarn, src: opt.src, version, noGitTagVersion: true }) }))) }, { title: 'git add -A', task: () => execa.shell('git add -A'), skip: () => noGitTagVersion }, { title: 'Version root package', task: () => npm_version_task_1.npmVersion({ yarn, src: '.', version, message, noGitTagVersion: true }) }, { title: 'Create version commit', task: () => { const pkg = require(path.resolve('package.json')); return execa.stdout('git', ['commit', '-am', message || `v${pkg.version}`]); }, skip: () => noGitTagVersion }, { title: 'Add tag version', task: () => { const pkg = require(path.resolve('package.json')); return execa.stdout('git', ['tag', `v${pkg.version}`]); }, skip: () => noGitTagVersion }, { title: 'Push to origin with tags', task: () => { const currentBranch = execa.shellSync(`git branch | sed -n '/\* /s///p'`).stdout; return execa.stdout('git', ['push', 'origin', currentBranch, '--tags']); }, skip: () => skipPush } ], { renderer: verbose ? 'verbose' : 'default' }); return tasks.run(); }); } exports.run = run;