@uwdata/mosaic-core
Version:
Scalable and extensible linked data views.
56 lines • 2.04 kB
TypeScript
import type { ExtractionOptions, Table } from '@uwdata/flechette';
import type { ArrowQueryRequest, Connector, ExecQueryRequest, JSONQueryRequest } from './Connector.js';
import * as duckdb from '@duckdb/duckdb-wasm';
interface DuckDBWASMOptions {
/** Flag to enable logging. */
log?: boolean;
}
interface DuckDBWASMConnectorOptions extends DuckDBWASMOptions {
/** Arrow IPC extraction options. */
ipc?: ExtractionOptions;
/** Optional pre-existing DuckDB-WASM instance. */
duckdb?: duckdb.AsyncDuckDB;
/** Optional pre-existing DuckDB-WASM connection. */
connection?: duckdb.AsyncDuckDBConnection;
/** Optional database config. */
config?: duckdb.DuckDBConfig;
}
/**
* Connect to a DuckDB-WASM instance.
* @param options Connector options.
* @returns A connector instance.
*/
export declare function wasmConnector(options?: DuckDBWASMConnectorOptions): DuckDBWASMConnector;
/**
* DuckDB-WASM connector.
*/
export declare class DuckDBWASMConnector implements Connector {
private _ipc?;
_options: DuckDBWASMOptions;
_db?: duckdb.AsyncDuckDB;
_con?: duckdb.AsyncDuckDBConnection;
_config?: duckdb.DuckDBConfig;
_loadPromise?: Promise<unknown>;
/**
* Create a new DuckDB-WASM connector instance.
* @param options Connector options.
*/
constructor(options?: DuckDBWASMConnectorOptions);
/**
* Get the backing DuckDB-WASM instance.
* Lazily initializes DuckDB-WASM if not already loaded.
* @returns The DuckDB-WASM instance.
*/
getDuckDB(): Promise<duckdb.AsyncDuckDB>;
/**
* Get the backing DuckDB-WASM connection.
* Lazily initializes DuckDB-WASM if not already loaded.
* @returns The DuckDB-WASM connection.
*/
getConnection(): Promise<duckdb.AsyncDuckDBConnection>;
query(query: ArrowQueryRequest): Promise<Table>;
query(query: ExecQueryRequest): Promise<void>;
query(query: JSONQueryRequest): Promise<Record<string, unknown>[]>;
}
export {};
//# sourceMappingURL=wasm.d.ts.map