UNPKG

rjweb-server

Version:

Easy and Robust Way to create a Web Server with Many Easy-to-use Features in NodeJS

99 lines (98 loc) 3.23 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var handleEvent_exports = {}; __export(handleEvent_exports, { default: () => handleEvent }); module.exports = __toCommonJS(handleEvent_exports); async function handleEvent(event, ctr, ctx, ctg) { ctx.execute.event = "none"; switch (event) { case "httpError": case "wsConnectError": case "wsMessageError": case "wsCloseError": { ctx.executeCode = false; try { if (!await ctg.controller.emitSafe(event, ctr, ctx.error)) { if (ctr.type === "http" || ctr.type === "upgrade" || ctr.type === "close") { ctx.response.status = 500; ctx.response.statusMessage = void 0; ctx.response.content = [`An Error occured: ${ctx.error}`]; console.error(`An Error occured: `, ctx.error); } else { ctr.print(`An Error occured: ${ctx.error}`); ctg.logger.error(`An Error while handling request occured: `, ctx.error); } } } catch (err) { if (ctr.type === "http" || ctr.type === "upgrade" || ctr.type === "close") { ctx.response.status = 500; ctx.response.statusMessage = void 0; ctx.response.content = [`An Error occured in the ${event} event: ${err}`]; console.error(`An Error occured in the ${event} event: `, err); } else { ctr.print(`An Error occured in the ${event} event: ${err}`); console.error(`An Error occured in the ${event} event: `, err); } } break; } case "route404": { try { ctx.response.status = 404; ctx.response.statusMessage = void 0; ctx.response.content = [`Cannot ${ctr.url.method} ${ctr.url.path}`]; await ctg.controller.emitSafe(event, ctr); } catch (err) { ctx.error = err; await handleEvent("httpError", ctr, ctx, ctg); } break; } case "httpRequest": { try { await ctg.controller.emitSafe(event, ctr, () => ctx.executeCode = false); } catch (err) { ctx.error = err; await handleEvent("httpError", ctr, ctx, ctg); } break; } case "wsConnect": case "wsMessage": case "wsClose": { try { await ctg.controller.emitSafe(event, ctr, () => ctx.executeCode = false); } catch (err) { ctx.error = err; await handleEvent(event.concat("Error"), ctr, ctx, ctg); } break; } } }