UNPKG

hardhat

Version:

Hardhat is an extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.

43 lines 1.91 kB
import { readFile } from "node:fs/promises"; import { findClosestPackageRoot, findDependencyPackageJson, readClosestPackageJson, } from "@nomicfoundation/hardhat-utils/package"; let cachedHardhatVersion; let cachedLatestHardhatVersion; let cachedEdrVersion; export async function getHardhatVersion() { if (cachedHardhatVersion !== undefined) { return cachedHardhatVersion; } const packageJson = await readClosestPackageJson(import.meta.url); cachedHardhatVersion = packageJson.version; return packageJson.version; } export async function getEdrVersion() { if (cachedEdrVersion !== undefined) { return cachedEdrVersion; } const hardhatRoot = await findClosestPackageRoot(import.meta.url); const edrPackageJsonPath = await findDependencyPackageJson(hardhatRoot, "@nomicfoundation/edr"); if (edrPackageJsonPath === undefined) { return ""; } const rawPackageJson = await readFile(edrPackageJsonPath, "utf-8"); const edrPackageJson = JSON.parse(rawPackageJson); cachedEdrVersion = edrPackageJson.version; return cachedEdrVersion; } export async function getLatestHardhatVersion() { const { getRequest } = await import("@nomicfoundation/hardhat-utils/request"); if (cachedLatestHardhatVersion !== undefined) { return cachedLatestHardhatVersion; } const packageJson = await readClosestPackageJson(import.meta.url); const packageName = packageJson.name; const latestHardhat = await getRequest(`https://registry.npmjs.org/${packageName}/latest`).then(({ body }) => { /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Cast to PackageJson because that's what we expect from the registry */ return body.json(); }); cachedLatestHardhatVersion = latestHardhat.version; return cachedLatestHardhatVersion; } //# sourceMappingURL=package.js.map