Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
async function nativeFetch(url) {
const response = await fetch(url, {
credentials: "include",
redirect: "follow",
headers: {
"User-Agent": navigator.userAgent, // https://github.com/wantora/weautopagerize/issues/6
},
});
const responseURL = new URL(response.url);
const contentType = response.headers.get("Content-Type");
if (contentType === null) {
throw new Error(`Content-Type Error: ${contentType}`);
}
const mimeType = new MIMEType(contentType);
if (!mimeType.isHTML() && mimeType.essence !== "application/xhtml+xml") {
throw new Error(`Content-Type Error: ${contentType}`);
}
const ab = await response.arrayBuffer();
const charset = mimeType.parameters.get("charset") || document.characterSet;
const textDecoder = new TextDecoder(charset);
const responseText = textDecoder.decode(ab);
return {responseURL, responseText};
}
export function determineRdfType (contentType: string | undefined): RdfType {
if (!contentType) {
return RdfType.NoPref
}
let rdfType
try {
const mimeType = new MIMEType(contentType)
switch (mimeType.essence) {
case 'application/ld+json':
return RdfType.JsonLd
break
case 'text/turtle':
return RdfType.Turtle
break
default:
debug('not an RDF content-type', contentType, mimeType.essence)
return RdfType.Unknown
}
debug({ rdfType, contentType, essence: mimeType.essence })
} catch (e) {
debug('error determining rdf type', e.message)
return RdfType.Unknown
}