A development-only overlay for developing React applications with comprehensive error reporting and debugging capabilities.
npx @tessl/cli install tessl/npm-next--react-dev-overlay@14.1.0@next/react-dev-overlay is a comprehensive development overlay system specifically designed for React applications during development. It provides real-time error reporting and debugging capabilities by intercepting and displaying unhandled errors, promise rejections, and build errors in an intuitive overlay interface.
npm install @next/react-dev-overlayimport { ReactDevOverlay, register, unregister } from "@next/react-dev-overlay";For CommonJS:
const { ReactDevOverlay, register, unregister } = require("@next/react-dev-overlay");Middleware imports:
import { getOverlayMiddleware } from "@next/react-dev-overlay/middleware";import { ReactDevOverlay, register } from "@next/react-dev-overlay";
import React from "react";
// Register error handlers
register();
function App() {
return (
<ReactDevOverlay>
<YourApplication />
</ReactDevOverlay>
);
}
// Optional: emit build events
import { onBuildOk, onBuildError } from "@next/react-dev-overlay";
// Signal successful build
onBuildOk();
// Signal build error
onBuildError("TypeScript compilation failed");The React Development Overlay is built around several key components:
Core client-side error handling and overlay functionality for React applications.
function register(): void;
function unregister(): void;
const ReactDevOverlay: React.ComponentType<ReactDevOverlayProps>;
interface ReactDevOverlayProps {
children?: React.ReactNode;
preventDisplay?: ErrorType[];
globalOverlay?: boolean;
}Build event management system for communicating build status and errors.
function onBuildOk(): void;
function onBuildError(message: string): void;
function onRefresh(): void;
function onBeforeRefresh(): void;Express middleware for handling overlay requests and source map processing with webpack.
function getOverlayMiddleware(options: OverlayMiddlewareOptions): (req: IncomingMessage, res: ServerResponse, next: () => void) => void;
interface OverlayMiddlewareOptions {
rootDirectory: string;
stats(): webpack.Stats | null;
serverStats(): webpack.Stats | null;
edgeServerStats(): webpack.Stats | null;
}Turbopack-specific middleware for handling overlay requests with Turbopack builds.
function getOverlayMiddleware(project: Project): (req: IncomingMessage, res: ServerResponse, next: () => void) => void;
interface Project {
// Project interface for Turbopack operations
}Advanced error processing utilities for server-side error handling and stack frame analysis.
function getErrorByType(ev: SupportedErrorEvent): Promise<ReadyRuntimeError>;
function getServerError(error: Error, type: ErrorType): Error;
function parseStack(stack: string): StackFrame[];
interface ReadyRuntimeError {
id: number;
runtime: true;
error: Error;
frames: OriginalStackFrame[];
componentStack?: string[];
}type ErrorType = 'runtime' | 'build';
interface SupportedErrorEvent {
id: number;
event: BusEvent;
}
type OriginalStackFrame = OriginalStackFrameError | OriginalStackFrameExternal | OriginalStackFrameInternal;
interface OriginalStackFrameResponse {
originalStackFrame: StackFrame;
originalCodeFrame: string | null;
sourcePackage?: string;
}
interface BusEvent {
type: string;
[key: string]: any;
}
type BusEventHandler = (ev: BusEvent) => void;