{"_id":"@abejeyaraj/sqlite-web","name":"@abejeyaraj/sqlite-web","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@abejeyaraj/sqlite-web","version":"1.0.0","description":"Reusable SQLite utilities for Node.js/Next.js web apps using better-sqlite3","type":"module","license":"MIT","author":{"name":"Abraham Jeyaraj","email":"abraham.jeyaraj@gmail.com"},"keywords":["sqlite","better-sqlite3","nextjs","connection-pool","buffered-writer","typescript"],"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./connection":{"types":"./dist/connection.d.ts","default":"./dist/connection.js"},"./query":{"types":"./dist/query.d.ts","default":"./dist/query.js"},"./buffered-writer":{"types":"./dist/buffered-writer.d.ts","default":"./dist/buffered-writer.js"},"./logger":{"types":"./dist/logger.d.ts","default":"./dist/logger.js"}},"scripts":{"build":"tsc","prepublishOnly":"tsc"},"dependencies":{"better-sqlite3":"^12.8.0"},"devDependencies":{"@types/better-sqlite3":"^7.6.13","@types/node":"^25.5.0","typescript":"^6.0.2"},"publishConfig":{"access":"public"},"_id":"@abejeyaraj/sqlite-web@1.0.0","_nodeVersion":"26.4.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-H3yvdc/tlUewqJF/HGojXSw0tJqpbi3j/DUSCEq5mm3HgyNR1/YE/r+1NrjfH2pTqCIdw22ZyVkfc0CuNONbWQ==","shasum":"682b3035d085630fb2a42f13ac7bfeb5d7c9a0b7","tarball":"https://registry.npmjs.org/@abejeyaraj/sqlite-web/-/sqlite-web-1.0.0.tgz","fileCount":23,"unpackedSize":40351,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFNRTBpuX7D03SrxDubv9pHv+OuLNq08lEegY8NiUv32AiEAtBZVB8P6gm45YpZSRWstWShe5zvB3UKMU8Bj85nNXAc="}]},"_npmUser":{"name":"abejeyaraj","email":"abraham.jeyaraj@gmail.com"},"directories":{},"maintainers":[{"name":"abejeyaraj","email":"abraham.jeyaraj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sqlite-web_1.0.0_1783353887946_0.03162130261141449"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-06T16:04:47.833Z","1.0.0":"2026-07-06T16:04:48.091Z","modified":"2026-07-06T16:04:48.245Z"},"maintainers":[{"name":"abejeyaraj","email":"abraham.jeyaraj@gmail.com"}],"description":"Reusable SQLite utilities for Node.js/Next.js web apps using better-sqlite3","keywords":["sqlite","better-sqlite3","nextjs","connection-pool","buffered-writer","typescript"],"author":{"name":"Abraham Jeyaraj","email":"abraham.jeyaraj@gmail.com"},"license":"MIT","readme":"# @abejeyaraj/sqlite-web\n\nReusable SQLite utilities for Node.js / Next.js web apps, built on\n[`better-sqlite3`](https://github.com/WiseLibs/better-sqlite3).\n\nServer-side only (uses `better-sqlite3`, `node:fs`, `node:path`) — intended for\nNext.js server components, API routes, and Node backends. Not a browser SQLite\nlibrary.\n\n## Install\n\n```bash\nnpm add @abejeyaraj/sqlite-web\n# or\nbun add @abejeyaraj/sqlite-web\n```\n\n`better-sqlite3` is a native module — your environment must be able to build\nnative addons.\n\n## What's inside\n\n- **Connection pooling** — cached connections per path+options, WAL mode, stale\n  connection recovery, graceful cleanup on exit.\n- **Query helpers** — sync + async wrappers for `all` / `get` / `run`,\n  transactions, and table/FTS5 existence checks.\n- **BufferedWriter** — batches high-frequency inserts into periodic\n  transactions (analytics, event logging).\n- **Logger** — tiny console/remote logger.\n\n## Usage\n\n```ts\nimport { getDatabase, runQuery, BufferedWriter } from \"@abejeyaraj/sqlite-web\";\n\n// Simple pooled read-only access\nconst db = getDatabase(\"./data/app.db\");\nconst rows = await runQuery(db, \"SELECT * FROM users WHERE active = ?\", [1]);\n\n// Batched writes\nconst writer = new BufferedWriter({\n  dbPath: \"./logs.db\",\n  tableName: \"events\",\n  columns: [\"user_id\", \"action\", \"timestamp\"],\n  createTableSQL: `CREATE TABLE IF NOT EXISTS events (\n    user_id TEXT, action TEXT, timestamp TEXT\n  )`,\n});\nawait writer.write({ user_id: \"123\", action: \"click\", timestamp: new Date().toISOString() });\nawait writer.close();\n```\n\nSubpath imports are also available: `@abejeyaraj/sqlite-web/connection`,\n`/query`, `/buffered-writer`, `/logger`.\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-4967c3ec8e24819f9ab2095b420bc9b3"}