Skip to content

ES2026 Features

ABCrimson edited this page Mar 7, 2026 · 1 revision

ES2026 Features

This project uses ES2026 features throughout. Here's where each feature is used and why.

Iterator Helpers

.map(), .filter(), .toArray(), .forEach(), .some(), .find(), .reduce() on iterators.

// Search pipeline
items.values()
  .map((item) => scorer(query, item))
  .filter((result) => result != null)
  .toArray()
  .sort((a, b) => b.score - a.score);

// Registry operations
this.#bindings.values().find((binding) => matchesShortcut(binding, event));

Used in: search engine, registry, keyboard matcher, frecency engine, event emitter, React components.

Set Methods

// Efficient bulk removal
const remaining = currentIds.difference(removedIds);

// Incremental filtering
previousResults = previousResults.difference(ids);

Used in: registry (union/intersection/difference), search engine (candidate pruning).

Math.sumPrecise

const totalSize = Math.sumPrecise(itemSizes);

Used in: search scorer (score aggregation), virtualizer (total height calculation).

Promise.withResolvers

const { promise, resolve, reject } = Promise.withResolvers<SearchResult[]>();
worker.postMessage({ type: 'SEARCH', query });
// ... later in message handler: resolve(results);

Used in: scheduler (flush coordination), WASM worker engine (request tracking).

Promise.try

const result = await Promise.try(() => dangerousOperation());

Used in: async initialization safety wrappers.

using / await using

// Synchronous
using engine = createSearchEngine();
using machine = createCommandMachine({ items });

// Asynchronous
await using engine = await createWasmSearchEngine();

Used in: all engines, machines, subscriptions, storage backends.

Temporal

// Timestamps
const now = Temporal.Now.instant();

// Duration buckets
const day = Temporal.Duration.from({ hours: 24 });
const elapsed = now.since(lastUsed);
const hours = elapsed.total('hours');

Used in: frecency engine (timestamps, decay buckets).

RegExp.escape

const safePattern = new RegExp(RegExp.escape(userInput));

Used in: keyboard shortcut parser (safe pattern construction from shortcut strings).

Object.groupBy

const grouped = Object.groupBy(shortcuts, (s) => s.normalizedKey);
const conflicts = Object.entries(grouped).filter(([, v]) => v.length > 1);

Used in: keyboard conflict detection, machine state grouping.

Branded Types

export type ItemId = string & { readonly __brand: 'ItemId' };
export type GroupId = string & { readonly __brand: 'GroupId' };

Used in: all ID references for compile-time type safety.

satisfies

export const DEFAULT_FRECENCY_DECAY = {
  hourWeight: 4.0,
  dayWeight: 2.0,
} satisfies FrecencyDecayConfig;

Used in: default configuration objects.

Clone this wiki locally