commitmnt
Version:
Copy your gitlab and bitbucket commits to a new, publishable github repo
69 lines • 4.28 kB
JavaScript
;
/** @module Main */
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.commitment = exports.initCommitment = void 0;
const ora_1 = __importDefault(require("ora"));
const modules_1 = require("./modules");
const utils_1 = require("./utils");
/**
* Default configuration object
*/
const defaultConfig = {
branch: 'main',
repositories: [],
rootDir: process.cwd(),
};
/**
* Initialize a cache and set of functions that can be utilized to copy
* commits from some repository to another repository. These are the same
* functions used under the hood of the main `commitment()` function. They are being
* exposed here so that a user with a more specific use case
* (eg. filtering the commits in some way before copying them) can do that if they desire.
*
* @param config subset of {@link Config} fields
* @returns a {@link Cache} instance, and the initialized {@link getCommitsForRepo} {@link copyRepo} {@link copyCommitsToRepo} functions
*
* @category Public API
*/
async function initCommitment(config) {
const cache = new utils_1.Cache(config.rootDir);
const cd = new utils_1.ChangeDirectory(config.rootDir);
const inject = (0, utils_1.createInjector)({
cache,
cd,
config: Object.assign(Object.assign({}, defaultConfig), config),
spinner: (0, ora_1.default)(),
});
return {
cache,
copyCommitsToRepo: inject(modules_1.copyCommitsToRepo),
copyRepo: inject(modules_1.copyRepo),
getCommitsForRepo: inject(modules_1.getCommitsForRepo),
};
}
exports.initCommitment = initCommitment;
/**
* Accepts a config and copys commits from the
* given repositories into the current repository
*
* @param options.quiet silences the console output / spinner
*
* @category Public API
*/
async function commitment(config, options) {
const cache = new utils_1.Cache(config.rootDir);
const cd = new utils_1.ChangeDirectory(config.rootDir);
const inject = (0, utils_1.createInjector)({
cache,
cd,
config: Object.assign(Object.assign({}, defaultConfig), config),
spinner: (0, ora_1.default)({ isSilent: options === null || options === void 0 ? void 0 : options.quiet }),
});
const main = inject(modules_1.getCommitsAndCopy);
await main();
}
exports.commitment = commitment;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxtQkFBbUI7Ozs7OztBQUVuQiw4Q0FBc0I7QUFFdEIsdUNBQThGO0FBRTlGLG1DQUFpRTtBQUVqRTs7R0FFRztBQUNILE1BQU0sYUFBYSxHQUFXO0lBQzVCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsWUFBWSxFQUFFLEVBQUU7SUFDaEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Q0FDdkIsQ0FBQztBQUVGOzs7Ozs7Ozs7OztHQVdHO0FBQ0ksS0FBSyxVQUFVLGNBQWMsQ0FBQyxNQUEwQztJQUM3RSxNQUFNLEtBQUssR0FBRyxJQUFJLGFBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsTUFBTSxFQUFFLEdBQUcsSUFBSSx1QkFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUUvQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHNCQUFjLEVBQU87UUFDbEMsS0FBSztRQUNMLEVBQUU7UUFDRixNQUFNLGtDQUNELGFBQWEsR0FDYixNQUFNLENBQ1Y7UUFDRCxPQUFPLEVBQUUsSUFBQSxhQUFHLEdBQUU7S0FDZixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSztRQUNMLGlCQUFpQixFQUFFLE1BQU0sQ0FBQywyQkFBaUIsQ0FBQztRQUM1QyxRQUFRLEVBQUUsTUFBTSxDQUFDLGtCQUFRLENBQUM7UUFDMUIsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLDJCQUFpQixDQUFDO0tBQzdDLENBQUM7QUFDSixDQUFDO0FBcEJELHdDQW9CQztBQUVEOzs7Ozs7O0dBT0c7QUFDSSxLQUFLLFVBQVUsVUFBVSxDQUFDLE1BQWMsRUFBRSxPQUE0QjtJQUMzRSxNQUFNLEtBQUssR0FBRyxJQUFJLGFBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsTUFBTSxFQUFFLEdBQUcsSUFBSSx1QkFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUUvQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHNCQUFjLEVBQU87UUFDbEMsS0FBSztRQUNMLEVBQUU7UUFDRixNQUFNLGtDQUNELGFBQWEsR0FDYixNQUFNLENBQ1Y7UUFDRCxPQUFPLEVBQUUsSUFBQSxhQUFHLEVBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssRUFBRSxDQUFDO0tBQzNDLENBQUMsQ0FBQztJQUVILE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQywyQkFBaUIsQ0FBQyxDQUFDO0lBRXZDLE1BQU0sSUFBSSxFQUFFLENBQUM7QUFDZixDQUFDO0FBakJELGdDQWlCQyJ9