DEV Community

Cover image for Ng-News 26/10: Signality, Vitest 4.1, Angular Skills

Ng-News 26/10: Signality, Vitest 4.1, Angular Skills

This week's ng-news covers ngxtension on Angular Space, Signality's signal-first utilities inspired by VueUse, and Vitest 4.1 fake-timer improvements for Angular tests. We also look at official Angular agent skills.

Angular Space and ngxtension

ngxtension, a set of utility functions, was the topic on the Angular Space live stream. The hosts were - as always - Armen Vardanyan and Enea Jahollari, the maintainer of ngxtension; Enea joined the stream after a few minutes.

They discussed several main features. For example, injectParams, which a former episode of ng-news covered already, and the on helper, which offers strong developer experience for explicit effects but can also be used for explicit signal tracking in computed, resources, or linkedSignal.

Signality

Another promising library that offers utility functions - this time only signal-based - was published. Signality is its name, and according to its author, Vyacheslav Borodin, it is heavily inspired by VueUse, a popular library of utilities for Vue.js. Although Signality was released at version 0.1, the number of functions is already quite impressive.

Getting started | Signality

Comprehensive library of signal-first utilities for Angular. SSR-ready, type-safe, and designed for seamless reactive composition and DI-interop.

favicon signality.dev

Vitest 4.1 fake timers

Vitest, Angular's default testing framework for new projects, was released in version 4.1 and gained a major improvement in handling asynchronous timers. Fake timers gained an automatic tick mode.

In the past, when code used a delayed timer - for example because of debounceTime - you often had to advance those timers manually in tests. Now there is a mode that advances scheduled timers asynchronously without you hard-coding each delay. You no longer need to remember whether it was 100 ms, 200 ms, or something else. It does not remove asynchronicity, but it runs the deferred work on a short tick - roughly speaking, along the lines of setTimeout(() => void true, 0).

@younesjd added a section about that feature to his cookbook, and the Vitest documentation has more detail.

Vi | Vitest

Next generation testing framework powered by Vite

favicon main.vitest.dev

Controlling Time in Tests | Marmicode Cookbook

Understand why time-based behavior is challenging to test and how fake timers and dynamic timing configuration address different scenarios.

favicon cookbook.marmicode.io

Official Angular agent skills

Official Angular skills have landed. You can install them now with npx skills add angular/skills. After that, your agent should pick them up whenever the LLM decides to use them.

Skills are text content that explains to the LLM - for example, how Signal Forms work or how Angular's dependency injection works. The main distinction from MCP servers, basic rules, custom instructions, or whatever term your agent uses, is that skills are not loaded automatically up front. A skill starts with a short description of what it covers, which does not overload context, and - as noted above - when the LLM decides it is time to use one, it can load the full body on demand.

That pattern lets you keep many skills available without bloating every prompt.

Angular skills are not new. Ng-News already covered the Analog.js skills, which were created in January. As their author Brandon Roberts confirmed, now that official Angular skills exist, the Analog.js skills are deprecated.

angular/skills (GitHub)

Top comments (0)