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