Client - Options
CrudOptions
You can pass the CrudOptions with every client method call.
import { ICrudOptions } from '@eicrud/shared/interfaces';
const query: Partial<Profile> = {
astroSign: "Aries"
}
const crudOptions: ICrudOptions = {
populate: ['owner'],
limit: 40,
offset: 80,
}
const {data, total, limit} = await profileClient.find(query, crudOptions);
Info
CrudOptions
must be allowed in the security before usage.
ClientOptions
Additional client options can be specified.
export interface ClientOptions {
batchSize?: number;
batchField?: string;
progressCallBack?:
(progress: number, total: number, type: 'limit' | 'batch') => Promise<void>;
}
batchSize
Set the batch size for batch
, in
and cmd
operations. When the input array exceeds that number, it will be split into multiple requests.
import { ClientOptions } from '@eicrud/client';
const ids = ['4d3ed089fb60ab534684b7e9', '4d3ed089fb60ab534684b7ff', ...];
const copts: ClientOptions = {
batchSize: 50
}
const {data, total, limit} = await profileClient.findIn(query);
Note
The defaultBatchSize
is set in the client config and defaults to 200.
batchField
If you use batchSize for a cmd
operation, batchField
must be specified to indicate which DTO field holds the input array.
import { ClientOptions } from '@eicrud/client';
const dto = {
imports: [{ name: 'Jon', age: 22 }, { name: 'Sarah', age: 26 }, ...];
}
const copts: ClientOptions = {
batchSize: 50,
batchField: 'imports'
}
await profileClient.cmd('batch_cmd', dto);
Note
You can use ClientConfig->cmdDefaultBatchMap
to avoid passing the batchField
on every cmd
call.
progressCallBack
When the client performs multiple requests (for limited or batched operations). It will call progressCallBack
between every request. You can provide the callback to display loading information.
import { ClientOptions } from '@eicrud/client';
function callback(progress: number, total: number, type: 'limit' | 'batch') {
console.log(`Fetching all profiles: ${progress}/${total}`);
}
const query = {};
const copts: ClientOptions = {
progressCallBack: callback
}
const {data, total, limit} = await profileClient.find(query);
Note
You can use ClientConfig->defaultProgressCallBack
to provide a default callback.