UNPKG

graph-cli

Version:

Open Graph API command line interface (shell)

127 lines (113 loc) 3.56 kB
// Generated by CoffeeScript 1.6.3 (function() { var CLI, Graph, repl, __slice = [].slice; repl = require('repl'); Graph = require('graph-common').Graph; CLI = (function() { function CLI() {} CLI.running = false; CLI.message = ""; CLI.delimeter = ""; CLI.input_message = ">>"; CLI.run = function(argv, exit) { var configuration_manager; return configuration_manager = CLI.graph = new Graph(CLI.configuration_manager(argv), function() { console.log(CLI.graph.configuration.name); return repl.start({ prompt: "> ", input: process.stdin, output: process.stdout, useColors: true, useGlobal: true, ignoreUndefined: true, "eval": function(cmd, context, filename, callback) { cmd = cmd.replace(/^\s*\(\s*/g, '').replace(/\s*\)\s*$/g, ''); if (!cmd || cmd === '') { callback(null, void 0); return null; } return CLI.graph.run(cmd, function(query) { return callback(null, query.result); }); } }).on('exit', function() { var args, _ref; args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; if ((_ref = CLI.graph) != null) { _ref.disconnect(); } return exit.apply(null, args); }); }); }; CLI.configuration_manager = function(argv) { var ConfigurationManager, mongo_database, mongo_host, mongo_port, mongo_uri; mongo_host = argv.host || process.env.DB_PORT_27017_TCP_ADDR || 'localhost'; mongo_port = argv.port || process.env.DB_PORT_27017_TCP_PORT || '27017'; mongo_database = argv.database || 'graph'; mongo_uri = "mongodb://" + mongo_host + ":" + mongo_port + "/" + mongo_database; ConfigurationManager = require('graph-common').ConfigurationManager; return new ConfigurationManager({ name: "Piráti Open Graph API", di: { StorageManager: './storage_manager', SchemaManager: './schema_manager', NodeManager: './node_manager', RouterManager: './router_manager', GQL: './gql' }, SchemaManager: { "Schema": "./schema_schema", "Node": "./node_schema", "Router": "./router_schema" }, StorageManager: mongo_uri, NodeManager: { "": { name: "root", path: "", router: 'EchoRouter' }, "echo": { name: "echo", path: "echo", router: 'EchoRouter' }, "echo/redirect": { name: "redirect", path: "echo/redirect", router: 'RedirectRouter', configuration: { redirect: "echo" } }, "node": { name: "node", path: "node", router: 'StorageRouter', configuration: { schema: "Node" } } }, RouterManager: { "EchoRouter": { name: "EchoRouter", require: "./echo_router" }, "RedirectRouter": { name: "RedirectRouter", require: "./redirect_router" }, "StorageRouter": { name: "StorageRouter", require: "./storage_router" } } }); }; return CLI; })(); module.exports = CLI; }).call(this);