{"version":3,"sources":["../src/package/getPackageRootPath.ts"],"names":["getPackageRootPath","entryPath","excludeCurrent","path","pkgFile","fs","parent","InvalidProjectPathError"],"mappings":";;;;AAWO,SAASA,CAAAA,CAAmBC,CAAoB,CAAA,IAAA,CAAMC,CAA0B,CAAA,KAAA,CAAsB,CACpGC,CAAAA,CAAK,WAAWF,CAAS,CAAA,GAC1BA,CAAYE,CAAAA,CAAAA,CAAK,IAAK,CAAA,OAAA,CAAQ,GAAI,EAAA,CAAEF,GAAa,IAAI,CAAA,CAAA,CAEzD,GAAG,CACC,IAAMG,CAAUF,CAAAA,CAAAA,CACAC,CAAK,CAAA,IAAA,CAAKF,EAAW,IAAM,CAAA,cAAc,CACvCE,CAAAA,CAAAA,CAAK,IAAKF,CAAAA,CAAAA,CAAW,cAAc,CAAA,CACrD,GAAGI,CAAG,CAAA,UAAA,CAAWD,CAAO,CAAA,CACpB,OAAOD,CAAAA,CAAK,OAAQC,CAAAA,CAAO,EAE/B,IAAME,CAAAA,CAASH,CAAK,CAAA,OAAA,CAAQF,CAAS,CAAA,CACrC,OAAGK,CAAAA,GAASL,EAAkB,IACvBD,CAAAA,CAAAA,CAAmBM,CAAO,CAAA,CAAA,CAAK,CAC1C,CAAM,KAAA,CACF,MAAM,IAAIC,CACd,CACJ","file":"chunk-4GF37EHZ.mjs","sourcesContent":["import path from \"node:path\"\r\nimport { InvalidProjectPathError } from \"../errors\"\r\nimport fs from \"node:fs\"\r\n\r\n/**\r\n * 获取包的根路径。\r\n * @param entryPath - 入口路径，默认为当前目录。\r\n * @param excludeCurrent - 是否排除当前目录查找。\r\n * @returns 返回包的根路径字符串，如果未找到则返回 null。\r\n * @throws {InvalidProjectPathError} 当路径无效时抛出错误。\r\n */\r\nexport function getPackageRootPath(entryPath: string = \"./\", excludeCurrent: boolean = false): string | null {\r\n    if (!path.isAbsolute(entryPath)) {\r\n        entryPath = path.join(process.cwd(),entryPath || \"./\")\r\n    }\r\n    try{ \r\n        const pkgFile = excludeCurrent ? \r\n                        path.join(entryPath, \"..\", \"package.json\")\r\n                        : path.join(entryPath, \"package.json\")\r\n        if(fs.existsSync(pkgFile)){ \r\n            return path.dirname(pkgFile)\r\n        }\r\n        const parent = path.dirname(entryPath)\r\n        if(parent===entryPath) return null\r\n        return getPackageRootPath(parent,false)\r\n    }catch{\r\n        throw new InvalidProjectPathError()\r\n    }\r\n}\r\n\r\n"]}