Ei kuvausta

build-requirements.js 994B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import chalk from 'chalk'
  2. import { readFileSync } from 'node:fs'
  3. import { exit, version } from 'node:process'
  4. // eslint-disable-next-line n/no-unpublished-import
  5. import { satisfies } from 'semver'
  6. import { JSRuntime, runtime } from './runtime.js'
  7. const packageJson = JSON.parse(readFileSync('./package.json', 'utf8'))
  8. /**
  9. * Check if the current node version match the required engines version.
  10. */
  11. export const checkNodeVersion = () => {
  12. const enginesNodeVersion = packageJson.engines.node
  13. if (satisfies(version, enginesNodeVersion) === false) {
  14. console.error(
  15. chalk.red(
  16. `Required node version ${enginesNodeVersion} not satisfied with current version ${version}`
  17. )
  18. )
  19. exit(1)
  20. }
  21. }
  22. switch (runtime) {
  23. case JSRuntime.node:
  24. checkNodeVersion()
  25. break
  26. case JSRuntime.browser:
  27. case JSRuntime.bun:
  28. case JSRuntime.deno:
  29. case JSRuntime.workerd:
  30. default:
  31. console.warn(chalk.yellow(`Unsupported '${runtime}' runtime detected`))
  32. break
  33. }