UNPKG

@funztic/db

Version:

TypeScript기반 파일 데이터베이스, zod를 지원합니다.

38 lines (37 loc) 1.29 kB
import fs from 'fs/promises'; import path from 'path'; import { fileURLToPath } from 'url'; import { parentPort as parentPortNullable, isMainThread } from 'worker_threads'; export const workerPath = fileURLToPath(import.meta.url); const setup = () => { if (!parentPortNullable) { console.error('[DB] This script must be run as a worker thread.'); process.exit(1); } const parentPort = parentPortNullable; const sendResponse = (response) => parentPort.postMessage(response); parentPort.on('message', async (message) => { if (message.action === 'save') { try { const dir = path.dirname(message.filePath); await fs.mkdir(dir, { recursive: true }); await fs.writeFile(message.filePath, message.data, 'utf-8'); sendResponse({ success: true }); } catch (err) { sendResponse({ success: false, error: err instanceof Error ? err.message : String(err) }); } } else { sendResponse({ success: false, error: `Unknown action: ${message.action}` }); } }); }; if (!isMainThread) setup();