| const { existsSync, mkdirSync, statSync } = require("fs"); | |
| const { execSync } = require("child_process"); | |
| const { join } = require("path"); | |
| const dir = join(process.cwd(), "data"); | |
| const db = join(dir, "nexova.db"); | |
| if (!existsSync(dir)) mkdirSync(dir, { recursive: true }); | |
| if (!existsSync(db) || statSync(db).size === 0) { | |
| const sql = `CREATE TABLE "notes" ( | |
| "id" TEXT NOT NULL PRIMARY KEY, | |
| "title" TEXT NOT NULL, | |
| "content" TEXT NOT NULL DEFAULT '', | |
| "color" TEXT NOT NULL DEFAULT '#fef08a', | |
| "pinned" BOOLEAN NOT NULL DEFAULT false, | |
| "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, | |
| "updated_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | |
| );`; | |
| execSync(`sqlite3 "${db}" '${sql.replace(/'/g, "'\\''")}'`); | |
| console.log("[init] db created (" + statSync(db).size + " bytes)"); | |
| } else { | |
| console.log("[init] db exists (" + statSync(db).size + " bytes)"); | |
| } | |