or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

compatibility-analysis.mdcompatibility-data.mdentry-points.mdindex.mdversion-utilities.md
tile.json

tessl/npm-core-js-compat

Contains data about the necessity of core-js modules and API for getting a list of required core-js modules by browserslist query

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/core-js-compat@3.45.x

To install, run

npx @tessl/cli install tessl/npm-core-js-compat@3.45.0

index.mddocs/

core-js-compat

core-js-compat provides compatibility data and utilities for determining which core-js polyfills are needed for specific browser targets. It offers an API that accepts browserslist queries or target environment objects and returns lists of required core-js modules along with detailed compatibility information.

Package Information

  • Package Name: core-js-compat
  • Package Type: npm
  • Language: JavaScript
  • Installation: npm install core-js-compat

Core Imports

const compat = require('core-js-compat');

Individual components can also be imported:

const compat = require('core-js-compat/compat');
const data = require('core-js-compat/data');
const entries = require('core-js-compat/entries');
const modules = require('core-js-compat/modules');
const getModulesListForTargetVersion = require('core-js-compat/get-modules-list-for-target-version');

Basic Usage

const compat = require('core-js-compat');

const result = compat({
  targets: '> 1%',              // browserslist query
  modules: [                    // optional filter
    'core-js/actual',
    'esnext.array.unique-by',
    /^web\./
  ],
  exclude: ['web.atob'],        // optional exclusions
  version: '3.45',              // core-js version
  inverse: false                // show required modules
});

console.log(result.list);      // ['es.array.at', 'es.object.has-own', ...]
console.log(result.targets);   // { 'es.array.at': { ios: '14.5-14.8' }, ... }

Architecture

core-js-compat is built around several key components:

  • Compatibility Analysis: Core compat function that processes targets and returns required modules
  • Compatibility Data: Complete browser support data for all core-js modules
  • Entry Point Mapping: Maps core-js entry points to their constituent modules
  • Version Utilities: Tools for working with specific core-js versions
  • Target Parsing: Unified handling of browserslist queries and target objects

Capabilities

Compatibility Analysis

Core compatibility analysis functionality that determines which core-js modules are needed for specified browser targets. Supports complex filtering, exclusion patterns, and inverse analysis.

function compat(options?: CompatOptions): CompatOutput;

interface CompatOptions {
  modules?: Modules;
  exclude?: Modules;
  targets?: Targets | BrowserslistQuery;
  version?: string;
  inverse?: boolean;
  filter?: Modules; // deprecated
}

interface CompatOutput {
  list: ModuleName[];
  targets: {
    [module: ModuleName]: {
      [target in Target]?: TargetVersion
    }
  };
}

Compatibility Analysis

Browser Compatibility Data

Complete compatibility data for all core-js modules across different browsers and JavaScript engines. Contains minimum version requirements for each module.

const data: CompatData;

interface CompatData {
  [module: ModuleName]: {
    [target in Target]?: TargetVersion
  };
}

Compatibility Data

Entry Point Mapping

Maps core-js entry points to their required modules, enabling targeted polyfill loading based on usage patterns.

const entries: {
  [entry_point: string]: readonly ModuleName[]
};

Entry Points

Version-Specific Module Lists

Utilities for working with specific core-js versions and determining module availability across versions.

function getModulesListForTargetVersion(version: TargetVersion): readonly ModuleName[];

const modules: readonly ModuleName[];

Version Utilities

Types

type ModuleName = string;

type Target = 
  | 'android' | 'bun' | 'chrome' | 'chrome-android' | 'deno' | 'edge' 
  | 'electron' | 'firefox' | 'firefox-android' | 'hermes' | 'ie' | 'ios' 
  | 'node' | 'opera' | 'opera-android' | 'phantom' | 'quest' | 'react-native' 
  | 'rhino' | 'safari' | 'samsung' | 'oculus' | 'react' | 'opera_mobile';

type TargetVersion = string;

type Modules = string | RegExp | readonly (string | RegExp)[];

type BrowserslistQuery = string | ReadonlyArray<string>;

type Environments = {
  [target in Target]?: string | number;
};

type Targets = Environments & {
  browsers?: Environments | BrowserslistQuery;
  esmodules?: boolean | 'intersect';
};