@codecot/pw-checker
Version:
A comprehensive CLI tool to audit passwords locally using HIBP and import from Chrome/Bitwarden
41 lines • 1.4 kB
JavaScript
import fs from "fs";
import path from "path";
import { fileURLToPath } from "url";
import csv from "csv-parser";
import { initDatabase } from "./database.js";
// ESM replacement for __dirname
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
export async function importCsvToDb(csvFilePath) {
if (!fs.existsSync(csvFilePath)) {
console.error(`❌ CSV file not found at ${csvFilePath}`);
process.exit(1);
}
const db = await initDatabase();
console.log(`📥 Importing from CSV: ${csvFilePath}`);
const insertStmt = await db.prepare(`
INSERT INTO pw_entries (name, url, username, password)
VALUES (?, ?, ?, ?)
`);
const rows = [];
await new Promise((resolve, reject) => {
fs.createReadStream(csvFilePath)
.pipe(csv())
.on("data", (row) => {
rows.push(row);
})
.on("end", async () => {
for (const row of rows) {
if (row.password) {
await insertStmt.run(row.name, row.url, row.username, row.password);
}
}
console.log(`✅ Imported ${rows.length} rows into SQLite database.`);
resolve();
})
.on("error", reject);
});
await insertStmt.finalize();
await db.close();
}
//# sourceMappingURL=importCsv.js.map