42 lines
1.1 KiB
CoffeeScript
42 lines
1.1 KiB
CoffeeScript
|
|
json_types_uninitialized = require "./Types/JsonTypes"
|
|
HistoryBuffer = require "./HistoryBuffer"
|
|
Engine = require "./Engine"
|
|
adaptConnector = require "./ConnectorAdapter"
|
|
|
|
createYatta = (connector)->
|
|
user_id = connector.id # TODO: change to getUniqueId()
|
|
HB = new HistoryBuffer user_id
|
|
type_manager = json_types_uninitialized HB
|
|
types = type_manager.types
|
|
|
|
#
|
|
# Framework for Json data-structures.
|
|
# Known values that are supported:
|
|
# * String
|
|
# * Integer
|
|
# * Array
|
|
#
|
|
class Yatta extends types.JsonType
|
|
|
|
#
|
|
# @param {String} user_id Unique id of the peer.
|
|
# @param {Connector} Connector the connector class.
|
|
#
|
|
constructor: ()->
|
|
@connector = connector
|
|
@HB = HB
|
|
@types = types
|
|
@engine = new Engine @HB, type_manager.parser
|
|
adaptConnector @connector, @engine, @HB, type_manager.execution_listener
|
|
super
|
|
|
|
getConnector: ()->
|
|
@connector
|
|
|
|
return new Yatta(HB.getReservedUniqueIdentifier()).execute()
|
|
|
|
module.exports = createYatta
|
|
if window? and not window.Yatta?
|
|
window.Yatta = createYatta
|