All files / lib cli.js

100% Statements 61/61
100% Branches 7/7
100% Functions 2/2
100% Lines 61/61

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 621x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1x 1x 1x 1x 4x 4x 4x 4x 4x 4x 4x 4x 4x 1x 1x 1x 1x 1x 1x  
"use strict";
/**
 * @module cli
 */
import bag from "bagofcli";
import p from "path";
import { fileURLToPath } from "url";
import RTK from "./rtk.js";
 
const DIRNAME = p.dirname(import.meta.url).replace("file://", "");
 
/**
 * Handle release command by loading RTK configuration file and running a
 * release using the resources and schemes defined in that configuration.
 *
 * @private
 * @param {Object} args - command options passed by bagofcli
 * @param {String} [args.configFile=.rtk.json] - RTK configuration file
 * @param {Boolean} [args.dryRun] - when true, no change will be made
 * @param {String} [args.releaseIncrementType=minor] - major, minor, or patch
 * @param {String} [args.postReleaseIncrementType=patch] - major, minor, or
 *   patch
 */
function _release(args) {
  const opts = {};
 
  const configFile = args.configFile || ".rtk.json";
  const config = JSON.parse(bag.lookupFile(configFile));
  opts.dryRun = args.dryRun;
 
  opts.releaseIncrementType = args.releaseIncrementType || "minor";
  opts.postReleaseIncrementType = args.postReleaseIncrementType || "patch";
  opts.tagFormat = config.tagFormat || "{version}";
 
  const rtk = new RTK(config.resources, opts);
  rtk.release(
    config.releaseScheme,
    config.versionScheme,
    config.scmScheme,
    bag.exit,
  );
}
 
/**
 * Execute RTK CLI.
 */
function exec() {
  const actions = {
    commands: {
      release: { action: _release },
    },
  };
 
  bag.command(DIRNAME, actions);
}
 
const exports = {
  exec: exec,
};
 
export { exports as default };