IKHSAN
ENID Baca dalam Bahasa Indonesia

homeio

Public

Forked from doctor-io/homeio

Branch
main
Latest commit
958d74616 October 2026

errors.mjs

Open raw
class HelperServiceError extends Error {
  constructor(message, options = {}) {
    super(message, {
      cause: options.cause,
    });
    this.name = "HelperServiceError";
    this.code = options.code ?? "internal_error";
    this.statusCode = options.statusCode ?? 500;
  }
}

function toCodeFromError(error) {
  if (error instanceof HelperServiceError) return error;

  if (error instanceof Error) {
    const message = error.message.toLowerCase();
    if (
      message.includes("org.freedesktop.networkmanager") ||
      message.includes("networkmanager") ||
      message.includes("serviceunknown")
    ) {
      return new HelperServiceError("NetworkManager is unavailable", {
        code: "network_manager_unavailable",
        statusCode: 503,
        cause: error,
      });
    }

    if (
      message.includes("secrets") ||
      message.includes("invalid password") ||
      message.includes("authentication") ||
      message.includes("802-11-wireless-security")
    ) {
      return new HelperServiceError("Wi-Fi authentication failed", {
        code: "auth_failed",
        statusCode: 401,
        cause: error,
      });
    }
  }

  return new HelperServiceError(
    error instanceof Error ? error.message : "Unknown helper error",
    {
      code: "internal_error",
      statusCode: 500,
      cause: error,
    },
  );
}

export { HelperServiceError, toCodeFromError };
bytes
1,401
lines
54
Type
mjs
Latest commit
16 October 2026