|
1 | 1 | # Установка
|
| 2 | + |
2 | 3 | ```bash
|
3 | 4 | yarn add @atls/nestjs-dataloader
|
4 | 5 | ```
|
5 | 6 |
|
6 | 7 | # Использование
|
| 8 | + |
7 | 9 | 1. Импортируйте DataLoaderModule в ваш модуль:
|
| 10 | + |
8 | 11 | ```typescript
|
9 |
| -import { DataLoaderModule } from '@atls/nestjs-dataloader'; |
| 12 | +import { DataLoaderModule } from '@atls/nestjs-dataloader' |
10 | 13 |
|
11 | 14 | @Module({
|
12 | 15 | imports: [DataLoaderModule],
|
13 | 16 | })
|
14 | 17 | export class AppModule {}
|
15 | 18 | ```
|
| 19 | + |
16 | 20 | 2. Создайте свой кастомный DataLoader:
|
17 |
| -```typescript |
18 |
| -import * as DataLoader from 'dataloader'; |
19 |
| -import { Injectable } from '@nestjs/common'; |
20 | 21 |
|
| 22 | +```typescript |
| 23 | +import * as DataLoader from 'dataloader' |
| 24 | +import { Injectable } from '@nestjs/common' |
21 | 25 | @Injectable()
|
22 | 26 | export class MyDataLoader extends DataLoader<string, string> {
|
23 | 27 | constructor() {
|
24 | 28 | super(async (keys: string[]) => {
|
25 |
| - // Ваш код для загрузки данных пачками |
26 |
| - }); |
| 29 | + / Ваш код для загрузки данных пачками |
| 30 | + }) |
27 | 31 | }
|
28 | 32 | }
|
29 | 33 | ```
|
| 34 | + |
30 | 35 | 3. Зарегистрируйте ваш DataLoader в провайдерах:
|
| 36 | + |
31 | 37 | ```typescript
|
32 |
| -import { MyDataLoader } from './my-dataloader'; |
| 38 | +import { MyDataLoader } from './my-dataloader' |
33 | 39 |
|
34 | 40 | @Module({
|
35 | 41 | providers: [MyDataLoader],
|
36 | 42 | })
|
37 | 43 | export class AppModule {}
|
38 | 44 | ```
|
| 45 | + |
39 | 46 | 4. Инжектируйте DataLoader в резолверы и сервисы:
|
| 47 | + |
40 | 48 | ```typescript
|
41 |
| -import { MyDataLoader } from './my-dataloader'; |
| 49 | +import { MyDataLoader } from './my-dataloader' |
42 | 50 |
|
43 | 51 | @Injectable()
|
44 | 52 | export class MyService {
|
45 | 53 | constructor(private readonly dataLoader: MyDataLoader) {}
|
46 | 54 |
|
47 | 55 | async getData(key: string) {
|
48 |
| - return this.dataLoader.load(key); |
| 56 | + return this.dataLoader.load(key) |
49 | 57 | }
|
50 | 58 | }
|
51 | 59 | ```
|
0 commit comments