t-comm
Version:
专业、稳定、纯粹的工具库
141 lines (138 loc) • 6.04 kB
JavaScript
import { a as __spreadArray } from '../../tslib.es6-096fffdd.js';
import { V_CONSOLE_DOM, EMPTY_LINE, BUILD_NAME_MAP, BUILD_LIST, COMMIT_LIST, AEGIS_PERFORMANCE_LIST, AEGIS_PERFORMANCE_KEY } from '../config.mjs';
var inputValue;
function updateInputValue(event) {
var _a;
inputValue = ((_a = event === null || event === void 0 ? void 0 : event.target) === null || _a === void 0 ? void 0 : _a.value) || '';
}
function jumpToUrl() {
if (!inputValue) return;
location.href = inputValue;
}
function goBack() {
var _a, _b;
history.go(-1);
(_b = (_a = window.vConsole) === null || _a === void 0 ? void 0 : _a.hide) === null || _b === void 0 ? void 0 : _b.call(_a);
}
function renderPlugin(callback) {
var parseNumber = function parseNumber(num) {
return +(+num).toFixed(2);
};
var html = "<div class=\"".concat(V_CONSOLE_DOM.WRAP, "\">");
html += getPerformanceInfo().map(function (item) {
var label = item.label,
value = item.value;
return "<div class=\"".concat(V_CONSOLE_DOM.LINE, "\">").concat(label, "\uFF1A").concat(parseNumber(value), "ms </div>");
}).concat(EMPTY_LINE).concat(getVersionHtml()).concat(EMPTY_LINE).concat(getAegisPerformanceInfo()).join('\n');
html += "\n<textarea id=\"".concat(V_CONSOLE_DOM.URL_INPUT_ID, "\" type=\"text\" placeholder=\"\u8BF7\u8F93\u5165\u8DF3\u8F6C\u8DEF\u5F84\"></textarea>\n<button id=\"").concat(V_CONSOLE_DOM.URL_JUMP_BUTTON, "\">\u8DF3\u8F6C</button>\n<button id=\"").concat(V_CONSOLE_DOM.GO_BACK_BUTTON, "\">\u8FD4\u56DE\u4E0A\u4E00\u9875</button>\n ");
html += '</div>';
callback(html);
}
function initVersionPlugin() {
var plugin = new VConsole.VConsolePlugin(V_CONSOLE_DOM.PLUGIN_VERSION_NAME, '其他信息');
var callback = function callback(html) {
var dom = document.getElementById("".concat(V_CONSOLE_DOM.PLUGIN_NAME_PREFIX).concat(V_CONSOLE_DOM.PLUGIN_VERSION_NAME));
if (dom) {
dom.innerHTML = html;
}
};
plugin.on('renderTab', function (callback) {
renderPlugin(callback);
});
plugin.on('showConsole', function () {
renderPlugin(callback);
});
plugin.on('show', function () {
renderPlugin(callback);
});
var btnList = [];
btnList.push({
name: '隐藏vConsole',
global: false,
onClick: function onClick() {
var _a;
(_a = window.vConsole) === null || _a === void 0 ? void 0 : _a.destroy();
}
});
plugin.on('addTool', function (callback) {
callback(btnList);
});
plugin.on('show', function () {
var _a, _b, _c;
(_a = document.getElementById(V_CONSOLE_DOM.URL_INPUT_ID)) === null || _a === void 0 ? void 0 : _a.addEventListener('input', updateInputValue);
(_b = document.getElementById(V_CONSOLE_DOM.URL_JUMP_BUTTON)) === null || _b === void 0 ? void 0 : _b.addEventListener('click', jumpToUrl);
(_c = document.getElementById(V_CONSOLE_DOM.GO_BACK_BUTTON)) === null || _c === void 0 ? void 0 : _c.addEventListener('click', goBack);
});
plugin.on('hide', function () {
var _a, _b, _c;
(_a = document.getElementById(V_CONSOLE_DOM.URL_INPUT_ID)) === null || _a === void 0 ? void 0 : _a.removeEventListener('input', updateInputValue);
(_b = document.getElementById(V_CONSOLE_DOM.URL_JUMP_BUTTON)) === null || _b === void 0 ? void 0 : _b.removeEventListener('click', jumpToUrl);
(_c = document.getElementById(V_CONSOLE_DOM.GO_BACK_BUTTON)) === null || _c === void 0 ? void 0 : _c.addEventListener('click', goBack);
});
return plugin;
}
function getPerformanceInfo() {
var _a;
var timing = performance.timing || {};
var timeOrigin = ((_a = performance === null || performance === void 0 ? void 0 : performance.wx) === null || _a === void 0 ? void 0 : _a.timeOrigin) || timing.fetchStart;
var dnsTime = timing.domainLookupEnd - timing.domainLookupStart;
var tcpTime = timing.connectEnd - timing.connectStart;
var backendTime = timing.responseStart - timing.requestStart;
var respTime = timing.responseEnd - timing.responseStart;
var domTime = timing.domContentLoadedEventStart - timing.responseEnd;
var firstRenderTime = timing.domLoading - timeOrigin;
var wholePageTime = timing.loadEventEnd - timeOrigin;
var parseDomTime = timing.domComplete - timing.domInteractive;
var list = [{
value: dnsTime,
label: 'DNS连接耗时'
}, {
value: tcpTime,
label: 'TCP连接耗时'
}, {
value: backendTime,
label: '后端响应时间'
}, {
value: respTime,
label: 'HTML页面下载时间'
}, {
value: domTime,
label: 'DOM时间'
}, {
value: parseDomTime,
label: '解析DOM树耗时'
}, {
value: firstRenderTime,
label: '首次加载耗时'
}, {
value: wholePageTime,
label: '整页耗时'
}];
return list;
}
function getVersionHtml() {
var buildInfo = window[BUILD_NAME_MAP.build] || {};
var commitInfo = window[BUILD_NAME_MAP.commit] || {};
var buildHtmlList = BUILD_LIST.map(function (item) {
var key = item.key,
label = item.label;
return "<div class=\"".concat(V_CONSOLE_DOM.LINE, "\">").concat(label, ": ").concat(buildInfo[key] || '', "</div>");
});
var commitHtmlList = COMMIT_LIST.map(function (item) {
var key = item.key,
label = item.label;
return "<div class=\"".concat(V_CONSOLE_DOM.LINE, "\">").concat(label, ": ").concat(commitInfo[key] || '', "</div>");
});
return __spreadArray(__spreadArray(__spreadArray(__spreadArray([], buildHtmlList, true), [EMPTY_LINE], false), commitHtmlList, true), [EMPTY_LINE, EMPTY_LINE], false).join('\n');
}
function getAegisPerformanceInfo() {
var perfInfo = window[AEGIS_PERFORMANCE_KEY] || {};
var perfHtmlList = AEGIS_PERFORMANCE_LIST.map(function (item) {
var _a;
var key = item.key,
label = item.label;
return "<div class=\"".concat(V_CONSOLE_DOM.LINE, "\">").concat(label, ": ").concat((_a = perfInfo[key]) !== null && _a !== void 0 ? _a : '', "</div>");
});
return __spreadArray(__spreadArray([EMPTY_LINE], perfHtmlList, true), [EMPTY_LINE], false).join('\n');
}
export { initVersionPlugin };