rxdb
Version:
A local-first realtime NoSQL Database for JavaScript applications - https://rxdb.info/
49 lines (48 loc) • 2.63 kB
TypeScript
import { BulkWriteRow, RxDocumentData, MaybePromise } from '../../index.ts';
import type { SQLResultRow, SQLiteBasics, SQLiteDatabaseClass, SQLiteQueryWithParams } from './sqlite-types.ts';
export declare const NON_IMPLEMENTED_OPERATOR_QUERY_BATCH_SIZE = 50;
export type DatabaseState = {
database: Promise<SQLiteDatabaseClass>;
openConnections: number;
sqliteBasics: SQLiteBasics<SQLiteDatabaseClass>;
};
export declare const DATABASE_STATE_BY_NAME: Map<string, DatabaseState>;
export declare const RX_STORAGE_NAME_SQLITE = "sqlite";
/**
* @link https://www.sqlite.org/inmemorydb.html
*/
export declare const SQLITE_IN_MEMORY_DB_NAME = ":memory:";
export declare function getDatabaseConnection(sqliteBasics: SQLiteBasics<any>, databaseName: string): Promise<SQLiteDatabaseClass>;
export declare function closeDatabaseConnection(databaseName: string, sqliteBasics: SQLiteBasics<any>): MaybePromise<void>;
export declare function getDataFromResultRow(row: SQLResultRow): string;
export declare function getSQLiteInsertSQL<RxDocType>(collectionName: string, primaryPath: keyof RxDocType, docData: RxDocumentData<RxDocType>): SQLiteQueryWithParams;
export declare function getSQLiteUpdateSQL<RxDocType>(tableName: string, primaryPath: keyof RxDocType, writeRow: BulkWriteRow<RxDocType>): SQLiteQueryWithParams;
export declare const TX_QUEUE_BY_DATABASE: WeakMap<SQLiteDatabaseClass, Promise<void>>;
export declare function sqliteTransaction(database: SQLiteDatabaseClass, sqliteBasics: SQLiteBasics<any>, handler: () => Promise<'COMMIT' | 'ROLLBACK'>,
/**
* Context will be logged
* if the commit does error.
*/
context?: any): Promise<void>;
/**
* TODO instead of doing a while loop, we should find a way to listen when the
* other transaction is committed.
*/
export declare function openSqliteTransaction(database: SQLiteDatabaseClass, sqliteBasics: SQLiteBasics<any>): Promise<void>;
export declare function finishSqliteTransaction(database: SQLiteDatabaseClass, sqliteBasics: SQLiteBasics<any>, mode: 'COMMIT' | 'ROLLBACK',
/**
* Context will be logged
* if the commit does error.
*/
context?: any): Promise<void>;
export declare const PARAM_KEY = "?";
export declare function ensureParamsCountIsCorrect(queryWithParams: SQLiteQueryWithParams): void;
/**
* SQLite itself does not know about boolean types
* and uses integers instead.
* So some libraries need to bind integers and fail on booleans.
* @link https://stackoverflow.com/a/2452569/3443137
* This method transforms all boolean params to the
* correct int representation.
*/
export declare function boolParamsToInt(params: any[]): any[];