2.6 KiB
error-codes
(no submodules)
Purpose
Defines the stable numeric error-code registry for every error class in @suaveplan/mime. Each code is a non-overlapping integer in the 5000–5099 range, allocated via defineCodes from @suaveplan/error. Stable codes enable error identification across serialization, transport, and version upgrades without relying on class names or message strings.
Features
- Five distinct error codes:
INVALID_CONTENT_TYPE,UNKNOWN_MIME_TYPE,INSUFFICIENT_BYTES,PARSE_ERROR,UNKNOWN_SIGNATURE - Allocated via
@suaveplan/error'sdefineCodesfor namespace isolation - Zero runtime overhead — values are plain numbers resolved at import time
- Deterministic: the same integer is guaranteed across package versions
Usage: Basic Example
import { MIME_ERROR_CODES } from "@suaveplan/mime/errors/codes";
// Identify any MIME error by numeric code
if (error.code === MIME_ERROR_CODES.INVALID_CONTENT_TYPE) {
console.error("Malformed Content-Type header");
}
Usage: Advanced Example
import { MIME_ERROR_CODES } from "@suaveplan/mime/errors/codes";
import { InvalidContentTypeError } from "@suaveplan/mime/errors";
// The code on each thrown error matches the registry
try {
parseContentType("not-a-content-type");
} catch (err) {
if (err instanceof InvalidContentTypeError) {
console.log(err.code === MIME_ERROR_CODES.INVALID_CONTENT_TYPE); // true
}
}
API Reference
MIME_ERROR_CODES
| Name | Description |
|---|---|
INVALID_CONTENT_TYPE |
Malformed or unparseable Content-Type header |
UNKNOWN_MIME_TYPE |
MIME type not found in the built-in database |
INSUFFICIENT_BYTES |
Too few bytes provided for magic-byte detection |
PARSE_ERROR |
General parse failure (XML/HTML charset sniffing) |
UNKNOWN_SIGNATURE |
Byte signature pattern not recognized |
Implementation Notes
The range 5000–5099 is reserved for @suaveplan/mime. Adjacent packages use non-overlapping ranges so that a project-wide error router can dispatch on code alone. The defineCodes call enforces uniqueness and throws at import time if a range collision is detected during development.
Registry Layout
Every code lives under the MIME namespace and is produced by defineCodes from @suaveplan/error: MIME.PARSE.INVALID, MIME.CONTENT_TYPE.INVALID, MIME.TYPE.UNKNOWN, MIME.SIGNATURE.UNKNOWN, MIME.BYTES.INSUFFICIENT. The MimeErrorCode union is used by the MimeError<TCode> generic so subclasses advertise exactly which codes they can carry.