UNPKG

alinea

Version:

[![npm](https://img.shields.io/npm/v/alinea.svg)](https://npmjs.org/package/alinea) [![install size](https://packagephobia.com/badge?p=alinea)](https://packagephobia.com/result?p=alinea)

44 lines (42 loc) 1.35 kB
import { compareVersions } from "../../chunks/chunk-ZQJ6MIYG.js"; import "../../chunks/chunk-U5RRZUYZ.js"; // src/cli/util/EnsureReact.ts import { outcome } from "alinea/core/Outcome"; import fs from "node:fs"; import { createRequire } from "node:module"; import path from "node:path"; var require2 = createRequire(import.meta.url); function ensureReact() { function fail(message) { console.error(message); process.exit(1); } function ensurePackage(pkg, minVersion) { const location = outcome(() => require2.resolve(pkg)); if (!location.isSuccess()) throw fail( `We could not find the ${pkg} package. It's required for the alinea dashboard. You can install it with: npm i ${pkg}` ); const dir = path.dirname(location.value); const meta = outcome( () => fs.readFileSync(path.join(dir, "package.json"), "utf8") ); if (!meta.isSuccess()) throw fail(`Could not retrieve ${pkg}'s package.json file`); const { version } = JSON.parse(meta.value); const pkgVersionWorks = compareVersions.compare(version, minVersion, ">="); if (!pkgVersionWorks) throw fail( `${pkg} version ${version} is not supported, at least ${minVersion} is required ` ); } ensurePackage("react", "18.0.0"); ensurePackage("react-dom", "18.0.0"); } export { ensureReact };