import { URL } from 'url' import * as path from 'path' const filenamify = require('filenamify') const _sanitize = require("sanitize-filename") const sanitize_ex = (f) => { let str: string = filenamify(_sanitize(f)).replace(/[^\x00-\x7F]/g, "").replace('_', ''); return str; } export interface IDownloadUrl{ urlParts: URL pathParts: path.ParsedPath filename: string path:string url: string } export const parseForDownload = (url: string, dst: string) : IDownloadUrl => { const parsed = new URL(url); const parts = path.parse(parsed.pathname) const filename = sanitize_ex(decodeURI(parts.base)) const downloadPath = path.resolve(`${dst}/${filename}`) const downloadUrl = parsed.origin + parsed.pathname return { urlParts:parsed, pathParts: parts, filename: filename, path: downloadPath, url: downloadUrl } }