kysely-generic-sqlite
Version:
Generic kysely dialect for SQLite, support run in main thread or worker
40 lines (37 loc) • 1.68 kB
text/typescript
import { P as Promisable } from './type-dQxYJ4xm.cjs';
import { b as InitFn, M as MessageHandleFn, H as HandleMessageFn, d as IGenericEventEmitter, a as IGenericSqliteWorkerExecutor } from './types-yz6kgqQe.cjs';
import { Worker } from 'node:worker_threads';
import 'kysely';
declare function createNodeOnMessageCallback<T extends Record<string, unknown>, DB = unknown>(init: InitFn<T, DB>, rest?: MessageHandleFn<DB>): void;
/**
* Util for handle node worker message in main thread
*/
declare const handleNodeWorker: HandleMessageFn<Worker>;
/**
* Util to create node mitt
*/
declare function createNodeMitt(): IGenericEventEmitter;
interface INodeWorkerDialectConfig<T extends Record<string, unknown>> extends Pick<IGenericSqliteWorkerExecutor<Worker, T>, 'data'> {
worker: Worker | (() => Promisable<Worker>);
}
/**
* Create worker executor for node
* @param config {@link INodeWorkerDialectConfig}
* @example
* You can also manually create executor for node worker:
* ```ts
* import { GenericSqliteWorkerDialect } from 'kysely-generic-sqlite/worker'
* import { handleNodeWorker, createNodeMitt } from 'kysely-generic-sqlite/worker-helper-node'
*
* const worker = new Worker('./worker.js')
* const dialect = new GenericSqliteWorkerDialect(
* () => {
* worker,
* mitt: createNodeMitt(),
* handle: handleWebWorker,
* }),
* )
* ```
*/
declare function createNodeWorkerExecutor<T extends Record<string, unknown>>(config: INodeWorkerDialectConfig<T>): () => Promise<IGenericSqliteWorkerExecutor<Worker, T>>;
export { type INodeWorkerDialectConfig, createNodeMitt, createNodeOnMessageCallback, createNodeWorkerExecutor, handleNodeWorker };