Angular CLI schematics for generating NgRx state management code including actions, reducers, effects, selectors, and feature modules.
—
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
NgRx data services generation schematic that creates data services integrating with @ngrx/data for entity-based data management with automatic HTTP operations.
Generates data services with @ngrx/data integration for automated entity management and HTTP operations.
# Basic data service
ng generate @ngrx/schematics:data Userinterface DataSchema {
name: string;
path?: string;
project?: string;
flat?: boolean;
}Creates entity data service with automatic CRUD operations:
// Generated data service
import { Injectable } from '@angular/core';
import { EntityCollectionServiceBase, EntityCollectionServiceElementsFactory } from '@ngrx/data';
@Injectable()
export class UserDataService extends EntityCollectionServiceBase<User> {
constructor(serviceElementsFactory: EntityCollectionServiceElementsFactory) {
super('User', serviceElementsFactory);
}
}Configures entity metadata for @ngrx/data:
// Entity metadata
import { EntityMetadataMap } from '@ngrx/data';
export const entityMetadata: EntityMetadataMap = {
User: {
selectId: (user: User) => user.id,
sortComparer: (a: User, b: User) => a.name.localeCompare(b.name)
}
};Custom HTTP data service for specialized operations:
// Custom HTTP data service
import { Injectable } from '@angular/core';
import { DefaultDataService, HttpUrlGenerator } from '@ngrx/data';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class UserHttpDataService extends DefaultDataService<User> {
constructor(http: HttpClient, httpUrlGenerator: HttpUrlGenerator) {
super('User', http, httpUrlGenerator);
}
// Custom methods
searchUsers(query: string): Observable<User[]> {
return this.http.get<User[]>(`${this.entitiesUrl}/search?q=${query}`);
}
}