Initial commit
This commit is contained in:
commit
78f8d225ee
21173 changed files with 2907774 additions and 0 deletions
99
node_modules/next/dist/client/components/react-dev-overlay/utils/parse-component-stack.js
generated
vendored
Normal file
99
node_modules/next/dist/client/components/react-dev-overlay/utils/parse-component-stack.js
generated
vendored
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, "parseComponentStack", {
|
||||
enumerable: true,
|
||||
get: function() {
|
||||
return parseComponentStack;
|
||||
}
|
||||
});
|
||||
var LocationType = /*#__PURE__*/ function(LocationType) {
|
||||
LocationType["FILE"] = "file";
|
||||
LocationType["WEBPACK_INTERNAL"] = "webpack-internal";
|
||||
LocationType["HTTP"] = "http";
|
||||
LocationType["PROTOCOL_RELATIVE"] = "protocol-relative";
|
||||
LocationType["UNKNOWN"] = "unknown";
|
||||
return LocationType;
|
||||
}(LocationType || {});
|
||||
/**
|
||||
* Get the type of frame line based on the location
|
||||
*/ function getLocationType(location) {
|
||||
if (location.startsWith('file://')) {
|
||||
return "file";
|
||||
}
|
||||
if (location.includes('webpack-internal://')) {
|
||||
return "webpack-internal";
|
||||
}
|
||||
if (location.startsWith('http://') || location.startsWith('https://')) {
|
||||
return "http";
|
||||
}
|
||||
if (location.startsWith('//')) {
|
||||
return "protocol-relative";
|
||||
}
|
||||
return "unknown";
|
||||
}
|
||||
function parseStackFrameLocation(location) {
|
||||
const locationType = getLocationType(location);
|
||||
const modulePath = location == null ? void 0 : location.replace(/^(webpack-internal:\/\/\/|file:\/\/)(\(.*\)\/)?/, '');
|
||||
var _modulePath_match;
|
||||
const [, file, lineNumber, column] = (_modulePath_match = modulePath == null ? void 0 : modulePath.match(/^(.+):(\d+):(\d+)/)) != null ? _modulePath_match : [];
|
||||
switch(locationType){
|
||||
case "file":
|
||||
case "webpack-internal":
|
||||
return {
|
||||
canOpenInEditor: true,
|
||||
file,
|
||||
lineNumber: lineNumber ? Number(lineNumber) : undefined,
|
||||
column: column ? Number(column) : undefined
|
||||
};
|
||||
// When the location is a URL we only show the file
|
||||
// TODO: Resolve http(s) URLs through sourcemaps
|
||||
case "http":
|
||||
case "protocol-relative":
|
||||
case "unknown":
|
||||
default:
|
||||
{
|
||||
return {
|
||||
canOpenInEditor: false
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
function parseComponentStack(componentStack) {
|
||||
const componentStackFrames = [];
|
||||
for (const line of componentStack.trim().split('\n')){
|
||||
// TODO: support safari stack trace
|
||||
// Get component and file from the component stack line
|
||||
const match = /at ([^ ]+)( \((.*)\))?/.exec(line);
|
||||
if (match == null ? void 0 : match[1]) {
|
||||
const component = match[1];
|
||||
const location = match[3];
|
||||
if (!location) {
|
||||
componentStackFrames.push({
|
||||
canOpenInEditor: false,
|
||||
component
|
||||
});
|
||||
continue;
|
||||
}
|
||||
// Stop parsing the component stack if we reach a Next.js component
|
||||
if (location == null ? void 0 : location.includes('next/dist')) {
|
||||
break;
|
||||
}
|
||||
const frameLocation = parseStackFrameLocation(location);
|
||||
componentStackFrames.push({
|
||||
component,
|
||||
...frameLocation
|
||||
});
|
||||
}
|
||||
}
|
||||
return componentStackFrames;
|
||||
}
|
||||
|
||||
if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
|
||||
Object.defineProperty(exports.default, '__esModule', { value: true });
|
||||
Object.assign(exports.default, exports);
|
||||
module.exports = exports.default;
|
||||
}
|
||||
|
||||
//# sourceMappingURL=parse-component-stack.js.map
|
||||
Loading…
Add table
Add a link
Reference in a new issue