Skip to content
ngxtension logo

ngxtension

A comprehensive collection of utilities for modern Angular development.

Why ngxtension? ✨

📦

Feature Rich

50+ utilities for modern Angular development

🚀

Modern Angular

Built for Angular’s latest features including signals, standalone components, and the new control flow

Performance

Optimized utilities that leverage Angular’s change detection and signals system

🛠️

Developer Experience

Intuitive APIs that reduce boilerplate and improve code readability

🌳

Tree-shakable

Only import what you need, keeping your bundle size minimal

🔄

Type-safe

Full TypeScript support with excellent type inference

🎯

Focused

Each utility solves a specific problem without unnecessary complexity

📚

Well Documented

Comprehensive documentation with examples and interactive demos

🔌

Extensible

Easy to extend and customize for your specific use cases

What does ngxtension offer? 🚀

Signal Utilities

Router Utilities

Injector Utilities

RxJS Operators

Forms

Pipes

Effects & Lifecycle

Directives

Components

Miscellaneous

Quick Start 🚀

Install ngxtension

Terminal window
npm install ngxtension
# or
pnpm add ngxtension
# or
yarn add ngxtension

Import and use

Import only what you need. ngxtension is built with tree-shaking in mind.

import { linkedQueryParam, paramToNumber } from 'ngxtension/linked-query-param';
import { derivedFrom } from 'ngxtension/derived-from';
@Component({
template: `
<input [(ngModel)]="searchQuery" />
@for (result of results(); track result.id) {
<div>{{ result.title }}</div>
}
<pagination [(page)]="pageNumber" />
`,
})
export class MyComponent {
readonly searchQuery = linkedQueryParam('search');
readonly pageNumber = linkedQueryParam('page', {
parse: paramToNumber({ defaultValue: 1 }),
});
readonly results = derivedFrom(this.searchQuery, (query) =>
this.searchService.search(query),
);
}