77/**
88 * This is the minimum required Node.js version for all @instana packages.
99 */
10- exports . minimumNodeJsVersion = 18 ;
10+ exports . minimumNodeJsVersion = '18.19.0' ;
1111
1212/**
1313 * Checks if the value of process.version denotes a Node.js version that is not supported, that is, older than the given
@@ -18,10 +18,21 @@ exports.minimumNodeJsVersion = 18;
1818exports . isNodeJsTooOld = function isNodeJsTooOld ( ) {
1919 const currentVersion = process . version ;
2020 if ( typeof currentVersion === 'string' ) {
21- const majorVersionStr = process . version . split ( '.' ) [ 0 ] ;
21+ const parts = currentVersion . split ( '.' ) ;
22+ const majorVersionStr = parts [ 0 ] ;
2223 if ( majorVersionStr . length > 1 && majorVersionStr . charAt ( 0 ) === 'v' ) {
23- const majorVersion = parseInt ( majorVersionStr . substring ( 1 ) , 10 ) ;
24- return ! isNaN ( majorVersion ) && majorVersion < exports . minimumNodeJsVersion ;
24+ const major = parseInt ( majorVersionStr . slice ( 1 ) , 10 ) ;
25+ const minor = parseInt ( parts [ 1 ] , 10 ) ;
26+ const patch = parseInt ( parts [ 2 ] , 10 ) ;
27+
28+ if ( isNaN ( major ) || isNaN ( minor ) || isNaN ( patch ) ) return false ;
29+
30+ const [ minMajor , minMinor , minPatch ] = exports . minimumNodeJsVersion . split ( '.' ) . map ( Number ) ;
31+ return (
32+ major < minMajor ||
33+ ( major === minMajor && minor < minMinor ) ||
34+ ( major === minMajor && minor === minMinor && patch < minPatch )
35+ ) ;
2536 }
2637 }
2738 return false ;
0 commit comments