kysely-generic-sqlite
Version:
Generic kysely dialect for SQLite, support run in main thread or worker
38 lines (35 loc) • 1.03 kB
JavaScript
import { createGenericOnMessageCallback, access } from './chunk-DJ5QD4ZI.js';
import { EventEmitter } from 'node:events';
import { parentPort } from 'node:worker_threads';
var NodeEventEmitterWrapper = class extends EventEmitter {
off(eventName) {
return this.removeAllListeners(eventName);
}
};
function createNodeOnMessageCallback(init, rest) {
if (!parentPort) {
throw new Error("Must run in a worker thread");
}
parentPort.on(
"message",
createGenericOnMessageCallback(
init,
(value) => parentPort.postMessage(value),
rest
)
);
}
var handleNodeWorker = (worker, cb) => worker.on("message", cb);
function createNodeMitt() {
return new NodeEventEmitterWrapper();
}
function createNodeWorkerExecutor(config) {
const { worker, data } = config;
return async () => ({
data,
worker: await access(worker),
handle: handleNodeWorker,
mitt: createNodeMitt()
});
}
export { createNodeMitt, createNodeOnMessageCallback, createNodeWorkerExecutor, handleNodeWorker };