'use strict' var Registry = require('./lib/registry') var Server = require('./lib/mdns-server') var Browser = require('./lib/browser') module.exports = Bonjour function Bonjour (opts) { if (!(this instanceof Bonjour)) return new Bonjour(opts) this._server = new Server(opts) this._registry = new Registry(this._server) } Bonjour.prototype.publish = function (opts) { return this._registry.publish(opts) } Bonjour.prototype.unpublishAll = function (cb) { this._registry.unpublishAll(cb) } Bonjour.prototype.find = function (opts, onup) { return new Browser(this._server.mdns, opts, onup) } Bonjour.prototype.findOne = function (opts, cb) { var browser = new Browser(this._server.mdns, opts) browser.once('up', function (service) { browser.stop() if (cb) cb(service) }) return browser } Bonjour.prototype.destroy = function () { this._registry.destroy() this._server.mdns.destroy() }