parent
9bf8595610
commit
f49ddadbe0
@ -0,0 +1 @@ |
||||
module.exports = new (require('../registry.js'))() |
@ -0,0 +1,8 @@ |
||||
module.exports = stacktrace |
||||
function stacktrace () { |
||||
var _ = Error.prepareStackTrace |
||||
Error.prepareStackTrace = (_, stack) => stack |
||||
var callsites = new Error().stack |
||||
Error.prepareStackTrace = _ |
||||
return callsites.slice(2).map(x => { return x.getFunctionName() }).reverse().join('.') |
||||
} |
@ -0,0 +1,62 @@ |
||||
const moduleID = require('./module-id.js') |
||||
const remixLib = require('remix-lib') |
||||
const EventManager = remixLib.EventManager |
||||
|
||||
|
||||
module.exports = class registry { |
||||
constructor () { |
||||
this.state = {} |
||||
} |
||||
put ({ api, events, name }) { |
||||
const serveruid = moduleID() + '.' + (name || '') |
||||
console.log('registering ', serveruid) |
||||
if (this.state[serveruid]) return this.state[serveruid] |
||||
const server = { |
||||
uid: serveruid, |
||||
// api: new ApiManager(api),
|
||||
events: makeEvents(events), |
||||
legacyEvents: api.event ? api.event : new EventManager() |
||||
} |
||||
this.state[serveruid] = { |
||||
_name: name, |
||||
_api: api, |
||||
_events: events, |
||||
server: server, |
||||
clients: [] |
||||
} |
||||
return server |
||||
} |
||||
get (uid) { |
||||
const clientuid = moduleID() |
||||
const state = this.state[uid] |
||||
if (!state) return |
||||
const server = state.server |
||||
const client = { |
||||
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…
Reference in new issue