or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

action-generation.mdcomponent-store.mdcontainer-components.mddata-services.mdeffect-generation.mdentity-management.mdfeature-generation.mdindex.mdngrx-push-migration.mdreducer-generation.mdselector-generation.mdstore-setup.mdutility-functions.md

data-services.mddocs/

0

# Data Services

1

2

NgRx data services generation schematic that creates data services integrating with @ngrx/data for entity-based data management with automatic HTTP operations.

3

4

## Capabilities

5

6

### Data Schematic

7

8

Generates data services with @ngrx/data integration for automated entity management and HTTP operations.

9

10

```bash

11

# Basic data service

12

ng generate @ngrx/schematics:data User

13

```

14

15

```typescript { .api }

16

interface DataSchema {

17

name: string;

18

path?: string;

19

project?: string;

20

flat?: boolean;

21

}

22

```

23

24

### Generated Data Service

25

26

Creates entity data service with automatic CRUD operations:

27

28

```typescript

29

// Generated data service

30

import { Injectable } from '@angular/core';

31

import { EntityCollectionServiceBase, EntityCollectionServiceElementsFactory } from '@ngrx/data';

32

33

@Injectable()

34

export class UserDataService extends EntityCollectionServiceBase<User> {

35

constructor(serviceElementsFactory: EntityCollectionServiceElementsFactory) {

36

super('User', serviceElementsFactory);

37

}

38

}

39

```

40

41

### Entity Metadata Configuration

42

43

Configures entity metadata for @ngrx/data:

44

45

```typescript

46

// Entity metadata

47

import { EntityMetadataMap } from '@ngrx/data';

48

49

export const entityMetadata: EntityMetadataMap = {

50

User: {

51

selectId: (user: User) => user.id,

52

sortComparer: (a: User, b: User) => a.name.localeCompare(b.name)

53

}

54

};

55

```

56

57

### HTTP Data Service

58

59

Custom HTTP data service for specialized operations:

60

61

```typescript

62

// Custom HTTP data service

63

import { Injectable } from '@angular/core';

64

import { DefaultDataService, HttpUrlGenerator } from '@ngrx/data';

65

import { HttpClient } from '@angular/common/http';

66

import { Observable } from 'rxjs';

67

68

@Injectable()

69

export class UserHttpDataService extends DefaultDataService<User> {

70

constructor(http: HttpClient, httpUrlGenerator: HttpUrlGenerator) {

71

super('User', http, httpUrlGenerator);

72

}

73

74

// Custom methods

75

searchUsers(query: string): Observable<User[]> {

76

return this.http.get<User[]>(`${this.entitiesUrl}/search?q=${query}`);

77

}

78

}

79

```