OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / keet-core / lib / api / v1 / inspector.js

53 lines · javascript ref:
const { Console: e, Server: s } = require("bare-inspector"),
  { once: o } = require("bare-events")
class r {
  constructor({ port: e = 0, host: s = "127.0.0.1" } = {}) {
    ;((this.port = e),
      (this.host = s),
      (this._server = null),
      (this._url = null),
      (this._bareConsole = null),
      (this._oldConsole = global.console))
  }
  get key() {
    return this._url
  }
  _overrideConsole() {
    this._bareConsole || (this._bareConsole = new e())
    const s = {}
    for (const e of Object.keys(this._bareConsole))
      s[e] = (...s) => {
        ;(this._bareConsole[e](...s), this._oldConsole[e](...s))
      }
    global.console = s
  }
  _resetConsole() {
    global.console = this._oldConsole
  }
  async enable() {
    ;((this._server = new s(this.port, this.host)),
      this._server.on("close", () => {
        this._resetConsole()
      }),
      await o(this._server, "listening"),
      this._overrideConsole())
    const { port: e } = this._server.address()
    return (
      (this._url = `devtools://devtools/bundled/js_app.html?ws=127.0.0.1:${e}`),
      console.log(`Keet core inspector url: ${this._url}`),
      this._url
    )
  }
  async disable() {
    this._server &&
      (await new Promise((e) => {
        this._server.close(e)
      }),
      (this._server = null),
      this._resetConsole(),
      (this._bareConsole = null),
      (this._url = null))
  }
}
module.exports = r