telefunc
Version:
Remote functions. Instead of API.
29 lines (28 loc) • 917 B
JavaScript
export { handleError };
import { hasProp } from '../../utils.js';
import { getViteDevServer } from '../globalContext.js';
function handleError(err) {
// We ensure we print a string; Cloudflare Workers doesn't seem to properly stringify `Error` objects.
const errStr = (hasProp(err, 'stack') && String(err.stack)) || String(err);
const viteDevServer = getViteDevServer();
if (viteAlreadyLoggedError(err, viteDevServer)) {
return;
}
viteErrorCleanup(err, viteDevServer);
console.error(errStr);
}
function viteAlreadyLoggedError(err, viteDevServer) {
if (!viteDevServer) {
return false;
}
return viteDevServer.config.logger.hasErrorLogged(err);
}
function viteErrorCleanup(err, viteDevServer) {
if (!viteDevServer) {
return false;
}
if (hasProp(err, 'stack')) {
// Apply source maps
viteDevServer.ssrFixStacktrace(err);
}
}