UNPKG

youzanyun-devtool-worker

Version:

- web - ws - proxy

73 lines (72 loc) 2.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const url_1 = require("url"); const axios_1 = tslib_1.__importDefault(require("axios")); const spring4js_nodejs_1 = require("spring4js-nodejs"); let ToolWindowService = class ToolWindowService { constructor() { this.stateMap = new Map(); this._toolWindowEvent = new spring4js_nodejs_1.Emitter(); this.onToolWindowEvent = this._toolWindowEvent.registerEvent; this._devtoolEvent = new spring4js_nodejs_1.Emitter(); this.onDevtoolEvent = this._devtoolEvent.registerEvent; } async getToolWindowState(workbenchId) { let state = this.stateMap.get(workbenchId); if (!state) { state = { workbenchId, show: false }; this.stateMap.set(workbenchId, state); } return state; } async openToolWindow(workbenchId) { let state = await this.getToolWindowState(workbenchId); state.show = true; this._toolWindowEvent.fire(state); } async closeToolWindow(workbenchId) { let state = await this.getToolWindowState(workbenchId); state.show = false; this._toolWindowEvent.fire(state); } async openDevtool(workbenchId, url) { this._devtoolEvent.fire({ workbenchId, isOpen: true, url }); } async closeDevtool(workbenchId) { this._devtoolEvent.fire({ workbenchId, isOpen: false, }); } async getDevtoolUrl(webviewUrl) { let webviewUrlObj = new url_1.URL(webviewUrl); let remoteDebugPort = this.configService.getRenderRemoteDebugPort(); let res = await axios_1.default.get(`http://127.0.0.1:${remoteDebugPort}/json/list?t=${Date.now()}`); let pageList = res.data; let devtoolUrl; for (let page of pageList) { let { devtoolsFrontendUrl, parentId, url, webSocketDebuggerUrl } = page; let currentUrlObj = new url_1.URL(url); if (parentId && webviewUrlObj.pathname == currentUrlObj.pathname) { devtoolUrl = `http://127.0.0.1:${remoteDebugPort}${devtoolsFrontendUrl}`; break; } } return devtoolUrl; } }; tslib_1.__decorate([ spring4js_nodejs_1.Resource() ], ToolWindowService.prototype, "configService", void 0); ToolWindowService = tslib_1.__decorate([ spring4js_nodejs_1.Service() ], ToolWindowService); exports.default = ToolWindowService;