lexguard-backend / src /services /graphDriver.js
github-actions[bot]
Deploy to Hugging Face
b921752
Raw
History Blame Contribute Delete
1.31 kB
const neo4j = require('neo4j-driver');
require('dotenv').config();
// Graceful no-op stubs when Neo4j is not configured
const noopDriver = {
read: async () => ({ records: [] }),
write: async () => ({ records: [] }),
close: () => {}
};
if (!process.env.NEO4J_URI) {
console.warn('⚠️ NEO4J_URI is not set in .env — Graph RAG features will be disabled.');
module.exports = noopDriver;
} else {
const driver = neo4j.driver(
process.env.NEO4J_URI,
neo4j.auth.basic(process.env.NEO4J_USER, process.env.NEO4J_PASSWORD)
);
module.exports = {
read: async (cypher, params = {}) => {
const session = driver.session();
try {
return await session.run(cypher, params);
} catch (err) {
console.warn(`⚠️ [Neo4j] Query failed (Aura DB may be paused or unreachable): ${err.message}`);
return { records: [] };
} finally {
await session.close();
}
},
write: async (cypher, params = {}) => {
const session = driver.session();
try {
return await session.run(cypher, params);
} catch (err) {
console.warn(`⚠️ [Neo4j] Write failed: ${err.message}`);
return { records: [] };
} finally {
await session.close();
}
},
close: () => driver.close()
};
}