or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

array-operations.mdcollection-types.mderror-types.mdindex.mditerator-helpers.mdmath-utilities.mdobject-methods.mdpromise-utilities.mdreflection-api.mdstring-processing.mdsymbol-management.mdtypedarray-operations.mdweb-apis.md
tile.json

index.mddocs/

core-js-pure

core-js-pure is a modular standard library for JavaScript that provides polyfills for ECMAScript features up to 2025 without global namespace pollution. Unlike the main core-js package, core-js-pure allows developers to import only the specific polyfills they need as pure functions and constructors, enabling fine-grained control over bundle size while maintaining JavaScript compatibility across different environments and browser versions.

Package Information

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

Core Imports

// Import specific features (recommended)
import Array from 'core-js-pure/stable/array';
import Promise from 'core-js-pure/stable/promise';
import Set from 'core-js-pure/stable/set';

// Import individual methods
import arrayFrom from 'core-js-pure/stable/array/from';
import promiseAllSettled from 'core-js-pure/stable/promise/all-settled';

// Import everything (not recommended for production)
import 'core-js-pure';

For ES modules (import from specific paths):

import Array from 'core-js-pure/stable/array';
import Promise from 'core-js-pure/stable/promise';
import Set from 'core-js-pure/stable/set';

CommonJS:

const Array = require('core-js-pure/stable/array');
const Promise = require('core-js-pure/stable/promise');

Basic Usage

import Array from 'core-js-pure/stable/array';
import Promise from 'core-js-pure/stable/promise';
import Set from 'core-js-pure/stable/set';

// Array methods as pure functions
const result = Array.from([1, 2, 3]).map(x => x * 2);
console.log(result); // [2, 4, 6]

// Promise with modern methods
Promise.allSettled([
  Promise.resolve(1),
  Promise.reject(2),
  Promise.resolve(3)
]).then(results => {
  console.log(results);
  // [
  //   { status: 'fulfilled', value: 1 },
  //   { status: 'rejected', reason: 2 },
  //   { status: 'fulfilled', value: 3 }
  // ]
});

// Set with modern methods
const set1 = new Set([1, 2, 3]);
const set2 = new Set([3, 4, 5]);
const union = set1.union(set2);
console.log([...union]); // [1, 2, 3, 4, 5]

Architecture

core-js-pure is organized around several key concepts:

  • Entry Point Hierarchies: Multiple import paths (stable/, actual/, es/, features/, full/) for different feature sets and compatibility levels
  • Pure Functions: All functionality available without global namespace pollution - methods are exported as standalone functions or constructors
  • Modular Loading: Fine-grained imports allow precise control over which polyfills are included in your bundle
  • Virtual Methods: Array, String, and other prototype methods available as pure functions via virtual/ subdirectories
  • Feature Compatibility: Clear separation between standardized features and experimental proposals

Entry Point Strategy

  • stable/ - Use for maximum compatibility with only standardized ECMAScript features
  • actual/ - Use for latest features including stage 3-4 TC39 proposals
  • es/ - Use for specific ECMAScript version compatibility
  • features/ - Use for individual feature imports with automatic dependency resolution
  • full/ - Use for everything including experimental proposals (not recommended for production)

Capabilities

Array Operations

Comprehensive array methods including modern additions like flat, flatMap, at, and immutable operations.

interface ArrayConstructor {
  from<T>(arrayLike: ArrayLike<T> | Iterable<T>): T[];
  from<T, U>(arrayLike: ArrayLike<T> | Iterable<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
  fromAsync<T>(asyncIterable: AsyncIterable<T> | Iterable<T | Promise<T>>): Promise<T[]>;
  of<T>(...items: T[]): T[];
  isArray(arg: any): arg is any[];
}

interface Array<T> {
  at(index: number): T | undefined;
  flat<D = 1>(depth?: D): FlatArray<T, D>[];
  flatMap<U, This = undefined>(callback: (value: T, index: number, array: T[]) => U | ReadonlyArray<U>, thisArg?: This): U[];
  toReversed(): T[];
  toSorted(compareFn?: (a: T, b: T) => number): T[];
  toSpliced(start: number, deleteCount?: number, ...items: T[]): T[];
  with(index: number, value: T): T[];
}

Array Operations

Promise Utilities

Modern Promise methods including allSettled, any, try, and withResolvers for advanced async patterns.

interface PromiseConstructor {
  allSettled<T>(values: Iterable<T | PromiseLike<T>>): Promise<PromiseSettledResult<Awaited<T>>[]>;
  any<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>>;
  try<T>(fn: () => T | PromiseLike<T>): Promise<T>;
  withResolvers<T>(): { promise: Promise<T>; resolve: (value: T | PromiseLike<T>) => void; reject: (reason?: any) => void; };
}

interface Promise<T> {
  finally(onfinally?: (() => void) | undefined | null): Promise<T>;
}

Promise Utilities

Object Methods

Complete Object static methods including property management, iteration, and modern utilities.

interface ObjectConstructor {
  assign<T, U>(target: T, source: U): T & U;
  create(proto: object | null, propertiesObject?: PropertyDescriptorMap): any;
  entries<T>(obj: { [s: string]: T } | ArrayLike<T>): [string, T][];
  fromEntries<T = any>(entries: Iterable<readonly [PropertyKey, T]>): { [k: string]: T };
  groupBy<T, K extends PropertyKey>(items: Iterable<T>, keyFn: (item: T, index: number) => K): Partial<Record<K, T[]>>;
  hasOwn(obj: object, key: PropertyKey): boolean;
  keys(obj: {}): string[];
  values<T>(obj: { [s: string]: T } | ArrayLike<T>): T[];
}

Object Methods

String Processing

String methods for modern text processing including Unicode handling and pattern matching.

interface StringConstructor {
  fromCodePoint(...codePoints: number[]): string;
  raw(template: TemplateStringsArray, ...substitutions: any[]): string;
}

interface String {
  at(index: number): string | undefined;
  codePointAt(pos: number): number | undefined;
  endsWith(searchString: string, length?: number): boolean;
  includes(searchString: string, position?: number): boolean;
  isWellFormed(): boolean;
  matchAll(regexp: RegExp): IterableIterator<RegExpMatchArray>;
  padEnd(targetLength: number, padString?: string): string;
  padStart(targetLength: number, padString?: string): string;
  repeat(count: number): string;
  replaceAll(searchValue: string | RegExp, replaceValue: string | ((substring: string, ...args: any[]) => string)): string;
  startsWith(searchString: string, position?: number): boolean;
  toWellFormed(): string;
  trimEnd(): string;
  trimStart(): string;
}

String Processing

Symbol Management

Symbol constructor and well-known symbols for customizing language behavior.

interface SymbolConstructor {
  for(key: string): symbol;
  keyFor(sym: symbol): string | undefined;
  readonly asyncDispose: unique symbol;
  readonly asyncIterator: unique symbol;
  readonly dispose: unique symbol;
  readonly hasInstance: unique symbol;
  readonly isConcatSpreadable: unique symbol;
  readonly iterator: unique symbol;
  readonly match: unique symbol;
  readonly matchAll: unique symbol;
  readonly replace: unique symbol;
  readonly search: unique symbol;
  readonly species: unique symbol;
  readonly split: unique symbol;
  readonly toPrimitive: unique symbol;
  readonly toStringTag: unique symbol;
  readonly unscopables: unique symbol;
}

Symbol Management

Collection Types

Modern Set and Map with advanced operations like union, intersection, and difference.

interface Set<T> {
  difference<U>(other: SetLike<U>): Set<T>;
  intersection<U>(other: SetLike<U>): Set<T & U>;
  union<U>(other: SetLike<U>): Set<T | U>;
  symmetricDifference<U>(other: SetLike<U>): Set<T | U>;
  isDisjointFrom<U>(other: SetLike<U>): boolean;
  isSubsetOf<U>(other: SetLike<U>): boolean;
  isSupersetOf<U>(other: SetLike<U>): boolean;
}

interface MapConstructor {
  groupBy<K, T>(items: Iterable<T>, keyFn: (item: T, index: number) => K): Map<K, T[]>;
}

Collection Types

Math Utilities

Extended Math methods for advanced mathematical operations and precision handling.

interface Math {
  acosh(x: number): number;
  asinh(x: number): number;
  atanh(x: number): number;
  cbrt(x: number): number;
  clz32(x: number): number;
  cosh(x: number): number;
  expm1(x: number): number;
  f16round(x: number): number;
  fround(x: number): number;
  hypot(...values: number[]): number;
  imul(x: number, y: number): number;
  log10(x: number): number;
  log1p(x: number): number;
  log2(x: number): number;
  sign(x: number): number;
  sinh(x: number): number;
  sumPrecise(items: Iterable<number>): number;
  tanh(x: number): number;
  trunc(x: number): number;
}

Math Utilities

TypedArray Operations

Binary data handling with enhanced TypedArray methods and encoding utilities.

interface Uint8Array {
  fromBase64(string: string, options?: { alphabet?: 'base64' | 'base64url'; strict?: boolean }): Uint8Array;
  toBase64(options?: { alphabet?: 'base64' | 'base64url' }): string;
  fromHex(string: string): Uint8Array;
  toHex(): string;
  setFromBase64(string: string, offset?: number): { read: number; written: number };
  setFromHex(string: string, offset?: number): { read: number; written: number };
}

interface TypedArrayConstructor {
  from<T>(arrayLike: ArrayLike<T> | Iterable<T>): TypedArray;
  of(...items: number[]): TypedArray;
}

TypedArray Operations

Iterator Helpers

Modern iterator methods for functional programming patterns with lazy evaluation.

interface Iterator<T> {
  map<U>(mapperFn: (value: T) => U): Iterator<U>;
  filter(filtererFn: (value: T) => boolean): Iterator<T>;
  take(limit: number): Iterator<T>;
  drop(limit: number): Iterator<T>;
  flatMap<U>(mapperFn: (value: T) => Iterator<U> | Iterable<U>): Iterator<U>;
  reduce<U>(reducerFn: (accumulator: U, currentValue: T) => U, initialValue: U): U;
  toArray(): T[];
  forEach(callbackFn: (value: T) => void): void;
  some(predicate: (value: T) => boolean): boolean;
  every(predicate: (value: T) => boolean): boolean;
  find(predicate: (value: T) => boolean): T | undefined;
  dispose(): void;
}

Iterator Helpers

Reflection API

Complete Reflect API for meta-programming and proxy operations.

interface Reflect {
  apply<T, A extends readonly any[], R>(target: (this: T, ...args: A) => R, thisArgument: T, argumentsList: Readonly<A>): R;
  construct<A extends readonly any[], R>(target: new (...args: A) => R, argumentsList: Readonly<A>, newTarget?: any): R;
  defineProperty(target: object, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean;
  deleteProperty(target: object, propertyKey: PropertyKey): boolean;
  get<T extends object, P extends PropertyKey>(target: T, propertyKey: P, receiver?: unknown): T[P];
  getOwnPropertyDescriptor(target: object, propertyKey: PropertyKey): PropertyDescriptor | undefined;
  getPrototypeOf(target: object): object | null;
  has(target: object, propertyKey: PropertyKey): boolean;
  isExtensible(target: object): boolean;
  ownKeys(target: object): (string | symbol)[];
  preventExtensions(target: object): boolean;
  set<T extends object, P extends PropertyKey>(target: T, propertyKey: P, value: T[P], receiver?: any): boolean;
  setPrototypeOf(target: object, proto: object | null): boolean;
}

Reflection API

Web APIs

Cross-platform web standard APIs including URL handling, Base64, and structured cloning.

declare function atob(data: string): string;
declare function btoa(data: string): string;
declare function structuredClone<T>(value: T, options?: { transfer?: Transferable[] }): T;
declare function queueMicrotask(callback: () => void): void;

declare class URL {
  constructor(url: string | URL, base?: string | URL);
  href: string;
  origin: string;
  protocol: string;
  username: string;
  password: string;
  host: string;
  hostname: string;
  port: string;
  pathname: string;
  search: string;
  searchParams: URLSearchParams;
  hash: string;
  
  static canParse(url: string, base?: string): boolean;
  static parse(url: string, base?: string): URL | null;
  toString(): string;
  toJSON(): string;
}

declare class URLSearchParams {
  constructor(init?: string | string[][] | Record<string, string> | URLSearchParams);
  append(name: string, value: string): void;
  delete(name: string, value?: string): void;
  get(name: string): string | null;
  getAll(name: string): string[];
  has(name: string, value?: string): boolean;
  set(name: string, value: string): void;
  sort(): void;
  toString(): string;
  entries(): IterableIterator<[string, string]>;
  keys(): IterableIterator<string>;
  values(): IterableIterator<string>;
  forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void;
  readonly size: number;
}

Web APIs

Error Types

Modern error types for better error handling and resource management.

declare class AggregateError extends Error {
  constructor(errors: Iterable<any>, message?: string);
  errors: any[];
}

declare class SuppressedError extends Error {
  constructor(error: any, suppressed: any, message?: string);
  error: any;
  suppressed: any;
}

declare class DOMException extends Error {
  constructor(message?: string, name?: string);
  readonly name: string;
  readonly message: string;
  readonly code: number;
}

Error Types