@helia/verified-fetch
Version:
A fetch-like API for obtaining verified & trustless IPFS content on the web
19 lines (15 loc) • 558 B
text/typescript
/**
* Takes a filename URL param and returns a string for use in a
* `Content-Disposition` header
*/
export function getContentDispositionFilename (filename: string): string {
const asciiOnly = replaceNonAsciiCharacters(filename)
if (asciiOnly === filename) {
return `filename="${filename}"`
}
return `filename="${asciiOnly}"; filename*=UTF-8''${encodeURIComponent(filename)}`
}
function replaceNonAsciiCharacters (filename: string): string {
// eslint-disable-next-line no-control-regex
return filename.replace(/[^\x00-\x7F]/g, '_')
}