or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.md
tile.json

tessl/npm-babel--compat-data

Provides compatibility data for determining which Babel plugins are required to support JavaScript features across different browser environments

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/@babel/compat-data@7.28.x

To install, run

npx @tessl/cli install tessl/npm-babel--compat-data@7.28.0

index.mddocs/

@babel/compat-data

@babel/compat-data provides compatibility data for determining which Babel plugins are required to support specific JavaScript features across different browser environments. It contains structured JSON data files that map JavaScript language features, proposals, and built-ins to their browser support matrices, enabling build tools and bundlers to automatically configure the minimal set of Babel transformations needed for target environments.

Package Information

  • Package Name: @babel/compat-data
  • Package Type: npm
  • Language: JavaScript
  • Installation: npm install @babel/compat-data

Core Imports

ESM (ES Modules):

import plugins from "@babel/compat-data/plugins";
import nativeModules from "@babel/compat-data/native-modules";
import corejs2BuiltIns from "@babel/compat-data/corejs2-built-ins";
import corejs3ShippedProposals from "@babel/compat-data/corejs3-shipped-proposals";
import overlappingPlugins from "@babel/compat-data/overlapping-plugins";
import pluginBugfixes from "@babel/compat-data/plugin-bugfixes";

CommonJS:

const plugins = require("@babel/compat-data/plugins");
const nativeModules = require("@babel/compat-data/native-modules");
const corejs2BuiltIns = require("@babel/compat-data/corejs2-built-ins");
const corejs3ShippedProposals = require("@babel/compat-data/corejs3-shipped-proposals");
const overlappingPlugins = require("@babel/compat-data/overlapping-plugins");
const pluginBugfixes = require("@babel/compat-data/plugin-bugfixes");

Basic Usage

import plugins from "@babel/compat-data/plugins";
import nativeModules from "@babel/compat-data/native-modules";

// Check if a plugin is needed for Chrome 90
const chromeVersion = "90";
const pluginName = "transform-class-static-block";

if (plugins[pluginName] && plugins[pluginName].chrome) {
  const minVersion = plugins[pluginName].chrome;
  const isSupported = parseInt(chromeVersion) >= parseInt(minVersion);
  console.log(`${pluginName} supported in Chrome ${chromeVersion}: ${isSupported}`);
}

// Get all browser targets for ES6 modules
console.log("ES6 module support:", nativeModules["es6.module"]);

Architecture

@babel/compat-data consists of six main compatibility datasets:

  • Plugin Data: Browser support for Babel transform plugins
  • Native Modules: Browser support for ES6 modules
  • Core-js Built-ins: Browser support for JavaScript built-in methods and objects (core-js 2)
  • Core-js Shipped Proposals: List of proposals shipped in core-js 3
  • Overlapping Plugins: Mapping of plugins to their related bugfix plugins
  • Plugin Bugfixes: Browser support for Babel bugfix plugins

All data follows a consistent pattern where features are mapped to browser version objects containing minimum supported version numbers.

Capabilities

Plugin Compatibility Data

Browser and engine compatibility data for Babel transform plugins. Used by preset-env to determine which plugins are needed based on target environments.

/**
 * Plugin compatibility data mapping plugin names to browser support objects
 * @type {Record<string, BrowserSupport>}
 */
declare const plugins: Record<string, BrowserSupport>;

Native Modules Support Data

Browser and engine support data for ES6 modules functionality.

/**
 * Native modules support data
 * @type {Record<string, BrowserSupport>}
 */
declare const nativeModules: Record<string, BrowserSupport>;

Core-js 2 Built-ins Data

Browser and engine support data for JavaScript built-in methods and objects as provided by core-js 2 polyfills.

/**
 * Core-js 2 built-ins compatibility data
 * @type {Record<string, BrowserSupport>}
 */
declare const corejs2BuiltIns: Record<string, BrowserSupport>;

Core-js 3 Shipped Proposals

List of JavaScript proposals that are shipped in core-js 3.

/**
 * Array of proposal names shipped in core-js 3
 * @type {string[]}
 */
declare const corejs3ShippedProposals: string[];

Overlapping Plugins Mapping

Maps plugins to their related bugfix plugins that provide overlapping functionality.

/**
 * Plugin overlap mapping showing which bugfix plugins relate to each main plugin
 * @type {Record<string, string[]>}
 */
declare const overlappingPlugins: Record<string, string[]>;

Plugin Bugfixes Data

Browser and engine compatibility data for Babel bugfix plugins that address specific browser implementation issues.

/**
 * Plugin bugfixes compatibility data
 * @type {Record<string, BrowserSupport>}
 */
declare const pluginBugfixes: Record<string, BrowserSupport>;

Types

/**
 * Browser support object mapping browser/engine names to minimum version strings
 */
interface BrowserSupport {
  /** Google Chrome minimum version */
  chrome?: string;
  /** Mozilla Firefox minimum version */
  firefox?: string;
  /** Apple Safari minimum version */
  safari?: string;
  /** Microsoft Edge minimum version */
  edge?: string;
  /** Opera minimum version */
  opera?: string;
  /** Internet Explorer minimum version */
  ie?: string;
  /** Node.js minimum version */
  node?: string;
  /** Deno minimum version */
  deno?: string;
  /** Electron minimum version */
  electron?: string;
  /** Safari on iOS minimum version */
  ios?: string;
  /** Safari on iOS (alternative key) minimum version */
  ios_saf?: string;
  /** Chrome on Android minimum version */
  android?: string;
  /** Chrome on Android (alternative key) minimum version */
  and_chr?: string;
  /** Firefox on Android minimum version */
  and_ff?: string;
  /** Samsung Internet minimum version */
  samsung?: string;
  /** Opera Mobile minimum version */
  opera_mobile?: string;
  /** Opera Mobile (alternative key) minimum version */
  op_mob?: string;
  /** Rhino JavaScript engine minimum version */
  rhino?: string;
  /** PhantomJS minimum version */
  phantom?: string;
}