{"version":3,"file":"cleanOutputDir.mjs","names":[],"sources":["../../src/cleanOutputDir.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { rm } from 'node:fs/promises';\nimport { getAppLogger } from '@intlayer/config/logger';\nimport type { IntlayerConfig } from '@intlayer/types/config';\n\nexport const cleanOutputDir = async (configuration: IntlayerConfig) => {\n  const {\n    dictionariesDir,\n    unmergedDictionariesDir,\n    dynamicDictionariesDir,\n    remoteDictionariesDir,\n    fetchDictionariesDir,\n    mainDir,\n    typesDir,\n    configDir,\n    cacheDir,\n  } = configuration.system;\n\n  const appLogger = getAppLogger(configuration);\n\n  const directoriesToClean: string[] = [\n    dictionariesDir, // Merged dictionaries\n    unmergedDictionariesDir, // Unmerged dictionaries\n    dynamicDictionariesDir, // Dynamic dictionaries\n    remoteDictionariesDir, // Remote dictionaries\n    fetchDictionariesDir, // Fetch dictionaries\n    mainDir, // Main files\n    typesDir, // Types\n    configDir, // Configuration\n    cacheDir, // Cache\n  ];\n\n  // Execute all deletions in parallel\n  await Promise.all(\n    directoriesToClean\n      .filter((dir) => existsSync(dir))\n      .map((dir) => rm(dir, { recursive: true, force: true }))\n  );\n\n  appLogger('Output directory cleaned', {\n    isVerbose: true,\n  });\n};\n"],"mappings":";;;;;AAKA,MAAa,iBAAiB,OAAO,kBAAkC;CACrE,MAAM,EACJ,iBACA,yBACA,wBACA,uBACA,sBACA,SACA,UACA,WACA,aACE,cAAc;CAElB,MAAM,YAAY,aAAa,aAAa;CAE5C,MAAM,qBAA+B;EACnC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CAGA,MAAM,QAAQ,IACZ,mBACG,QAAQ,QAAQ,WAAW,GAAG,CAAC,EAC/B,KAAK,QAAQ,GAAG,KAAK;EAAE,WAAW;EAAM,OAAO;CAAK,CAAC,CAAC,CAC3D;CAEA,UAAU,4BAA4B,EACpC,WAAW,KACb,CAAC;AACH"}