Skip to content
/ cifru Public

Cypher queries with no strings attached! 🌊

Notifications You must be signed in to change notification settings

Gamote/cifru

Repository files navigation

cifru

NPM version NPM downloads

Cifru (πŸ—£ [ˈtΝ‘Κƒifru]): cypher queries with no strings attached! Dive into our lightweight ORM that makes writing production-ready queries feel like a breeze.

  • String validation at compile time: uses TypeScript template literals to validate node and relation names, ensuring correct format before runtime.

Installation

yarn add cifru

Usage

import c, { Direction } from "cifru";

const query = c
  .match(
    c
      .node({
        variable: "a",
        labels: ["Actor"],
        properties: { name: "Cami" },
      })
      .relation({
        direction: Direction.Outgoing,
        variable: "r",
        labels: ["ACTED_IN"],
        properties: { roles: ["Trinity"] },
      })
      .node({
        variable: "m",
        labels: ["Movie"],
        properties: { name: "The Matrix" },
      }),
  )
  .return("a")
  .query();

console.log(query);
// => MATCH (a:Actor {name: "Cami"})-[r:ACTED_IN {roles: "Trinity"}]->(m:Movie {name: "The Matrix"})
//    RETURN a

Testing

yarn test