Generate Gremlin scripts with bound parameters using ES6 template strings
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
src
test
.gitignore
CHANGELOG.md
README.md
package.json

README.md

gremlin-template-string

Generate Gremlin scripts with bound parameters using ES6 template strings.

Gremlin is a graph database query language used by the Apache TinkerPop framework.

Read the full Gremlin/TinkerPop3 documentation there: http://www.tinkerpop.com/docs/current/

Install

$ npm install gremlin-template-string --save

Run tests with:

$ npm test

Usage

The module exports a single function (tag expression) which allows you to tag an ES6 template template string.

It will return an object with two properties:

  • script: an escaped Gremlin string
  • params: a map (Object) of bound parameters (ie {p1: 'Foo', 'p2': 'Bar'})

Example

var gremlin = require('gremlin-template-string');

var who = 'Foobar';
var query = gremlin`
  g.V('name', ${who}).out('follows').name
`
// query.script === "\n  g.V('name', p1).out('follows').name\n"
// query.params.p1 === 'Foobar'

Benefits

  • easy multiline Gremlin queries
  • syntax highlighting in IDE (Sublime Text)
  • safer scripts (prevents Gremlin injections)
  • faster scripts (bound parameters)

Thanks

This library is heavily inspired by this blog post: http://www.ivc.com/blog/better-sql-strings-in-io-js-nodejs-part-2/. Thanks!

Author

License

MIT