vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
42 lines (39 loc) • 5.05 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import { handleError } from '../error/handleError.js';
function createMainThreadHandlers(handlerOptions, onError) {
return {
onError: (_id, error, context) => {
if (handlerOptions.verbose) {
handlerOptions.logger?.info(
`[createMainThreadHandlers] onError called for route ${handlerOptions.route}: ${error}`
);
}
const originalError = error instanceof Error ? error : new Error(String(error ?? "Unknown error"));
const panicError = handleError({
error: originalError,
critical: false,
logger: handlerOptions.logger,
panicThreshold: handlerOptions.panicThreshold,
context: `${context?.context || "Unknown"} for route ${handlerOptions.route}`
});
if (handlerOptions.verbose) {
handlerOptions.logger?.info(
`[createMainThreadHandlers] Calling onError callback for route ${handlerOptions.route} with panicError: ${!!panicError}`
);
}
onError?.(panicError || originalError, !!panicError);
},
onData: (_id, _data) => {
},
onEnd: (_id) => {
},
onPostpone: (_id, _reason) => {
}
};
}
export { createMainThreadHandlers };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTWFpblRocmVhZEhhbmRsZXJzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vc3RyZWFtL2NyZWF0ZU1haW5UaHJlYWRIYW5kbGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENyZWF0ZUhhbmRsZXJPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBoYW5kbGVFcnJvciB9IGZyb20gXCIuLi9lcnJvci9oYW5kbGVFcnJvci5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWFpblRocmVhZEhhbmRsZXJzKFxuICBoYW5kbGVyT3B0aW9uczogQ3JlYXRlSGFuZGxlck9wdGlvbnMsXG4gIG9uRXJyb3I/OiAoZXJyb3I6IEVycm9yLCBpc1BhbmljOiBib29sZWFuKSA9PiB2b2lkXG4pIHtcbiAgcmV0dXJuIHtcbiAgICBvbkVycm9yOiAoX2lkOiBzdHJpbmcsIGVycm9yOiB1bmtub3duLCBjb250ZXh0PzogeyByb3V0ZT86IHN0cmluZzsgY29udGV4dD86IHN0cmluZyB9KSA9PiB7XG4gICAgICBpZiAoaGFuZGxlck9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICBoYW5kbGVyT3B0aW9ucy5sb2dnZXI/LmluZm8oXG4gICAgICAgICAgYFtjcmVhdGVNYWluVGhyZWFkSGFuZGxlcnNdIG9uRXJyb3IgY2FsbGVkIGZvciByb3V0ZSAke2hhbmRsZXJPcHRpb25zLnJvdXRlfTogJHtlcnJvcn1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGNvbnN0IG9yaWdpbmFsRXJyb3IgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoU3RyaW5nKGVycm9yID8/IFwiVW5rbm93biBlcnJvclwiKSk7XG4gICAgICBjb25zdCBwYW5pY0Vycm9yID0gaGFuZGxlRXJyb3Ioe1xuICAgICAgICBlcnJvcjogb3JpZ2luYWxFcnJvcixcbiAgICAgICAgY3JpdGljYWw6IGZhbHNlLFxuICAgICAgICBsb2dnZXI6IGhhbmRsZXJPcHRpb25zLmxvZ2dlcixcbiAgICAgICAgcGFuaWNUaHJlc2hvbGQ6IGhhbmRsZXJPcHRpb25zLnBhbmljVGhyZXNob2xkLFxuICAgICAgICBjb250ZXh0OiBgJHtjb250ZXh0Py5jb250ZXh0IHx8IFwiVW5rbm93blwifSBmb3Igcm91dGUgJHtoYW5kbGVyT3B0aW9ucy5yb3V0ZX1gLFxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIGlmIChoYW5kbGVyT3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgIGhhbmRsZXJPcHRpb25zLmxvZ2dlcj8uaW5mbyhcbiAgICAgICAgICBgW2NyZWF0ZU1haW5UaHJlYWRIYW5kbGVyc10gQ2FsbGluZyBvbkVycm9yIGNhbGxiYWNrIGZvciByb3V0ZSAke2hhbmRsZXJPcHRpb25zLnJvdXRlfSB3aXRoIHBhbmljRXJyb3I6ICR7ISFwYW5pY0Vycm9yfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gQ2FsbCB0aGUgY2FsbGJhY2sgd2l0aCB0aGUgZXJyb3IgYW5kIHBhbmljIHN0YXR1c1xuICAgICAgb25FcnJvcj8uKHBhbmljRXJyb3IgfHwgb3JpZ2luYWxFcnJvciwgISFwYW5pY0Vycm9yKTtcbiAgICB9LFxuICAgIG9uRGF0YTogKF9pZDogc3RyaW5nLCBfZGF0YTogVWludDhBcnJheSkgPT4ge1xuICAgICAgLy8gTm8tb3AgZm9yIG1haW4gdGhyZWFkXG4gICAgfSxcbiAgICBvbkVuZDogKF9pZDogc3RyaW5nKSA9PiB7XG4gICAgICAvLyBOby1vcCBmb3IgbWFpbiB0aHJlYWRcbiAgICB9LFxuICAgIG9uUG9zdHBvbmU6IChfaWQ6IHN0cmluZywgX3JlYXNvbjogc3RyaW5nKSA9PiB7XG4gICAgICAvLyBOby1vcCBmb3IgbWFpbiB0aHJlYWRcbiAgICB9LFxuICB9O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFHTyxTQUFTLHdCQUFBLENBQ2QsZ0JBQ0EsT0FDQSxFQUFBO0FBQ0EsRUFBTyxPQUFBO0FBQUEsSUFDTCxPQUFTLEVBQUEsQ0FBQyxHQUFhLEVBQUEsS0FBQSxFQUFnQixPQUFtRCxLQUFBO0FBQ3hGLE1BQUEsSUFBSSxlQUFlLE9BQVMsRUFBQTtBQUMxQixRQUFBLGNBQUEsQ0FBZSxNQUFRLEVBQUEsSUFBQTtBQUFBLFVBQ3JCLENBQXVELG9EQUFBLEVBQUEsY0FBQSxDQUFlLEtBQUssQ0FBQSxFQUFBLEVBQUssS0FBSyxDQUFBO0FBQUEsU0FDdkY7QUFBQTtBQUdGLE1BQU0sTUFBQSxhQUFBLEdBQWdCLGlCQUFpQixLQUFRLEdBQUEsS0FBQSxHQUFRLElBQUksS0FBTSxDQUFBLE1BQUEsQ0FBTyxLQUFTLElBQUEsZUFBZSxDQUFDLENBQUE7QUFDakcsTUFBQSxNQUFNLGFBQWEsV0FBWSxDQUFBO0FBQUEsUUFDN0IsS0FBTyxFQUFBLGFBQUE7QUFBQSxRQUNQLFFBQVUsRUFBQSxLQUFBO0FBQUEsUUFDVixRQUFRLGNBQWUsQ0FBQSxNQUFBO0FBQUEsUUFDdkIsZ0JBQWdCLGNBQWUsQ0FBQSxjQUFBO0FBQUEsUUFDL0IsU0FBUyxDQUFHLEVBQUEsT0FBQSxFQUFTLFdBQVcsU0FBUyxDQUFBLFdBQUEsRUFBYyxlQUFlLEtBQUssQ0FBQTtBQUFBLE9BQzVFLENBQUE7QUFFRCxNQUFBLElBQUksZUFBZSxPQUFTLEVBQUE7QUFDMUIsUUFBQSxjQUFBLENBQWUsTUFBUSxFQUFBLElBQUE7QUFBQSxVQUNyQixpRUFBaUUsY0FBZSxDQUFBLEtBQUssQ0FBcUIsa0JBQUEsRUFBQSxDQUFDLENBQUMsVUFBVSxDQUFBO0FBQUEsU0FDeEg7QUFBQTtBQUlGLE1BQUEsT0FBQSxHQUFVLFVBQWMsSUFBQSxhQUFBLEVBQWUsQ0FBQyxDQUFDLFVBQVUsQ0FBQTtBQUFBLEtBQ3JEO0FBQUEsSUFDQSxNQUFBLEVBQVEsQ0FBQyxHQUFBLEVBQWEsS0FBc0IsS0FBQTtBQUFBLEtBRTVDO0FBQUEsSUFDQSxLQUFBLEVBQU8sQ0FBQyxHQUFnQixLQUFBO0FBQUEsS0FFeEI7QUFBQSxJQUNBLFVBQUEsRUFBWSxDQUFDLEdBQUEsRUFBYSxPQUFvQixLQUFBO0FBQUE7QUFFOUMsR0FDRjtBQUNGOzs7OyJ9