comment moduleid && and use minimal registry

pull/1/head
yann300 6 years ago
parent 5e769267d0
commit 220ff6ce7b
  1. 7
      src/app/editor/editor.js
  2. 3
      src/module-id.js
  3. 59
      src/registry.js

@ -1,4 +1,6 @@
'use strict' 'use strict'
var remixLib = require('remix-lib')
var EventManager = remixLib.EventManager
var yo = require('yo-yo') var yo = require('yo-yo')
var csjs = require('csjs-inject') var csjs = require('csjs-inject')
var ace = require('brace') var ace = require('brace')
@ -65,9 +67,6 @@ document.head.appendChild(yo`
function Editor (opts = {}) { function Editor (opts = {}) {
var self = this var self = this
var eventsName = ['breakpointCleared', 'breakpointAdded', 'sessionSwitched', 'contentChanged'] // not used for legacyEvent
var {legacyEvents} = registry.put({api: this, events: eventsName, name: 'editor'})
self.event = legacyEvents
var el = yo`<div id="input"></div>` var el = yo`<div id="input"></div>`
var editor = ace.edit(el) var editor = ace.edit(el)
if (styles.appProperties.aceTheme) { if (styles.appProperties.aceTheme) {
@ -84,6 +83,8 @@ function Editor (opts = {}) {
// @TODO add here other propositions // @TODO add here other propositions
} }
} }
var event = new EventManager()
self.event = event
langTools.addCompleter(flowCompleter) langTools.addCompleter(flowCompleter)
el.className += ' ' + css['ace-editor'] el.className += ' ' + css['ace-editor']
el.editor = editor // required to access the editor during tests el.editor = editor // required to access the editor during tests

@ -1,4 +1,7 @@
module.exports = stacktrace module.exports = stacktrace
/*
Not used yet
*/
function stacktrace () { function stacktrace () {
var _ = Error.prepareStackTrace var _ = Error.prepareStackTrace
Error.prepareStackTrace = (_, stack) => stack Error.prepareStackTrace = (_, stack) => stack

@ -1,61 +1,24 @@
const moduleID = require('./module-id.js') // const moduleID = require('./module-id.js')
const remixLib = require('remix-lib')
const EventManager = remixLib.EventManager
module.exports = class registry { module.exports = class registry {
constructor () { constructor () {
this.state = {} this.state = {}
} }
put ({ api, events, name }) { put ({ api, name }) {
const serveruid = moduleID() + '.' + (name || '') // const serveruid = moduleID() + '.' + (name || '')
console.log('registering ', serveruid) if (this.state[name]) return this.state[name]
if (this.state[serveruid]) return this.state[serveruid]
const server = { const server = {
uid: serveruid, // uid: serveruid,
// api: new ApiManager(api), api
events: makeEvents(events),
legacyEvents: api.event ? api.event : new EventManager()
}
this.state[serveruid] = {
_name: name,
_api: api,
_events: events,
server: server,
clients: []
} }
this.state[name] = { server }
return server return server
} }
get (uid) { get (name) {
const clientuid = moduleID() // const clientuid = moduleID()
const state = this.state[uid] const state = this.state[name]
if (!state) return if (!state) return
const server = state.server const server = state.server
const client = { return server
uid: clientuid,
api: state._api,
events: server.events,
legacyEvents: server.legacyEvents
}
server.clients.push(client)
return client
} }
} }
function makeEvents (events) {
if (!events) return []
function update (name) { update[name] = new EventManager() }
return events.reduce((fn, x) => {
fn[x] = new EventManager()
var oldTrigger = fn[x].trigger
fn[x].trigger = (name, args) => {
console.log(name)
oldTrigger.call(fn[x], name, args)
}
var oldRegister = fn[x].register
fn[x].register = (name, obj, fn) => {
console.log(name)
oldRegister.call(fn[x], obj, fn)
}
return fn
}, update)
}

Loading…
Cancel
Save