WordPress Developer Ukraine, Kyiv
JavaScript Module Federation: Sharing Code Between WordPress Plugins

JavaScript Module Federation: Sharing Code Between WordPress Plugins

Module Federation (Webpack 5) allows JavaScript modules to be loaded from a remote URL at runtime — meaning one WordPress plugin can expose a React component, utility library, or data store, and another plugin can consume it without bundling a copy. This solves the classic WordPress “multiple jQuery / multiple React” problem for plugin ecosystems…
JavaScript AsyncContext: Propagating Context Through Async Operations

JavaScript AsyncContext: Propagating Context Through Async Operations

The TC39 AsyncContext proposal (Stage 3) solves a longstanding problem in JavaScript: how to propagate contextual information — request IDs, user sessions, performance timers — through asynchronous call chains without threading it manually through every function parameter. AsyncContext.Variable works like a thread-local variable in other languages, automatically propagating its value through await, Promise.then(), setTimeout, and…
JavaScript Explicit Resource Management: using and Symbol.dispose

JavaScript Explicit Resource Management: using and Symbol.dispose

ES2025 finalises the Explicit Resource Management proposal — the using declaration and Symbol.dispose / Symbol.asyncDispose protocol. using works like a try/finally block but at the variable declaration level: when the variable goes out of scope (or an exception is thrown), the object’s [Symbol.dispose]() method is called automatically. This eliminates entire classes of resource-leak bugs in…
JavaScript Observable: The Stage 2 Proposal for Event Streams

JavaScript Observable: The Stage 2 Proposal for Event Streams

The TC39 Observable proposal (Stage 2) brings a standardised reactive event-stream primitive to the browser — similar to RxJS Observable but built into the platform. The DOM is also gaining a EventTarget.prototype.on() method that returns an Observable, replacing the common pattern of converting DOM events to streams with external libraries. You can experiment today with…
JavaScript Signals: Reactive State Without a Framework

JavaScript Signals: Reactive State Without a Framework

The TC39 Signals proposal (Stage 1 as of 2025) brings a standardised reactive primitive to JavaScript — the same mental model behind Angular signals, Preact signals, Solid.js, and Vue’s reactivity system. A Signal holds a value; any computation that reads it is automatically re-run when the value changes. The @tc39/signal-polyfill package lets you experiment with…
JavaScript Set Methods: union, intersection, difference in ES2025

JavaScript Set Methods: union, intersection, difference in ES2025

ES2025 finalises a long-awaited addition to the Set prototype: seven new methods — union(), intersection(), difference(), symmetricDifference(), isSubsetOf(), isSupersetOf(), and isDisjointFrom(). All are available in Chrome 122+, Firefox 127+, and Safari 17+ without any polyfill. They replace verbose reduce/filter patterns and work on any Set-like object (anything with size, has(), and keys()).
JavaScript Decorators: Memoize, Log, and Deprecated for WordPress JS

JavaScript Decorators: Memoize, Log, and Deprecated for WordPress JS

JavaScript Decorators (TC39 Stage 3, shipping in Babel 7.21+ and TypeScript 5.0+) are a meta-programming feature that lets you annotate and modify classes, methods, and accessors declaratively. For WordPress JavaScript development they are most useful for memoising expensive computations, logging Gutenberg store actions, and marking deprecated APIs.