interface IngestOptions<T extends BaseModel> {
    destination: BaseRepo<T>;
    fieldMappings?: Record<string, keyof T>;
    fields: (keyof T)[];
    onSaved?: (doc: Saved<T>, originalDoc: Saved<T>) => Promise<void>;
    source: Readable;
    transform?: IngestTransform<T>;
}

Type Parameters

  • T extends BaseModel

Properties

destination: BaseRepo<T>

The destination repository

fieldMappings?: Record<string, keyof T>

The field mappings from the source record to the destination document

fields: (keyof T)[]

The fields to update

onSaved?: (doc: Saved<T>, originalDoc: Saved<T>) => Promise<void>

A function to run after the document is saved

Type declaration

    • (doc: Saved<T>, originalDoc: Saved<T>): Promise<void>
    • Parameters

      • doc: Saved<T>

        The document that was saved

      • originalDoc: Saved<T>

      Returns Promise<void>

source: Readable

The source data stream

transform?: IngestTransform<T>

A transform function to apply to the document before saving