UNPKG

react-dev-inspector

Version:

dev-tool for inspect react components and jump to local IDE for component code.

80 lines (79 loc) 3.19 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.gotoWebStorm = exports.gotoVSCodeInsiders = exports.gotoVSCode = exports.gotoServerEditor = void 0; /** * https://github.com/facebook/create-react-app/blob/v5.0.1/packages/react-dev-utils/launchEditorEndpoint.js * used in https://github.com/facebook/create-react-app/blob/v5.0.1/packages/react-dev-utils/errorOverlayMiddleware.js#L14 */ // @ts-expect-error import from deep path for reduce load files const launchEditorEndpoint_1 = __importDefault(require("react-dev-utils/launchEditorEndpoint")); const getCodeInfo = (_codeInfo) => ('codeInfo' in _codeInfo ? _codeInfo.codeInfo : _codeInfo); /** * fetch server api to open the code editor */ const gotoServerEditor = (_codeInfo) => { if (!_codeInfo) return; const codeInfo = getCodeInfo(_codeInfo); const { lineNumber, columnNumber, relativePath, absolutePath, } = codeInfo; const isRelative = Boolean(relativePath); const fileName = isRelative ? relativePath : absolutePath; if (!fileName) { console.error(`[react-dev-inspector] Cannot open editor without source fileName`, codeInfo); return; } const launchParams = { fileName, lineNumber, colNumber: columnNumber, }; /** * api path in '@react-dev-inspector/middlewares' launchEditorMiddleware */ const apiRoute = isRelative ? `${launchEditorEndpoint_1.default}/relative` : launchEditorEndpoint_1.default; fetch(`${apiRoute}?${new URLSearchParams(launchParams)}`); }; exports.gotoServerEditor = gotoServerEditor; /** * open source file in VSCode via it's url schema * * https://code.visualstudio.com/docs/editor/command-line#_opening-vs-code-with-urls */ const gotoVSCode = (_codeInfo, options) => { const codeInfo = getCodeInfo(_codeInfo); if (!codeInfo.absolutePath) { console.error(`[react-dev-inspector] Cannot open editor without source fileName`, codeInfo); return; } const { absolutePath, lineNumber, columnNumber } = codeInfo; const schema = (options === null || options === void 0 ? void 0 : options.insiders) ? 'vscode-insiders' : 'vscode'; window.open(`${schema}://file/${absolutePath}:${lineNumber}:${columnNumber}`); }; exports.gotoVSCode = gotoVSCode; /** * open source file in VSCode via it's url schema */ const gotoVSCodeInsiders = (codeInfo) => { return (0, exports.gotoVSCode)(codeInfo, { insiders: true }); }; exports.gotoVSCodeInsiders = gotoVSCodeInsiders; /** * open source file in WebStorm via it's url schema */ const gotoWebStorm = (_codeInfo) => { const codeInfo = getCodeInfo(_codeInfo); if (!codeInfo.absolutePath) { console.error(`[react-dev-inspector] Cannot open editor without source fileName`, codeInfo); return; } const { absolutePath, lineNumber, columnNumber } = codeInfo; window.open(`webstorm://open?file=${absolutePath}&line=${lineNumber}&column=${columnNumber}`); }; exports.gotoWebStorm = gotoWebStorm;