|
1 | 1 | import type { ESLint } from 'eslint'; |
2 | 2 | import path from 'node:path'; |
3 | | -import type { EslintFormat, FormatterConfig } from './types.js'; |
| 3 | +import * as process from 'node:process'; |
| 4 | +import type { FormatterConfig } from './types.js'; |
| 5 | +import type { EslintFormat } from './utils.js'; |
4 | 6 | import { |
5 | 7 | formatTerminalOutput, |
6 | 8 | findConfigFromEnv as getConfigFromEnv, |
7 | 9 | persistEslintReports, |
8 | 10 | } from './utils.js'; |
9 | 11 |
|
10 | | -export const DEFAULT_OUTPUT_DIR = path.join(process.cwd(), '.eslint'); |
| 12 | +export const DEFAULT_OUTPUT_DIR = '.eslint'; |
11 | 13 | export const DEFAULT_FILENAME = 'eslint-report'; |
12 | 14 | export const DEFAULT_FORMATS = ['json'] as EslintFormat[]; |
13 | 15 | export const DEFAULT_TERMINAL = 'stylish' as EslintFormat; |
14 | 16 |
|
15 | | -export const DEFAULT_CONFIG: Required<FormatterConfig> = { |
| 17 | +export const DEFAULT_CONFIG: Required< |
| 18 | + Pick< |
| 19 | + FormatterConfig, |
| 20 | + 'outputDir' | 'filename' | 'formats' | 'terminal' | 'verbose' |
| 21 | + > |
| 22 | +> = { |
16 | 23 | outputDir: DEFAULT_OUTPUT_DIR, |
17 | 24 | filename: DEFAULT_FILENAME, |
18 | 25 | formats: DEFAULT_FORMATS, |
@@ -48,19 +55,29 @@ export default function multipleFormats( |
48 | 55 | results: ESLint.LintResult[], |
49 | 56 | _args?: unknown, |
50 | 57 | ): string { |
51 | | - const config = { ...DEFAULT_CONFIG, ...getConfigFromEnv(process.env) }; |
| 58 | + const config = { |
| 59 | + ...DEFAULT_CONFIG, |
| 60 | + ...getConfigFromEnv(process.env), |
| 61 | + } satisfies FormatterConfig; |
52 | 62 |
|
53 | 63 | const { |
54 | 64 | outputDir = DEFAULT_OUTPUT_DIR, |
55 | | - filename = DEFAULT_FILENAME, |
56 | | - formats = DEFAULT_FORMATS, |
| 65 | + projectsDir, |
| 66 | + projectName = process.env['NX_TASK_TARGET_PROJECT'], |
| 67 | + filename, |
| 68 | + formats, |
57 | 69 | terminal, |
58 | 70 | verbose = false, |
59 | 71 | } = config; |
60 | 72 |
|
| 73 | + const filalOutputDir = |
| 74 | + typeof projectName === 'string' && typeof projectsDir === 'string' |
| 75 | + ? path.join(projectsDir ?? '', projectName ?? '', outputDir) |
| 76 | + : outputDir; |
| 77 | + |
61 | 78 | try { |
62 | 79 | persistEslintReports(formats, results, { |
63 | | - outputDir, |
| 80 | + outputDir: filalOutputDir, |
64 | 81 | filename, |
65 | 82 | verbose, |
66 | 83 | }); |
|
0 commit comments