@clickup/ent-framework
Version:
A PostgreSQL graph-database-alike library with microsharding and row-level security
76 lines (46 loc) • 1.98 kB
Markdown
[**/ent-framework**](../README.md)
***
[/ent-framework](../globals.md) / Batcher
# Class: Batcher\<TInput, TOutput\>
Defined in: [src/abstract/Batcher.ts:19](https://github.com/clickup/ent-framework/blob/master/src/abstract/Batcher.ts#L19)
Batcher is similar to DataLoader, but with a few important differences:
1. It's strongly typed not only for the output, but for input too. And input
can be arbitrary, not only strings (e.g. rows).
2. It does requests dedupping for all queries (including selects).
3. It's not limited by read-only requests like DataLoader, and thus it
doesn't to any caching. Caching is delegated to some other layer (either
above Batcher or in Runner).
## Type Parameters
| Type Parameter |
| ------ |
| `TInput` |
| `TOutput` |
## Constructors
### new Batcher()
> **new Batcher**\<`TInput`, `TOutput`\>(`runner`, `batchDelayMs`, `disableBatching`): [`Batcher`](Batcher.md)\<`TInput`, `TOutput`\>
Defined in: [src/abstract/Batcher.ts:90](https://github.com/clickup/ent-framework/blob/master/src/abstract/Batcher.ts#L90)
#### Parameters
| Parameter | Type |
| ------ | ------ |
| `runner` | [`Runner`](Runner.md)\<`TInput`, `TOutput`\> |
| `batchDelayMs` | `MaybeCallable`\<`number`\> |
| `disableBatching` | `boolean` |
#### Returns
[`Batcher`](Batcher.md)\<`TInput`, `TOutput`\>
## Methods
### flushQueue()
> `protected` **flushQueue**(): `Promise`\<`void`\>
Defined in: [src/abstract/Batcher.ts:32](https://github.com/clickup/ent-framework/blob/master/src/abstract/Batcher.ts#L32)
#### Returns
`Promise`\<`void`\>
***
### run()
> **run**(`input`, `annotation`): `Promise`\<`TOutput`\>
Defined in: [src/abstract/Batcher.ts:96](https://github.com/clickup/ent-framework/blob/master/src/abstract/Batcher.ts#L96)
#### Parameters
| Parameter | Type |
| ------ | ------ |
| `input` | `TInput` |
| `annotation` | [`QueryAnnotation`](../interfaces/QueryAnnotation.md) |
#### Returns
`Promise`\<`TOutput`\>