@pagopa/dx-cli
Version:
A CLI useful to manage DX tools.
36 lines (35 loc) • 1.48 kB
JavaScript
import "core-js/actual/set/index.js";
import { Octokit } from "octokit";
import codemodRegistry from "./adapters/codemods/index.js";
import { makeCli } from "./adapters/commander/index.js";
import { makeValidationReporter } from "./adapters/logtape/validation-reporter.js";
import { makePackageJsonReader } from "./adapters/node/package-json.js";
import { makeRepositoryReader } from "./adapters/node/repository.js";
import { OctokitGitHubService } from "./adapters/octokit/index.js";
import { getConfig } from "./config.js";
import { getInfo } from "./domain/info.js";
import { applyCodemodById } from "./use-cases/apply-codemod.js";
import { listCodemods } from "./use-cases/list-codemods.js";
export const runCli = (version) => {
// Creating the adapters
const repositoryReader = makeRepositoryReader();
const packageJsonReader = makePackageJsonReader();
const validationReporter = makeValidationReporter();
const octokit = new Octokit({
auth: process.env.GITHUB_TOKEN,
});
const gitHubService = new OctokitGitHubService(octokit);
const deps = {
gitHubService,
packageJsonReader,
repositoryReader,
validationReporter,
};
const config = getConfig();
const useCases = {
applyCodemodById: applyCodemodById(codemodRegistry, getInfo(deps)),
listCodemods: listCodemods(codemodRegistry),
};
const program = makeCli(deps, config, useCases, version);
program.parse();
};