CtrlK
BlogDocsLog inGet started
Tessl Logo

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

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

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';
};

docs

compatibility-analysis.md

compatibility-data.md

entry-points.md

index.md

version-utilities.md

tile.json