rxdb
Version:
A local-first realtime NoSQL Database for JavaScript applications - https://rxdb.info/
66 lines (61 loc) • 2.27 kB
text/typescript
/* eslint-disable no-unused-vars */
/* eslint-disable @typescript-eslint/no-unused-vars */
import type {
EventBulk,
RxAttachmentWriteData,
RxDocumentData,
RxStorage,
RxStorageChangeEvent,
RxStorageDefaultCheckpoint
} from '../../types/index.d.ts';
export type RxStorageFoundationDBSettings = {
/**
* Version of the API of the foundationDB server.
*/
apiVersion: number;
/**
* Path to the foundationDB cluster file
* like '/path/to/fdb.cluster'
* (optional)
*/
clusterFile?: string;
batchSize?: number;
};
export type RxStorageFoundationDBInstanceCreationOptions = {
// can be overwritten per instance
batchSize?: number;
};
/**
* We cannot import types from 'foundationdb'
* because 'foundationdb' is an optional peer dependency
* this is NOT also in the devDependencies.
* This is because it requires to install the foundationdb client cli
* which would mean everyone that wants to develop RxDB must have this installed manually.
*/
// import {
// open as foundationDBOpen,
// Database,
// Transaction
// } from 'foundationdb';
export type FoundationDBIndexMeta<RxDocType> = {
indexName: string;
index: string[];
getIndexableString: (doc: RxDocumentData<RxDocType>) => string;
db: FoundationDBDatabase<string>;
};
export type FoundationDBConnection = any; // ReturnType<typeof foundationDBOpen>;
export type FoundationDBDatabase<RxDocType> = any; // Database<string, any, RxDocType, any>;
export type FoundationDBTransaction<RxDocType> = any; // Transaction<string, any, RxDocumentData<RxDocType>, any>;
export type FoundationDBStorageInternals<RxDocType> = {
connection: FoundationDBConnection;
dbsPromise: Promise<{
root: FoundationDBDatabase<any>;
main: FoundationDBDatabase<RxDocType>;
attachments: FoundationDBDatabase<RxAttachmentWriteData>;
events: FoundationDBDatabase<EventBulk<RxStorageChangeEvent<RxDocumentData<RxDocType>>, RxStorageDefaultCheckpoint>>;
indexes: {
[indexName: string]: FoundationDBIndexMeta<RxDocType>;
};
}>;
};
export type RxStorageFoundationDB = RxStorage<FoundationDBStorageInternals<any>, RxStorageFoundationDBInstanceCreationOptions> & {};