{"version":3,"sources":["../../src/commands/lint.command.ts"],"names":["lintOnlyOption","lintSkipOption","cacheOption","noCacheOption","refreshCacheOption","ignorePathOption","projectOption","maxWarningsOption","getToolsToRun","LINT_TOOLS","runEslint","runPrettier","runTsc","logger"],"mappings":";;;;;;;AAsBO,MAAM,mBAAA,GAAsB,CAAC,OAAA,KAAqB;AACvD,EAAA,OAAA,CACG,QAAQ,MAAM,CAAA,CACd,YAAY,yDAAyD,CAAA,CACrE,SAAS,YAAA,EAAc,oCAAA,EAAsC,CAAC,GAAG,CAAC,CAAA,CAClE,SAAA,CAAUA,+BAAc,CAAA,CACxB,SAAA,CAAUC,+BAAc,CAAA,CACxB,SAAA,CAAUC,4BAAW,CAAA,CACrB,UAAUC,8BAAa,CAAA,CACvB,UAAUC,mCAAkB,CAAA,CAC5B,UAAUC,iCAAgB,CAAA,CAC1B,SAAA,CAAUC,8BAAa,EACvB,SAAA,CAAUC,kCAAiB,EAC3B,MAAA,CAAO,OAAO,OAAO,OAAA,KAAgC;AACpD,IAAA,MAAM,UAAA,GAAaC,uBAAA,CAAcC,uBAAA,EAAY,OAAO,CAAA;AACpD,IAAA,IAAI,cAAA,GAAiB,IAAA;AAErB,IAAA,IAAI,UAAA,CAAW,QAAA,CAAS,QAAQ,CAAA,EAAG;AACjC,MAAA,cAAA,KAAmB,MAAMC,mBAAA,CAAU,KAAA,EAAO,OAAA,EAAS,KAAK,CAAA;AAAA,IAC1D;AACA,IAAA,IAAI,UAAA,CAAW,QAAA,CAAS,UAAU,CAAA,EAAG;AACnC,MAAA,cAAA,KAAmB,MAAMC,qBAAA,CAAY,KAAA,EAAO,OAAA,EAAS,IAAI,CAAA;AAAA,IAC3D;AACA,IAAA,IAAI,UAAA,CAAW,QAAA,CAAS,KAAK,CAAA,EAAG;AAC9B,MAAA,cAAA,KAAmB,MAAMC,iBAAO,OAAO,CAAA;AAAA,IACzC;AAEA,IAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,MAAAC,mBAAA,CAAO,MAAM,CAAA,uBAAA,CAAyB,CAAA;AACtC,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,IAChB;AACA,IAAAA,mBAAA,CAAO,QAAQ,oBAAoB,CAAA;AAAA,EACrC,CAAC,CAAA;AACL","file":"lint.command.cjs","sourcesContent":["import type { Command } from '@commander-js/extra-typings';\n\nimport {\n  cacheOption,\n  ignorePathOption,\n  lintOnlyOption,\n  lintSkipOption,\n  maxWarningsOption,\n  noCacheOption,\n  projectOption,\n  refreshCacheOption,\n} from '#constants/option.constants';\nimport { LINT_TOOLS } from '#types/option.types';\nimport type { LintCommandOptions } from '#types/option.types';\nimport {\n  getToolsToRun,\n  runEslint,\n  runPrettier,\n  runTsc,\n} from '#utils/cli.utils';\nimport { logger } from '#utils/logger.utils';\n\nexport const registerLintCommand = (program: Command) => {\n  program\n    .command('lint')\n    .description('Runs ESLint, Prettier check, and TypeScript type check.')\n    .argument('[files...]', 'Files or directories to lint/check', ['.'])\n    .addOption(lintOnlyOption)\n    .addOption(lintSkipOption)\n    .addOption(cacheOption)\n    .addOption(noCacheOption)\n    .addOption(refreshCacheOption)\n    .addOption(ignorePathOption)\n    .addOption(projectOption)\n    .addOption(maxWarningsOption)\n    .action(async (files, options: LintCommandOptions) => {\n      const toolsToRun = getToolsToRun(LINT_TOOLS, options);\n      let overallSuccess = true;\n\n      if (toolsToRun.includes('eslint')) {\n        overallSuccess &&= await runEslint(files, options, false);\n      }\n      if (toolsToRun.includes('prettier')) {\n        overallSuccess &&= await runPrettier(files, options, true);\n      }\n      if (toolsToRun.includes('tsc')) {\n        overallSuccess &&= await runTsc(options);\n      }\n\n      if (!overallSuccess) {\n        logger.error(`Linting process failed.`);\n        process.exit(1);\n      }\n      logger.success('All checks passed!');\n    });\n};\n"]}