11// Import ansis for colors (similar to chalk)
22import { bold , dim , red , reset , underline , yellow } from 'ansis' ;
33import type { ESLint } from 'eslint' ;
4- import { mkdirSync , writeFileSync } from 'node:fs' ;
4+ import { mkdir , writeFile } from 'node:fs/promises ' ;
55import path from 'node:path' ;
66import type { FormatterConfig } from './types.js' ;
77
@@ -269,16 +269,14 @@ export type PersistConfig = {
269269 verbose : boolean ;
270270} ;
271271
272- export function persistEslintReport (
272+ export async function persistEslintReport (
273273 results : ESLint . LintResult [ ] ,
274274 options : PersistConfig ,
275- ) : boolean {
275+ ) : Promise < boolean > {
276276 const { outputDir, filename, format, verbose = false } = options ;
277277 try {
278- // eslint-disable-next-line n/no-sync
279- mkdirSync ( outputDir , { recursive : true } ) ;
280- // eslint-disable-next-line n/no-sync
281- writeFileSync (
278+ await mkdir ( outputDir , { recursive : true } ) ;
279+ await writeFile (
282280 path . join ( outputDir , `${ filename } .${ getExtensionForFormat ( format ) } ` ) ,
283281 formatContent ( results , format ) ,
284282 ) ;
@@ -297,19 +295,21 @@ export function persistEslintReport(
297295 }
298296}
299297
300- export function persistEslintReports (
298+ export async function persistEslintReports (
301299 formats : EslintFormat [ ] ,
302300 results : ESLint . LintResult [ ] ,
303301 options : Omit < PersistConfig , 'format' > ,
304- ) : boolean {
302+ ) : Promise < void > {
305303 const { outputDir, filename, verbose } = options ;
306304
307- return formats . every ( format =>
308- persistEslintReport ( results , {
309- outputDir,
310- filename,
311- format,
312- verbose,
313- } ) ,
305+ await Promise . all (
306+ formats . map ( format =>
307+ persistEslintReport ( results , {
308+ outputDir,
309+ filename,
310+ format,
311+ verbose,
312+ } ) ,
313+ ) ,
314314 ) ;
315315}
0 commit comments