Fill out content types object
This commit is contained in:
@@ -2,8 +2,7 @@ import { Extensible } from "./interfaces";
|
||||
|
||||
export type ContentType = string;
|
||||
|
||||
// FIXME: Fill this out (get an AI to do it)
|
||||
|
||||
// tx claude https://claude.ai/share/344fc7bd-5321-4763-af2f-b82275e9f865
|
||||
const contentTypes = {
|
||||
text: {
|
||||
plain: "text/plain",
|
||||
@@ -11,6 +10,9 @@ const contentTypes = {
|
||||
css: "text/css",
|
||||
javascript: "text/javascript",
|
||||
xml: "text/xml",
|
||||
csv: "text/csv",
|
||||
markdown: "text/markdown",
|
||||
calendar: "text/calendar",
|
||||
},
|
||||
image: {
|
||||
jpeg: "image/jpeg",
|
||||
@@ -18,23 +20,103 @@ const contentTypes = {
|
||||
gif: "image/gif",
|
||||
svgPlusXml: "image/svg+xml",
|
||||
webp: "image/webp",
|
||||
bmp: "image/bmp",
|
||||
ico: "image/x-icon",
|
||||
tiff: "image/tiff",
|
||||
avif: "image/avif",
|
||||
},
|
||||
audio: {
|
||||
mpeg: "audio/mpeg",
|
||||
wav: "audio/wav",
|
||||
ogg: "audio/ogg",
|
||||
webm: "audio/webm",
|
||||
aac: "audio/aac",
|
||||
midi: "audio/midi",
|
||||
opus: "audio/opus",
|
||||
flac: "audio/flac",
|
||||
},
|
||||
video: {
|
||||
mp4: "video/mp4",
|
||||
webm: "video/webm",
|
||||
xMsvideo: "video/x-msvideo",
|
||||
mpeg: "video/mpeg",
|
||||
ogg: "video/ogg",
|
||||
quicktime: "video/quicktime",
|
||||
xMatroska: "video/x-matroska",
|
||||
},
|
||||
application: {
|
||||
json: "application/json",
|
||||
pdf: "application/pdf",
|
||||
zip: "application/zip",
|
||||
xWwwFormUrlencoded: "x-www-form-urlencoded",
|
||||
octetStream: "octet-stream",
|
||||
xWwwFormUrlencoded: "application/x-www-form-urlencoded",
|
||||
octetStream: "application/octet-stream",
|
||||
xml: "application/xml",
|
||||
gzip: "application/gzip",
|
||||
javascript: "application/javascript",
|
||||
ld_json: "application/ld+json",
|
||||
msword: "application/msword",
|
||||
vndOpenxmlformatsOfficedocumentWordprocessingmlDocument:
|
||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||
vndMsExcel: "application/vnd.ms-excel",
|
||||
vndOpenxmlformatsOfficedocumentSpreadsheetmlSheet:
|
||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
vndMsPowerpoint: "application/vnd.ms-powerpoint",
|
||||
vndOpenxmlformatsOfficedocumentPresentationmlPresentation:
|
||||
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
||||
sql: "application/sql",
|
||||
graphql: "application/graphql",
|
||||
wasm: "application/wasm",
|
||||
xTar: "application/x-tar",
|
||||
x7zCompressed: "application/x-7z-compressed",
|
||||
xRarCompressed: "application/x-rar-compressed",
|
||||
},
|
||||
multipart: {
|
||||
formData: "multipart/form-data",
|
||||
byteranges: "multipart/byteranges",
|
||||
},
|
||||
font: {
|
||||
woff: "font/woff",
|
||||
woff2: "font/woff2",
|
||||
ttf: "font/ttf",
|
||||
otf: "font/otf",
|
||||
},
|
||||
};
|
||||
|
||||
export { contentTypes };
|
||||
|
||||
/*
|
||||
|
||||
possible additions for later
|
||||
|
||||
Looking at what's there, here are a few gaps that might be worth filling:
|
||||
Streaming/Modern Web:
|
||||
|
||||
application/x-ndjson or application/jsonlines - newline-delimited JSON (popular for streaming APIs)
|
||||
text/event-stream - Server-Sent Events
|
||||
|
||||
API/Data Exchange:
|
||||
|
||||
application/yaml or text/yaml - YAML files
|
||||
application/protobuf - Protocol Buffers
|
||||
application/msgpack - MessagePack
|
||||
|
||||
Archives you're missing:
|
||||
|
||||
application/x-bzip2 - bzip2 compression
|
||||
|
||||
Images:
|
||||
|
||||
image/heic - HEIC/HEIF (common on iOS)
|
||||
|
||||
Fonts:
|
||||
|
||||
application/vnd.ms-fontobject - EOT fonts (legacy but still seen)
|
||||
|
||||
Text:
|
||||
|
||||
text/rtf - Rich Text Format
|
||||
|
||||
The most impactful would probably be text/event-stream (if you do any SSE), application/x-ndjson (common in modern APIs), and maybe text/yaml. The rest are more situational.
|
||||
But honestly, what you have covers 95% of common web development scenarios. You can definitely add as you go when you encounter specific needs!
|
||||
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user