Skip to content

⬅️ Back to Table of Contents

📄 dependencyConstraints

📊 Analysis Summary

Metric Count
🔧 Functions 2
📦 Imports 2
📊 Variables & Constants 1

📚 Table of Contents

🛠️ File Location:

📂 packages/rule-tester/src/utils/dependencyConstraints.ts

📦 Imports

Name Source
DependencyConstraint ../types/DependencyConstraint
SemverVersionConstraint ../types/DependencyConstraint

Variables & Constants

Name Type Kind Value Exported
BASE_SATISFIES_OPTIONS semver.RangeOptions const { includePrerelease: true, }

Functions

satisfiesAllDependencyConstraints(dependencyConstraints: DependencyConstraint | undefined): boolean

Parameters:

  • dependencyConstraints DependencyConstraint | undefined

Returns: boolean

Calls:

  • Object.entries
  • satisfiesDependencyConstraint
Code
export function satisfiesAllDependencyConstraints(
  dependencyConstraints: DependencyConstraint | undefined,
): boolean {
  if (dependencyConstraints == null) {
    return true;
  }

  for (const [packageName, constraint] of Object.entries(
    dependencyConstraints,
  )) {
    if (!satisfiesDependencyConstraint(packageName, constraint)) {
      return false;
    }
  }

  return true;
}

satisfiesDependencyConstraint(packageName: string, constraintIn: DependencyConstraint[string]): boolean

Parameters:

  • packageName string
  • constraintIn DependencyConstraint[string]

Returns: boolean

Calls:

  • semver.satisfies
  • require

Internal Comments:

// eslint-disable-next-line @typescript-eslint/no-require-imports (x2)

Code
function satisfiesDependencyConstraint(
  packageName: string,
  constraintIn: DependencyConstraint[string],
): boolean {
  const constraint: SemverVersionConstraint =
    typeof constraintIn === 'string'
      ? {
          range: `>=${constraintIn}`,
        }
      : constraintIn;

  return semver.satisfies(
    // eslint-disable-next-line @typescript-eslint/no-require-imports
    (require(`${packageName}/package.json`) as { version: string }).version,
    constraint.range,
    typeof constraint.options === 'object'
      ? { ...BASE_SATISFIES_OPTIONS, ...constraint.options }
      : constraint.options,
  );
}

Generated by Syntax Scribe