drawio-mcp-server
Version:
Provides Draw.io services to MCP Clients
24 lines (23 loc) • 880 B
JavaScript
import { bus_reply_stream, bus_request_stream, } from "./types.js";
export function create_bus(log) {
return function (emitter) {
const listeners = [];
const bus = {
send_to_extension: (request) => {
log.debug(`[bus] sending to Extension`, request);
emitter.emit(bus_request_stream, request);
},
on_reply_from_extension: (event_name, reply) => {
const listener = (emitter_data) => {
log.debug(`[bus] received from Extension`, emitter_data);
if (emitter_data && emitter_data.__event === event_name) {
reply(emitter_data);
}
};
emitter.on(bus_reply_stream, listener);
listeners.push(reply);
},
};
return bus;
};
}