From 7aefd470cddca9b9204eced2c744db133048a713 Mon Sep 17 00:00:00 2001 From: Victoria Zhizhonkova Date: Fri, 8 Dec 2023 14:48:54 +0700 Subject: [PATCH] tech: change Readme + change api --- packages/codemods/README.md | 4 ++-- packages/codemods/src/cli.ts | 4 ++-- packages/codemods/src/index.ts | 21 ++++++++++----------- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/packages/codemods/README.md b/packages/codemods/README.md index 8f8cd0bf94..864d552d68 100644 --- a/packages/codemods/README.md +++ b/packages/codemods/README.md @@ -28,7 +28,7 @@ Options: -V, --version output the version number -l --list list available codemods --all apply all available codemods - -g --glob glob for files upon which to apply the codemods (default: "**/*.tsx?") + -p --path path to files in which to apply the codemods (default: current directory) --dry-run no changes are made to files --ignore-config ignore files if they match patterns sourced from a configuration file (e.g. a .gitignore) --debug all logs are shown @@ -45,7 +45,7 @@ npx @vkontakte/vkui-codemods --all Если вы хотите исключить некоторые файлы или директории из обработки, то временно создайте файл (по примеру .gitignore) с перечисленными исключениями: ```shell -npx @vkontakte/vkui-codemods --all --glob "./examples" --ignore-config "./.codemodignore" +npx @vkontakte/vkui-codemods --all --path "./examples" --ignore-config "./.codemodignore" ``` ``` diff --git a/packages/codemods/src/cli.ts b/packages/codemods/src/cli.ts index 8902845e7c..2d942fa5d5 100644 --- a/packages/codemods/src/cli.ts +++ b/packages/codemods/src/cli.ts @@ -7,7 +7,7 @@ import pkg from '../package.json'; export interface CliOptions { list: boolean; - glob: string; + path: string; dryRun: boolean; ignoreConfig: string; debug: boolean; @@ -49,7 +49,7 @@ export const runCli = async (): Promise => { .usage(`${chalk.green('[codemod-name]')}`) .option('-l --list', 'list available codemods') .option('--all', 'apply all available codemods') - .option('-g --glob ', 'glob for files upon which to apply the codemods', '**/*.tsx?') + .option('-p --path ', 'path to files in which to apply the codemods') .option('--dry-run', 'no changes are made to files') .option( '--ignore-config ', diff --git a/packages/codemods/src/index.ts b/packages/codemods/src/index.ts index 42fad99dd4..60247fa0a5 100644 --- a/packages/codemods/src/index.ts +++ b/packages/codemods/src/index.ts @@ -7,7 +7,7 @@ import { CliOptions, runCli } from './cli.js'; import getAvailableCodemods, { TRANSFORM_DIR } from './getAvailableCodemods.js'; import logger from './helpers/logger.js'; -function runJSCodeShift(codemodName: string, flags: CliOptions) { +function runJSCodeShift(codemodName: string, workingDirectory: string, flags: CliOptions) { const args = ['--parser=tsx', '--extensions=tsx,ts', `--alias=${flags.alias}`]; if (flags.dryRun) { args.push('--dry'); @@ -27,7 +27,7 @@ function runJSCodeShift(codemodName: string, flags: CliOptions) { '-t', `${TRANSFORM_DIR}/${codemodName}.js`, ...args, - flags.glob, + workingDirectory, ], { stdio: 'inherit', @@ -76,12 +76,13 @@ async function verifyConfiguration(workingDirectory: string, codemodName?: strin const run = async () => { const { flags, codemodName } = await runCli(); - if (codemodName && flags.glob) { + const workingDirectory = flags.path ? flags.path : process.cwd(); + if (codemodName && workingDirectory) { const codemodes = getAvailableCodemods(); if (codemodes.includes(codemodName)) { - await verifyConfiguration(flags.glob, codemodName); + await verifyConfiguration(workingDirectory, codemodName); logger.info("\n 🚀 Let's go!"); - runJSCodeShift(codemodName, flags); + runJSCodeShift(codemodName, workingDirectory, flags); } else { logger.error( `Codemod ${codemodName} doesn't exist. Please check the available codemods by running with --list option`, @@ -89,15 +90,13 @@ const run = async () => { process.exit(0); } } - if (flags.all && flags.glob) { - await verifyConfiguration(flags.glob); + if (flags.all && workingDirectory) { + await verifyConfiguration(workingDirectory); logger.info("\n 🚀 Let's go!"); const codemodes = getAvailableCodemods(); codemodes.forEach((codemod) => { - if (flags.debug) { - logger.info(`Codemod ${codemod} in process...`); - } - runJSCodeShift(codemod, flags); + logger.info(`Codemod ${codemod} in process...`); + runJSCodeShift(codemod, workingDirectory, flags); }); }