// utils/oftenError.js import { manualError } from "./errorList.js"; export class OftenError extends Error { /** * ใช้ได้ 2 แบบ: * 1. throw new OftenError("not_found") * 2. throw new OftenError(400, "ไทย", "English") */ constructor(arg1, arg2, arg3) { // แบบ lookup จาก key if (typeof arg1 === "string" && !arg2 && !arg3) { const found = manualError(arg1); super(found.messageEn); this.statusCode = found.code; this.messageTh = found.messageTh; this.messageEn = found.messageEn; this.key = arg1; } // แบบ manual else if (typeof arg1 === "number" && arg2 && arg3) { super(arg3); this.statusCode = arg1; this.messageTh = arg2; this.messageEn = arg3; this.key = "manual"; } // fallback else { super("Invalid error format"); this.statusCode = 500; this.messageTh = "รูปแบบการสร้าง error ไม่ถูกต้อง"; this.messageEn = "Invalid error constructor format"; this.key = "invalid_format"; } this.name = "OftenError"; } }