Baseline Logoeslint-plugin-baseline-js

FAQ

Frequently asked questions and troubleshooting.

If this page doesn’t help, please open an issue on GitHub with repro steps and a minimal sample.

Web APIs are not being detected

  • The minimal preset (configs.baseline) does not enable Web APIs / JS Builtins.
    • Use presets: configs.recommended or configs['recommended-ts'].
  • Without TypeScript types, instance‑member checks (e.g. element.animate()) are skipped.
    • Configure @typescript-eslint/parser and parserOptions.project.
  • Dynamic access / deep aliasing is intentionally conservative to avoid false positives.
  • Reports only happen when a feature exceeds your Baseline (widely/newly/year).
Going from minimal → recommended (Flat Config)
import baselineJs, { BASELINE } from 'eslint-plugin-baseline-js';

export default [
  { plugins: { 'baseline-js': baselineJs } },
  // Switch from minimal → recommended (auto)
  baselineJs.configs.recommended({ available: BASELINE.WIDELY }),
];

Using with oxlint: less precise detection

oxlint JS plugins don't have access to TypeScript type information. Checks that rely on type resolution (Set.difference(), Iterator.map(), response.arrayBuffer(), etc.) won't fire. Everything else (syntax, constructors, static methods, globals) works fine.

If you need full instance-member coverage, run ESLint with the type-aware preset.

False positives / suppression

Try the following first, then open an issue with a repro sample if needed.

  • ignoreFeatures: suppress by web‑features featureId (or /regex/)
  • ignoreNodeTypes: suppress by ESTree node.type (e.g. WithStatement)

Conflicts with other rules/presets

  • Use Flat Config overrides to scope, suppress, or override.
  • Recommended presets (recommended / recommended-ts) configure just this plugin’s rule; you can combine with other configs.
Temporarily relax severity
rules: {
  // Start with 'warn' to understand the impact
  'baseline-js/use-baseline': ['warn', { available: 'widely' }],
}

Last updated on