{"version":3,"file":"getPackageJsonPath.cjs","names":["cacheMemory"],"sources":["../../../src/utils/getPackageJsonPath.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { cacheMemory } from './cacheMemory';\n\nconst MAX_LEVELS = 15;\n\ntype PackageJsonPathCache = {\n  packageJsonPath: string;\n  baseDir: string;\n};\n\nexport const getPackageJsonPath = (\n  startDir: string = process.cwd()\n): PackageJsonPathCache => {\n  const checkedCache = cacheMemory.get<PackageJsonPathCache>(\n    'packageJsonPath',\n    startDir\n  );\n\n  if (checkedCache) return checkedCache;\n\n  let currentDir = startDir;\n\n  for (let level = 0; level < MAX_LEVELS; level++) {\n    const packageJsonPath = join(currentDir, 'package.json');\n\n    if (existsSync(packageJsonPath)) {\n      cacheMemory.set('packageJsonPath', startDir, {\n        packageJsonPath,\n        baseDir: currentDir,\n      });\n\n      return { packageJsonPath, baseDir: currentDir };\n    }\n\n    const parentDir = dirname(currentDir);\n\n    // If we've reached the root directory, stop\n    if (parentDir === currentDir) {\n      break;\n    }\n\n    currentDir = parentDir;\n  }\n\n  throw new Error(\n    `Could not find package.json in current directory or any of the ${MAX_LEVELS} parent directories. Searched from: ${startDir}`\n  );\n};\n"],"mappings":";;;;;;;AAIA,MAAM,aAAa;AAOnB,MAAa,sBACX,WAAmB,QAAQ,KAAK,KACP;CACzB,MAAM,eAAeA,sCAAY,IAC/B,mBACA,SACD;AAED,KAAI,aAAc,QAAO;CAEzB,IAAI,aAAa;AAEjB,MAAK,IAAI,QAAQ,GAAG,QAAQ,YAAY,SAAS;EAC/C,MAAM,sCAAuB,YAAY,eAAe;AAExD,8BAAe,gBAAgB,EAAE;AAC/B,yCAAY,IAAI,mBAAmB,UAAU;IAC3C;IACA,SAAS;IACV,CAAC;AAEF,UAAO;IAAE;IAAiB,SAAS;IAAY;;EAGjD,MAAM,mCAAoB,WAAW;AAGrC,MAAI,cAAc,WAChB;AAGF,eAAa;;AAGf,OAAM,IAAI,MACR,kEAAkE,WAAW,sCAAsC,WACpH"}