2.5 KiB
errors/mime-error
Purpose
The base error class for all @suaveplan/mime errors. Extends SuaveplanError from @suaveplan/error with the MIME_ERROR_CODES namespace and provides a common ancestor for instanceof checks across all MIME-specific error types.
Features
- Extends
SuaveplanErrorfor consistent error serialization and OTel integration codefield set toMIME_ERROR_CODES.INVALID_CONTENT_TYPEby default (overridden by subclasses)nameproperty set to"MimeError"for easy identification in logs- Compatible with
SuaveplanError's cause-chain traversal and redaction APIs - Used as the base for
instanceof MimeErrorchecks when callers don't need the specific subtype
Usage: Basic Example
import { MimeError } from "@suaveplan/mime/errors";
try {
// Any MIME operation
} catch (err) {
if (err instanceof MimeError) {
console.error("MIME error:", err.message, "code:", err.code);
}
}
Usage: Advanced Example
import { MimeError } from "@suaveplan/mime/errors";
import { InvalidContentTypeError, UnknownMimeTypeError } from "@suaveplan/mime/errors";
// Route by specific subtype
function handleMimeError(err: MimeError) {
if (err instanceof InvalidContentTypeError) {
return Response.json({ error: "bad_content_type" }, { status: 400 });
}
if (err instanceof UnknownMimeTypeError) {
return Response.json({ error: "unsupported_type" }, { status: 415 });
}
throw err; // Unexpected subtype — re-throw
}
API Reference
class MimeError extends SuaveplanError
The base class. All @suaveplan/mime error classes extend this.
Implementation Notes
MimeError exists primarily to provide a stable instanceof target for callers who want to catch any MIME-related error without caring about the specific subtype. All subclasses set their own code from MIME_ERROR_CODES and override name with their class name. The inheritance chain is: SuaveplanError → MimeError → {subtype}.
Subclass Index
Direct subclasses are InvalidContentTypeError, UnknownMimeTypeError, UnknownSignatureError, InsufficientBytesError, and ParseError. Every subclass sets its own code from the stable MIME_ERROR_CODES registry, overrides name, and inherits the wire-serialisation, OTel span-event adapter, and i18n resolver behaviour from SuaveplanError. Tests typically assert err instanceof MimeError first for broad catches, then narrow with instanceof on the specific subclass.