From c19b73a84ca6305394915f157f7f04b4b2b52100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Victor=20Tozatti=20Risso?= <jvtr12@inf.ufpr.br> Date: Tue, 22 Nov 2016 11:50:21 -0200 Subject: [PATCH] Add middleware to check for the appropriate Node version - Add middleware to check for the appropriate Node version. This relies on the engines.node flag being set on package.json. --- src/libs/middlewares/checkVersion.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/libs/middlewares/checkVersion.js diff --git a/src/libs/middlewares/checkVersion.js b/src/libs/middlewares/checkVersion.js new file mode 100644 index 00000000..c3187adb --- /dev/null +++ b/src/libs/middlewares/checkVersion.js @@ -0,0 +1,22 @@ +const curPath = process.cwd(); +const libs = `${process.cwd()}/libs`; +const log = require(`${libs}/log`)(module); +const chalk = require('chalk'); +const packageConf = require(`${curPath}/package.json`); + +module.exports = () => { + // Parse version number from strings such as 'v4.2.0' or `>=4.0.0' + function parseVersionNumber(versionString) { + return parseFloat(versionString.replace(/[^\d\.]/g, '')); + } + // Ensure minimum supported node version is used + const minNodeVersion = parseVersionNumber(packageConf.engines.node); + const currentNodeVersion = parseVersionNumber(process.version); + if (minNodeVersion > currentNodeVersion) { + log.error(chalk.red(`You must upgrade node to >=${minNodeVersion}.x to use simcaq-node!`)); + return false; + } else { + log.info('Node version should work!'); + return true; + } +}; -- GitLab