@@ -256,11 +256,8 @@ function tryToCoerceVersion(rawVersion) {
256256 }
257257}
258258
259- function semverComparisonForOperator ( operator ) {
260- return {
261- '>' : semver . gt ,
262- '>=' : semver . gte ,
263- } [ operator ] ;
259+ function satisfiesRange ( version , condition , range ) {
260+ return semver . satisfies ( version , `${ condition } ${ range } ` , { includePrerelease : true } ) ;
264261}
265262
266263const DEFAULT_OPTIONS = {
@@ -388,10 +385,7 @@ const create = context => {
388385 const [ { condition, version} ] = packageVersions ;
389386
390387 const packageVersion = tryToCoerceVersion ( packageJson . version ) ;
391- const decidedPackageVersion = tryToCoerceVersion ( version ) ;
392-
393- const compare = semverComparisonForOperator ( condition ) ;
394- if ( packageVersion && compare ( packageVersion , decidedPackageVersion ) ) {
388+ if ( packageVersion && satisfiesRange ( packageVersion , condition , version ) ) {
395389 context . report ( {
396390 loc : sourceCode . getLoc ( comment ) ,
397391 messageId : MESSAGE_ID_REACHED_PACKAGE_VERSION ,
@@ -431,7 +425,6 @@ const create = context => {
431425 continue ;
432426 }
433427
434- const todoVersion = tryToCoerceVersion ( dependency . version ) ;
435428 const targetPackageVersion = tryToCoerceVersion ( targetPackageRawVersion ) ;
436429
437430 /* c8 ignore start */
@@ -441,9 +434,7 @@ const create = context => {
441434 }
442435 /* c8 ignore end */
443436
444- const compare = semverComparisonForOperator ( dependency . condition ) ;
445-
446- if ( compare ( targetPackageVersion , todoVersion ) ) {
437+ if ( satisfiesRange ( targetPackageVersion , dependency . condition , dependency . version ) ) {
447438 context . report ( {
448439 loc : sourceCode . getLoc ( comment ) ,
449440 messageId : MESSAGE_ID_VERSION_MATCHES ,
@@ -468,14 +459,11 @@ const create = context => {
468459 continue ;
469460 }
470461
471- const todoEngine = tryToCoerceVersion ( engine . version ) ;
472462 const targetPackageEngineVersion = tryToCoerceVersion (
473463 targetPackageRawEngineVersion ,
474464 ) ;
475465
476- const compare = semverComparisonForOperator ( engine . condition ) ;
477-
478- if ( compare ( targetPackageEngineVersion , todoEngine ) ) {
466+ if ( targetPackageEngineVersion && satisfiesRange ( targetPackageEngineVersion , engine . condition , engine . version ) ) {
479467 context . report ( {
480468 loc : sourceCode . getLoc ( comment ) ,
481469 messageId : MESSAGE_ID_ENGINE_MATCHES ,
0 commit comments