UNPKG

@ordino.ai/cli

Version:
58 lines (52 loc) 1.42 kB
import * as packageJson from '../../../package.json'; interface VersionRequirements { node: string; npm: string; } interface ParsedVersionRequirements { node: { major: number; minor: number; patch: number; }; npm: { major: number; minor: number; patch: number; }; } function getVersionRequirementsFromPackageJson(): VersionRequirements { const engines = (packageJson as any).engines; if (!engines) { return { node: ">=20.8.1", npm: ">=10.1.0" }; } return { node: engines.node || ">=20.8.1", npm: engines.npm || ">=10.1.0" }; } function parseVersionRequirement(versionString: string): { major: number; minor: number; patch: number } { const cleanVersion = versionString.replace(/^[>=<~^]*v?/, ''); const parts = cleanVersion.split('.'); if (parts.length < 3) { throw new Error(`Invalid version format: ${versionString}`); } return { major: parseInt(parts[0], 10), minor: parseInt(parts[1], 10), patch: parseInt(parts[2], 10) }; } export function getVersionRequirements(): ParsedVersionRequirements { const requirements = getVersionRequirementsFromPackageJson(); return { node: parseVersionRequirement(requirements.node), npm: parseVersionRequirement(requirements.npm) }; } export function getVersionRequirementsAsStrings(): VersionRequirements { return getVersionRequirementsFromPackageJson(); }