Node.js HTTP Client
Manage Traverse databases, queries, and imports from Node.js over HTTP.
Install
npm install @truespar/traverse-http
Note: Requires Node.js 22+ (uses native fetch). Zero external dependencies.
Connect
import { TraverseHttpClient } from '@truespar/traverse-http';
const client = new TraverseHttpClient('http://localhost:7691');
// With API key authentication
const client = new TraverseHttpClient('http://localhost:7691', {
apiKey: 'tvs_your_api_key',
});
Health Check
const health = await client.health();
console.log(health.status); // "ok"
console.log(health.version); // server version
console.log(health.uptimeSecs); // seconds since start
// Quick readiness probe (returns boolean, never throws)
if (await client.ready()) {
console.log('Server is ready');
}
List Databases
const databases = await client.listDatabases();
for (const db of databases) {
console.log(db.name, db.isDefault);
}
Create & Drop Database
await client.createDatabase('mydb');
await client.dropDatabase('mydb');
Run a Query
const result = await client.query(
'MATCH (n:Person) WHERE n.age > $min_age RETURN n.name, n.age',
{ min_age: 25 },
'mydb',
);
for (const row of result.rows) {
console.log(row);
}
console.log(result.columns); // ['n.name', 'n.age']
console.log(result.timeMs); // query time in milliseconds
Import Cypher
const result = await client.importCypher(
"CREATE (a:Person {name: 'Alice'});\nCREATE (b:Person {name: 'Bob'});",
'mydb',
);
console.log(`${result.executed} of ${result.totalStatements} statements`);
Schema
const schema = await client.getSchema('mydb');
console.log(schema.labels);
console.log(schema.relationshipTypes);
console.log(schema.indexes);
Aliases
// Create an alias
await client.createAlias('production', 'mydb');
// List aliases
for (const alias of await client.listAliases()) {
console.log(`${alias.alias} -> ${alias.database}`);
}
// Update and drop
await client.alterAlias('production', 'mydb_v2');
await client.dropAlias('production');
File Upload
import { readFileSync } from 'node:fs';
const data = readFileSync('backup.tvdb');
const result = await client.uploadFile('backup.tvdb', data);
console.log(result.sizeBytes);
Save
// Persist all databases to disk
await client.save();
Constructor Options
const client = new TraverseHttpClient('https://traverse.example.com', {
apiKey: 'tvs_...',
timeout: 30_000, // API request timeout in ms (default: 100000)
transferTimeout: 600_000, // file upload/download timeout in ms (default: 3600000)
allowUntrustedCertificate: true, // skip TLS verification
});