UNPKG

next

Version:

The React Framework

50 lines (49 loc) 1.55 kB
import { promises as fs } from 'fs'; import findUp from 'next/dist/compiled/find-up'; import JSON5 from 'next/dist/compiled/json5'; import * as path from 'path'; let cachedDeps; export function getDependencies({ cwd }) { if (cachedDeps) { return cachedDeps; } return cachedDeps = (async ()=>{ const configurationPath = await findUp('package.json', { cwd }); if (!configurationPath) { return { dependencies: {}, devDependencies: {} }; } const content = await fs.readFile(configurationPath, 'utf-8'); const packageJson = JSON5.parse(content); const { dependencies = {}, devDependencies = {} } = packageJson || {}; return { dependencies, devDependencies }; })(); } export async function getPackageVersion({ cwd, name }) { const { dependencies, devDependencies } = await getDependencies({ cwd }); if (!(dependencies[name] || devDependencies[name])) { return null; } const cwd2 = cwd.endsWith(path.posix.sep) || cwd.endsWith(path.win32.sep) ? cwd : `${cwd}/`; try { const targetPath = require.resolve(`${name}/package.json`, { paths: [ cwd2 ] }); const targetContent = await fs.readFile(targetPath, 'utf-8'); return JSON5.parse(targetContent).version ?? null; } catch { return null; } } //# sourceMappingURL=get-package-version.js.map