graph-common
Version:
Open Graph API core js lib
107 lines (83 loc) • 3.37 kB
text/coffeescript
Graph is the core module. It loads all submodules when instantiate depending on the configuration.
GQL = null
SchemaManager = null
StorageManager = null
RouterManager = null
NodeManager = null
Bootstrap = null
Logger = null
class Graph
constructor: (configuration_manager, done) ->
configure: (configuration_manager) ->
inject: () ->
di = @configuration.di or {}
GQL = require(di.GQL or './gql')
Bootstrap = require(di.Bootstrap or './bootstrap')
StorageManager = require(di.StorageManager or './storage_manager')
RouterManager = require(di.RouterManager or './router_manager')
NodeManager = require(di.NodeManager or './node_manager')
SchemaManager = require(di.SchemaManager or './schema_manager')
Logger = require(di.Logger or 'winston')
instantiate: (done) ->
self = @
if @configuration.logFile
run: (gql, callback) ->
self = @
GQL.parse(gql, (query) ->
self.query(query, callback)
)
query: (query, callback) ->
query.graph = @
query.run(callback)
disconnect: () ->
create_node: (node_data) ->
create_router: (router_data) ->
log: (args...) -> Logger.log args...
error: (args...) -> Logger.error args...
warn: (args...) -> Logger.warn args...
help: (args...) -> Logger.log 'help', args...
data: (args...) -> Logger.log 'data', args...
info: (args...) -> Logger.info args...
debug: (args...) -> Logger.log 'debug', args...
prompt: (args...) -> Logger.log 'prompt', args...
verbose: (args...) -> Logger.log 'verbose', args...
input: (args...) -> Logger.log 'input', args...
silly: (args...) -> Logger.log 'silly', args...
module.exports = Graph