{"version":3,"file":"searchConfigurationFile.cjs","names":["getPackageJsonPath"],"sources":["../../../src/configFile/searchConfigurationFile.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { resolve } from 'node:path';\nimport { logger } from '../logger';\nimport { getPackageJsonPath } from '../utils/getPackageJsonPath';\n\nexport const configurationFilesCandidates = [\n  'intlayer.config.ts',\n  'intlayer.config.js',\n  'intlayer.config.json',\n  'intlayer.config.json5',\n  'intlayer.config.jsonc',\n  'intlayer.config.cjs',\n  'intlayer.config.mjs',\n  '.intlayerrc',\n] as const;\n\ntype SearchConfigurationFileResult = {\n  configurationFilePath?: string;\n  numCustomConfiguration: number;\n};\n\n// CACHE: Store results to avoid re-walking the file system for the same path\nconst rootPathCache = new Map<string, SearchConfigurationFileResult>();\n\n/**\n * Search for the configuration file in the given path\n *\n * List of detected configuration files:\n * - intlayer.config.ts\n * - intlayer.config.js\n * - intlayer.config.json\n * - intlayer.config.cjs\n * - intlayer.config.mjs\n * - .intlayerrc\n */\nexport const searchConfigurationFile = (\n  startDir: string\n): SearchConfigurationFileResult => {\n  let configurationFilePath: string | undefined;\n  let numCustomConfiguration = 0;\n\n  // OPTIMIZATION: Return cached result immediately\n  if (rootPathCache.has(startDir)) {\n    return rootPathCache.get(startDir) as SearchConfigurationFileResult;\n  }\n\n  const { baseDir } = getPackageJsonPath(startDir);\n\n  for (const fileName of configurationFilesCandidates) {\n    try {\n      const filePath = resolve(baseDir, fileName);\n\n      // Check if the file exists\n      if (!existsSync(filePath)) {\n      } else {\n        numCustomConfiguration += 1;\n\n        if (!configurationFilePath) {\n          configurationFilePath = filePath;\n        }\n      }\n    } catch (error) {\n      // Return \"Cannot use import statement outside a module\"\n      logger(`${fileName}: ${error as string}`, { level: 'error' });\n    }\n  }\n\n  return { configurationFilePath, numCustomConfiguration };\n};\n"],"mappings":";;;;;;;;AAKA,MAAa,+BAA+B;CAC1C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAQD,MAAM,gCAAgB,IAAI,KAA4C;;;;;;;;;;;;AAatE,MAAa,2BACX,aACkC;CAClC,IAAI;CACJ,IAAI,yBAAyB;AAG7B,KAAI,cAAc,IAAI,SAAS,CAC7B,QAAO,cAAc,IAAI,SAAS;CAGpC,MAAM,EAAE,YAAYA,oDAAmB,SAAS;AAEhD,MAAK,MAAM,YAAY,6BACrB,KAAI;EACF,MAAM,kCAAmB,SAAS,SAAS;AAG3C,MAAI,yBAAY,SAAS,EAAE,QACpB;AACL,6BAA0B;AAE1B,OAAI,CAAC,sBACH,yBAAwB;;UAGrB,OAAO;AAEd,wBAAO,GAAG,SAAS,IAAI,SAAmB,EAAE,OAAO,SAAS,CAAC;;AAIjE,QAAO;EAAE;EAAuB;EAAwB"}