{"version":3,"sources":["../../src/commands/format.command.ts"],"names":["formatOnlyOption","formatSkipOption","cacheOption","noCacheOption","refreshCacheOption","ignorePathOption","getToolsToRun","FORMAT_TOOLS","runEslint","runPrettier","logger"],"mappings":";;;;;;;AAeO,MAAM,qBAAA,GAAwB,CAAC,OAAA,KAAqB;AACzD,EAAA,OAAA,CACG,QAAQ,QAAQ,CAAA,CAChB,KAAA,CAAM,GAAG,EACT,WAAA,CAAY,uDAAuD,CAAA,CACnE,QAAA,CAAS,cAAc,gCAAA,EAAkC,CAAC,GAAG,CAAC,EAE9D,SAAA,CAAUA,iCAAgB,CAAA,CAC1B,SAAA,CAAUC,iCAAgB,CAAA,CAC1B,SAAA,CAAUC,4BAAW,CAAA,CACrB,UAAUC,8BAAa,CAAA,CACvB,SAAA,CAAUC,mCAAkB,EAC5B,SAAA,CAAUC,iCAAgB,EAC1B,MAAA,CAAO,OAAO,OAAiB,OAAA,KAAkC;AAChE,IAAA,MAAM,UAAA,GAAaC,uBAAA,CAAcC,yBAAA,EAAc,OAAO,CAAA;AACtD,IAAA,IAAI,cAAA,GAAiB,IAAA;AAGrB,IAAA,IAAI,UAAA,CAAW,QAAA,CAAS,QAAQ,CAAA,EAAG;AAEjC,MAAA,cAAA,KAAmB,MAAMC,mBAAA;AAAA,QACvB,KAAA;AAAA,QACA;AAAA,UACE,OAAO,OAAA,CAAQ,KAAA;AAAA;AAAA,UACf,cAAc,OAAA,CAAQ,YAAA;AAAA,UACtB,eAAe,OAAA,CAAQ;AAAA,SACzB;AAAA,QACA;AAAA,OACF;AAAA,IACF;AACA,IAAA,IAAI,UAAA,CAAW,QAAA,CAAS,UAAU,CAAA,EAAG;AAEnC,MAAA,cAAA,KAAmB,MAAMC,qBAAA;AAAA,QACvB,KAAA;AAAA,QACA;AAAA,UACE,OAAO,OAAA,CAAQ,KAAA;AAAA,UACf,cAAc,OAAA,CAAQ,YAAA;AAAA,UACtB,eAAe,OAAA,CAAQ,aAAA;AAAA,UACvB,YAAY,OAAA,CAAQ;AAAA,SACtB;AAAA,QACA;AAAA,OACF;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,MAAAC,mBAAA,CAAO,MAAM,CAAA,sCAAA,CAAwC,CAAA;AACrD,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,IAChB;AACA,IAAAA,mBAAA,CAAO,QAAQ,sBAAsB,CAAA;AAAA,EACvC,CAAC,CAAA;AAEH,EAAA,OAAO,OAAA;AACT","file":"format.command.cjs","sourcesContent":["import type { Command } from '@commander-js/extra-typings';\n\nimport {\n  cacheOption,\n  formatOnlyOption,\n  formatSkipOption,\n  ignorePathOption,\n  noCacheOption,\n  refreshCacheOption,\n} from '#constants/option.constants';\nimport { FORMAT_TOOLS } from '#types/option.types';\nimport type { FormatCommandOptions } from '#types/option.types';\nimport { getToolsToRun, runEslint, runPrettier } from '#utils/cli.utils';\nimport { logger } from '#utils/logger.utils';\n\nexport const registerFormatCommand = (program: Command) => {\n  program\n    .command('format')\n    .alias('f')\n    .description('Formats code using ESLint --fix and Prettier --write.')\n    .argument('[files...]', 'Files or directories to format', ['.'])\n\n    .addOption(formatOnlyOption)\n    .addOption(formatSkipOption)\n    .addOption(cacheOption)\n    .addOption(noCacheOption)\n    .addOption(refreshCacheOption)\n    .addOption(ignorePathOption)\n    .action(async (files: string[], options: FormatCommandOptions) => {\n      const toolsToRun = getToolsToRun(FORMAT_TOOLS, options);\n      let overallSuccess = true;\n\n      // Run ESLint first, then Prettier for formatting\n      if (toolsToRun.includes('eslint')) {\n        // Pass only relevant options to runEslint\n        overallSuccess &&= await runEslint(\n          files,\n          {\n            cache: options.cache, // ESLint uses --cache flag too\n            refreshCache: options.refreshCache,\n            cacheLocation: options.cacheLocation,\n          },\n          true,\n        ); // isFix = true\n      }\n      if (toolsToRun.includes('prettier')) {\n        // Pass only relevant options to runPrettier\n        overallSuccess &&= await runPrettier(\n          files,\n          {\n            cache: options.cache,\n            refreshCache: options.refreshCache,\n            cacheLocation: options.cacheLocation,\n            ignorePath: options.ignorePath,\n          },\n          false,\n        ); // isCheck = false\n      }\n\n      if (!overallSuccess) {\n        logger.error(`Formatting process encountered errors.`);\n        process.exit(1);\n      }\n      logger.success('Formatting complete!');\n    });\n\n  return program;\n};\n"]}