ts-tinkerpop v1.6.1
ts-tinkerpop
A helper library for Typescript applications using
TinkerPop 3 via node-java,
with a tsJavaModule.ts interface generated by ts-java.
Usage
Import the ts-tinkerpop module, giving it a short name of your choice. Do this everywhere
you want to use functions from the ts-tinkerpop module.
import TP = require('ts-tinkerpop');Requirements
- Java ^1.8.0-31 (1.8.0-40 recommended, see below)
- Node ^0.12.
- node-java ^0.5
NOTE: TinkerPop 3 claims to require Java 1.8.0-40. We currently require 1.8.0-31 only because Travis currently uses 1.8.0-31.
Node-java Initialization
ts-tinkerpop takes advantage of a feature in node-java for coordinating application initialization and JVM creation. ts-tinkerpop registers itself on first import using the java.registerClient function. An application using ts-tinkerpop must therefore create the JVM using the corresponding java.ensureJvm function. However, ts-tinkerpop wraps the java.ensureJvm() function in the method TP.getTinkerpop():
import TP = require('ts-tinkerpop');
TP.getTinkerpop().then(() => {
// ts-tinkerpop and JVM ready to use here.
});ts-tinkerpop uses Bluebird promises, and configures node-java for just sync functions, with no suffix, and promises, with the suffix 'P':
java.asyncOptions = {
syncSuffix: '',
promiseSuffix: 'P',
promisify: BluePromise.promisify
};ts-tinkerpop helper functions
All of the ts-tinkerpop helper functions are in the one source file lib/ts-tinkerpop.ts. See the groc generated documentation in doc/lib/ts-tinkerpop.html. See also the unit tests for examples: test/tinkerpop-test.ts.
Coverage of the Tinkerpop Java API
In addition to the helper functions, ts-tinkerpop exposes much of the Tinkerpop 3 Java API.
ts-tinkerpop is currently up to date with the latest release 3.0.1-incubating. Our intent is to track Tinkerpop releases closely. The NPM version of this module will relate to the corresponding TinkerPop version.
ts-tinkerpop currently exposes a significant subset of the Tinkerpop 3 gremlin-core, gremlin-groovy and tinkergraph-gremlin packages. The set of classes exposed largely aligns with the classes automatically imported by the Gremlin Groovy Console (listed by groovy console command :show imports), with the notable exception that ts-tinkerpop currently does not expose any classes from the gremlin-driver package.
See the tsjava section of package.json to see which packages and classes are included in the configuration, or for the full details, run the tsjava tool as follows:
$ ./node_modules/.bin/ts-java --details
ts-java version 1.2.1
Generated classes:
co.redseal.gremlinnode.function.GlobFunction
co.redseal.gremlinnode.function.GroovyLambda
co.redseal.gremlinnode.testing.TestClass
co.redseal.util.StringInputStream
groovy.lang.Binding
groovy.lang.Closure
groovy.lang.DelegatingMetaClass
groovy.lang.GroovyClassLoader
groovy.lang.GroovyCodeSource
groovy.lang.GroovyObjectSupport
groovy.lang.GroovyResourceLoader
...