Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 801x 801x 801x 801x 800x 800x 800x 642x 642x 663x 642x 800x 800x 800x 800x 1x 1x 9x 9x 9x 9x 9x | import { v1 as neo4j } from "neo4j-driver"; import { Model } from "./Model"; import { ModelInstance } from "./ModelInstance"; import * as debug from "debug"; import { Neo4jResultStats } from "./Types"; export type Neo4jsOptions = { boltUri?: string; boltPort?: number; restUri?: string; restPort?: number; username?: string; password?: string; }; export * from "./Types"; const d = debug("neo4js:debug"); export class neo4js { options: Neo4jsOptions; driver: any; init(options: Neo4jsOptions) { this.options = { ...options }; // TODO: at least some verification... const uri = `bolt://${this.options.boltUri}:${this.options.boltPort}`; const { username, password } = this.options; let auth = undefined; Iif (username) { auth = neo4j.auth.basic(username, password); } d("Init neo4js: %O", { ...this.options, uri, username, password }); Iif (this.driver) this.close(); this.driver = neo4j.driver(uri, auth); } close = () => { d("Closing neo4js connection"); this.driver.close(); }; run = ( cmd: string, params?: any ): Promise<any[] & { _stats: Neo4jResultStats; _raw: any }> => { let session = this.driver.session(); d("Cypher query: %s", cmd); d("Params: %O", params); return session .run(cmd, params) .then(raw => { d("Raw result: %O", raw); session.close(); let result = raw.records.map(r => r.toObject()).map(r => { let keys = Object.keys(r); let o = {}; keys.forEach(k => (o[k] = r[k].properties)); return o; }); result._stats = raw.summary.counters._stats; result._raw = raw; d("Prepared result: %O", result); return result; }) .catch(err => { session.close(); throw err; }); }; } export default new neo4js(); export * from "./Model"; export * from "./ModelInstance"; export * from "./Relation"; export * from "./Decorators"; |