Files
scrap/node_modules/next/dist/client/components/react-dev-overlay/shared.js
2024-09-24 03:52:46 +00:00

187 lines
6.4 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
ACTION_BEFORE_REFRESH: null,
ACTION_BUILD_ERROR: null,
ACTION_BUILD_OK: null,
ACTION_REFRESH: null,
ACTION_UNHANDLED_ERROR: null,
ACTION_UNHANDLED_REJECTION: null,
ACTION_VERSION_INFO: null,
INITIAL_OVERLAY_STATE: null,
REACT_REFRESH_FULL_RELOAD_FROM_ERROR: null,
useErrorOverlayReducer: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
ACTION_BEFORE_REFRESH: function() {
return ACTION_BEFORE_REFRESH;
},
ACTION_BUILD_ERROR: function() {
return ACTION_BUILD_ERROR;
},
ACTION_BUILD_OK: function() {
return ACTION_BUILD_OK;
},
ACTION_REFRESH: function() {
return ACTION_REFRESH;
},
ACTION_UNHANDLED_ERROR: function() {
return ACTION_UNHANDLED_ERROR;
},
ACTION_UNHANDLED_REJECTION: function() {
return ACTION_UNHANDLED_REJECTION;
},
ACTION_VERSION_INFO: function() {
return ACTION_VERSION_INFO;
},
INITIAL_OVERLAY_STATE: function() {
return INITIAL_OVERLAY_STATE;
},
REACT_REFRESH_FULL_RELOAD_FROM_ERROR: function() {
return REACT_REFRESH_FULL_RELOAD_FROM_ERROR;
},
useErrorOverlayReducer: function() {
return useErrorOverlayReducer;
}
});
const _react = require("react");
const ACTION_BUILD_OK = "build-ok";
const ACTION_BUILD_ERROR = "build-error";
const ACTION_BEFORE_REFRESH = "before-fast-refresh";
const ACTION_REFRESH = "fast-refresh";
const ACTION_VERSION_INFO = "version-info";
const ACTION_UNHANDLED_ERROR = "unhandled-error";
const ACTION_UNHANDLED_REJECTION = "unhandled-rejection";
function pushErrorFilterDuplicates(errors, err) {
return [
...errors.filter((e)=>{
// Filter out duplicate errors
return e.event.reason !== err.event.reason;
}),
err
];
}
const INITIAL_OVERLAY_STATE = {
nextId: 1,
buildError: null,
errors: [],
notFound: false,
refreshState: {
type: "idle"
},
rootLayoutMissingTags: [],
versionInfo: {
installed: "0.0.0",
staleness: "unknown"
}
};
function useErrorOverlayReducer() {
return (0, _react.useReducer)((_state, action)=>{
switch(action.type){
case ACTION_BUILD_OK:
{
return {
..._state,
buildError: null
};
}
case ACTION_BUILD_ERROR:
{
return {
..._state,
buildError: action.message
};
}
case ACTION_BEFORE_REFRESH:
{
return {
..._state,
refreshState: {
type: "pending",
errors: []
}
};
}
case ACTION_REFRESH:
{
return {
..._state,
buildError: null,
errors: // Errors can come in during updates. In this case, UNHANDLED_ERROR
// and UNHANDLED_REJECTION events might be dispatched between the
// BEFORE_REFRESH and the REFRESH event. We want to keep those errors
// around until the next refresh. Otherwise we run into a race
// condition where those errors would be cleared on refresh completion
// before they can be displayed.
_state.refreshState.type === "pending" ? _state.refreshState.errors : [],
refreshState: {
type: "idle"
}
};
}
case ACTION_UNHANDLED_ERROR:
case ACTION_UNHANDLED_REJECTION:
{
switch(_state.refreshState.type){
case "idle":
{
return {
..._state,
nextId: _state.nextId + 1,
errors: pushErrorFilterDuplicates(_state.errors, {
id: _state.nextId,
event: action
})
};
}
case "pending":
{
return {
..._state,
nextId: _state.nextId + 1,
refreshState: {
..._state.refreshState,
errors: pushErrorFilterDuplicates(_state.refreshState.errors, {
id: _state.nextId,
event: action
})
}
};
}
default:
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const _ = _state.refreshState;
return _state;
}
}
case ACTION_VERSION_INFO:
{
return {
..._state,
versionInfo: action.versionInfo
};
}
default:
{
return _state;
}
}
}, INITIAL_OVERLAY_STATE);
}
const REACT_REFRESH_FULL_RELOAD_FROM_ERROR = "[Fast Refresh] performing full reload because your application had an unrecoverable error";
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=shared.js.map