@rdfc/sds-storage-writer-ts
Version:
An RDF-Connect processor to write SDS streams into a given storage system
30 lines (29 loc) • 1.6 kB
TypeScript
import { DBConfig } from "../index.js";
import { Member } from "@treecg/types";
import { AnyBulkWriteOperation } from "mongodb";
import { TREEFragment } from "../fragmentHelper.js";
import { Bucket, Record, Relation } from "../extractor.js";
export type DataRecord = {
id: string;
data: string;
};
export type DataBulkOperations = AnyBulkWriteOperation<DataRecord>[] | Promise<string | null>[];
export type IndexBulkOperations = AnyBulkWriteOperation<TREEFragment>[] | Promise<string | number | null>[];
export interface Repository {
open(): Promise<void>;
close(): Promise<void>;
ingestMetadata(type: string, id: string, value: string): Promise<void>;
findMetadataFragmentations(): Promise<Member[]>;
createIndices(): Promise<void>;
prepareDataBulk(): DataBulkOperations;
ingestDataBulk(bulk: DataBulkOperations): Promise<void>;
handleRecord(record: Record, data: string, bulk: DataBulkOperations): Promise<void>;
prepareIndexBulk(): IndexBulkOperations;
ingestIndexBulk(bulk: IndexBulkOperations): Promise<void>;
handleMember(record: Record, bucket: string, bulk: IndexBulkOperations): Promise<void>;
handleBucket(bucket: Bucket, bulk: IndexBulkOperations): Promise<void>;
handleRelation(relation: Relation, path: string | undefined, value: string | undefined, bulk: IndexBulkOperations): Promise<void>;
removeRelation(relation: Relation, path: string | undefined, value: string | undefined, bulk: IndexBulkOperations): Promise<void>;
getStoreType(): string;
}
export declare function getRepository(dbConfig: DBConfig): Repository;