UNPKG

3.34 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../lib/get-package-version.ts"],"names":["cachedDeps","getDependencies","cwd","configurationPath","dependencies","devDependencies","content","fs","readFile","packageJson","JSON5","parse","getPackageVersion","name","cwd2","endsWith","path","posix","sep","win32","targetPath","require","resolve","paths","targetContent","version"],"mappings":"iFAAA,sBACA,0EACA,sEACA,kD,w4BAOA,GAAIA,CAAAA,UAAJ,CAEA,cAAeC,CAAAA,eAAf,CAA+B,CAC7BC,GAD6B,CAA/B,CAIqC,CACnC,GAAIF,UAAJ,CAAgB,CACd,MAAOA,CAAAA,UAAP,CACD,CAED,KAAMG,CAAAA,iBAAqC,CAAG,KAAM,oBAAO,cAAP,CAAuB,CACzED,GADyE,CAAvB,CAApD,CAGA,GAAI,CAACC,iBAAL,CAAwB,CACtB,MAAQH,CAAAA,UAAU,CAAG,CAAEI,YAAY,CAAE,EAAhB,CAAoBC,eAAe,CAAE,EAArC,CAArB,CACD,CAED,KAAMC,CAAAA,OAAO,CAAG,KAAMC,cAAGC,QAAH,CAAYL,iBAAZ,CAA+B,OAA/B,CAAtB,CACA,KAAMM,CAAAA,WAAgB,CAAGC,cAAMC,KAAN,CAAYL,OAAZ,CAAzB,CAEA,KAAM,CAAEF,YAAY,CAAG,EAAjB,CAAqBC,eAAe,CAAG,EAAvC,EAA8CI,WAAW,EAAI,EAAnE,CACA,MAAQT,CAAAA,UAAU,CAAG,CAAEI,YAAF,CAAgBC,eAAhB,CAArB,CACD,CAEM,cAAeO,CAAAA,iBAAf,CAAiC,CACtCV,GADsC,CAEtCW,IAFsC,CAAjC,CAMoB,CACzB,KAAM,CAAET,YAAF,CAAgBC,eAAhB,EAAoC,KAAMJ,CAAAA,eAAe,CAAC,CAAEC,GAAF,CAAD,CAA/D,CACA,GAAI,EAAEE,YAAY,CAACS,IAAD,CAAZ,EAAsBR,eAAe,CAACQ,IAAD,CAAvC,CAAJ,CAAoD,CAClD,MAAO,KAAP,CACD,CAED,KAAMC,CAAAA,IAAI,CACRZ,GAAG,CAACa,QAAJ,CAAaC,IAAI,CAACC,KAAL,CAAWC,GAAxB,GAAgChB,GAAG,CAACa,QAAJ,CAAaC,IAAI,CAACG,KAAL,CAAWD,GAAxB,CAAhC,CACIhB,GADJ,CAEK,GAAEA,GAAI,GAHb,CAKA,GAAI,0BACF,KAAMkB,CAAAA,UAAU,CAAGC,OAAO,CAACC,OAAR,CAAiB,GAAET,IAAK,eAAxB,CAAwC,CACzDU,KAAK,CAAE,CAACT,IAAD,CADkD,CAAxC,CAAnB,CAGA,KAAMU,CAAAA,aAAa,CAAG,KAAMjB,cAAGC,QAAH,CAAYY,UAAZ,CAAwB,OAAxB,CAA5B,CACA,4BAAOV,cAAMC,KAAN,CAAYa,aAAZ,EAA2BC,OAAlC,6BAA6C,IAA7C,CACD,CAAC,cAAM,CACN,MAAO,KAAP,CACD,CACF","sourcesContent":["import { promises as fs } from 'fs'\nimport findUp from 'next/dist/compiled/find-up'\nimport JSON5 from 'next/dist/compiled/json5'\nimport * as path from 'path'\n\ntype PackageJsonDependencies = {\n dependencies: Record<string, string>\n devDependencies: Record<string, string>\n}\n\nlet cachedDeps: PackageJsonDependencies\n\nasync function getDependencies({\n cwd,\n}: {\n cwd: string\n}): Promise<PackageJsonDependencies> {\n if (cachedDeps) {\n return cachedDeps\n }\n\n const configurationPath: string | undefined = await findUp('package.json', {\n cwd,\n })\n if (!configurationPath) {\n return (cachedDeps = { dependencies: {}, devDependencies: {} })\n }\n\n const content = await fs.readFile(configurationPath, 'utf-8')\n const packageJson: any = JSON5.parse(content)\n\n const { dependencies = {}, devDependencies = {} } = packageJson || {}\n return (cachedDeps = { dependencies, devDependencies })\n}\n\nexport async function getPackageVersion({\n cwd,\n name,\n}: {\n cwd: string\n name: string\n}): Promise<string | null> {\n const { dependencies, devDependencies } = await getDependencies({ cwd })\n if (!(dependencies[name] || devDependencies[name])) {\n return null\n }\n\n const cwd2 =\n cwd.endsWith(path.posix.sep) || cwd.endsWith(path.win32.sep)\n ? cwd\n : `${cwd}/`\n\n try {\n const targetPath = require.resolve(`${name}/package.json`, {\n paths: [cwd2],\n })\n const targetContent = await fs.readFile(targetPath, 'utf-8')\n return JSON5.parse(targetContent).version ?? null\n } catch {\n return null\n }\n}\n"]}
\No newline at end of file