commitmnt
Version:
Copy your gitlab and bitbucket commits to a new, publishable github repo
67 lines • 3.98 kB
JavaScript
/** @module Main */
import ora from 'ora';
import { copyCommitsToRepo, copyRepo, getCommitsAndCopy, getCommitsForRepo } from './modules';
import { Cache, ChangeDirectory, createInjector } from './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
*/
export async function initCommitment(config) {
const cache = new Cache(config.rootDir);
const cd = new ChangeDirectory(config.rootDir);
const inject = createInjector({
cache,
cd,
config: {
...defaultConfig,
...config,
},
spinner: ora(),
});
return {
cache,
copyCommitsToRepo: inject(copyCommitsToRepo),
copyRepo: inject(copyRepo),
getCommitsForRepo: inject(getCommitsForRepo),
};
}
/**
* 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
*/
export async function commitment(config, options) {
const cache = new Cache(config.rootDir);
const cd = new ChangeDirectory(config.rootDir);
const inject = createInjector({
cache,
cd,
config: {
...defaultConfig,
...config,
},
spinner: ora({ isSilent: options?.quiet }),
});
const main = inject(getCommitsAndCopy);
await main();
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1CQUFtQjtBQUVuQixPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFFdEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU5RixPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFakU7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBVztJQUM1QixNQUFNLEVBQUUsTUFBTTtJQUNkLFlBQVksRUFBRSxFQUFFO0lBQ2hCLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFO0NBQ3ZCLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUFDLE1BQTBDO0lBQzdFLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxNQUFNLEVBQUUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFL0MsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFPO1FBQ2xDLEtBQUs7UUFDTCxFQUFFO1FBQ0YsTUFBTSxFQUFFO1lBQ04sR0FBRyxhQUFhO1lBQ2hCLEdBQUcsTUFBTTtTQUNWO1FBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRTtLQUNmLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxLQUFLO1FBQ0wsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1FBQzVDLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQzFCLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztLQUM3QyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVUsQ0FBQyxNQUFjLEVBQUUsT0FBNEI7SUFDM0UsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sRUFBRSxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUUvQyxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQU87UUFDbEMsS0FBSztRQUNMLEVBQUU7UUFDRixNQUFNLEVBQUU7WUFDTixHQUFHLGFBQWE7WUFDaEIsR0FBRyxNQUFNO1NBQ1Y7UUFDRCxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztLQUMzQyxDQUFDLENBQUM7SUFFSCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUV2QyxNQUFNLElBQUksRUFBRSxDQUFDO0FBQ2YsQ0FBQyJ9