kysely-generic-sqlite
Version:
Generic kysely dialect for SQLite, support run in main thread or worker
36 lines (33 loc) • 1.6 kB
TypeScript
import { P as Promisable } from './type-dQxYJ4xm.js';
import { b as InitFn, M as MessageHandleFn, a as IGenericSqliteWorkerExecutor, H as HandleMessageFn } from './types-ngDp2_1z.js';
import 'kysely';
declare function createWebOnMessageCallback<T extends Record<string, unknown>, DB = unknown>(init: InitFn<T, DB>, message?: MessageHandleFn<DB>): void;
interface IWebWorkerDialectConfig<T extends Record<string, unknown>> extends Pick<IGenericSqliteWorkerExecutor<globalThis.Worker, T>, 'data' | 'mitt'> {
worker: globalThis.Worker | (() => Promisable<globalThis.Worker>);
}
/**
* Util for handle web worker message in main thread
*/
declare const handleWebWorker: HandleMessageFn<globalThis.Worker>;
/**
* Create worker executor for web
* @param config {@link IWebWorkerDialectConfig}
* @example
* You can also manually create executor for web worker:
* ```ts
* import { GenericSqliteWorkerDialect } from 'kysely-generic-sqlite/worker'
* import { handleWebWorker } from 'kysely-generic-sqlite/worker-helper-web'
* import { mitt } from 'zen-mitt'
*
* const worker = new Worker(new URL('./worker.js', import.meta.url), { type: 'module' })
* const dialect = new GenericSqliteWorkerDialect(
* () => {
* worker,
* mitt: mitt(),
* handle: handleWebWorker,
* }),
* )
* ```
*/
declare function createWebWorkerExecutor<T extends Record<string, unknown>>(config: IWebWorkerDialectConfig<T>): () => Promise<IGenericSqliteWorkerExecutor<globalThis.Worker, T>>;
export { type IWebWorkerDialectConfig, createWebOnMessageCallback, createWebWorkerExecutor, handleWebWorker };