@douglasgabr/cypher-builder
TypeScript icon, indicating that this package has built-in type declarations

4.2.0 • Public • Published

cypher-builder

Fluent CQL Builder for Neo4j

Node.js Package

Installation

npm install @douglasgabr/cypher-builder

or

yarn add @douglasgabr/cypher-builder

Usage

Type inference (required for typescript projects)

First, you must create a *.d.ts file in your project, in order to type the possible nodes, relationships and their properties.

// neo4j-types.d.ts
import '@douglasgabr/cypher-builder';

declare module '@douglasgabr/cypher-builder' {
  export interface CypherBuilderNodes {
    User: {
      id: string;
    };
  }

  export interface CypherBuilderRelationships {
    KNOWS: {
      level: 'friendship' | 'colleague';
    };
  }
}

That will enable your IDE (tested only in VSCode) to suggest values for your node labels, relationship types and its properties.

Node Label suggestion:

node label suggestion

Node Properties suggestion:

node properties suggestion

Relationship Type suggestion:

relationship type suggestion

Example

import { Builder } from '@douglasgabr/cypher-builder';

const queryBuilder = new Builder()
  .match((match) => {
    match
      .node('person', 'Person', { name: 'Alice' })
      .relationship('either', 'KNOWS')
      .node('friend', 'Person'),
  })
  .where((where) => where.and('friend.age', '>=', 18))
  .return('person', 'friend');
const { query, parameters } = queryBuilder.buildQueryObject();

query:

MATCH (person:Person{ name: $person_name })-[:KNOWS]-(friend:Person)
WHERE friend.age >= $friend_age
RETURN person, friend

parameters:

{
  person_name: 'Alice',
  friend_age: 18
}

Package Sidebar

Install

npm i @douglasgabr/cypher-builder

Weekly Downloads

41

Version

4.2.0

License

MIT

Unpacked Size

280 kB

Total Files

198

Last publish

Collaborators

  • douglasgabr