diff --git a/package.json b/package.json index b725ca5..f860a6e 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@kikobeats/time-span": "~1.0.13", "@metascraper/helpers": "~5.56.2", "cheerio": "~1.2.0", - "content-type": "~1.0.5", + "content-type": "~3.0.0", "css-url-regex": "~4.0.0", "debug-logfmt": "~1.4.12", "execall": "~2.0.0", diff --git a/src/util.js b/src/util.js index 4ad5e0e..bbe87d6 100644 --- a/src/util.js +++ b/src/util.js @@ -11,24 +11,18 @@ const SEPARATOR = /,|\r?\n/ const parseContentType = contentType => { if (typeof contentType !== 'string') return UNKNOWN_CONTENT_TYPE - try { - return parse(contentType.split(SEPARATOR)[0]) - } catch { - return UNKNOWN_CONTENT_TYPE - } + const parsed = parse(contentType.split(SEPARATOR)[0]) + return parsed.type?.includes('/') ? parsed : UNKNOWN_CONTENT_TYPE } const contentType = headers => { const contentType = headers['content-type'] - return ( - CACHE[contentType] || (CACHE[contentType] = parseContentType(contentType)) - ) + return CACHE[contentType] || (CACHE[contentType] = parseContentType(contentType)) } const getContentType = headers => contentType(headers).type -const getCharset = headers => - contentType(headers).parameters.charset?.toLowerCase() +const getCharset = headers => contentType(headers).parameters.charset?.toLowerCase() const getContentLength = headers => Number(headers['content-length'])