1 line
1.6 KiB
Plaintext
1 line
1.6 KiB
Plaintext
{"version":3,"sources":["../src/uri.ts"],"sourcesContent":["import { URL } from 'url'\r\nimport * as path from 'path'\r\n\r\nconst filenamify = require('filenamify')\r\nconst _sanitize = require(\"sanitize-filename\")\r\n\r\nconst sanitize_ex = (f) => {\r\n let str: string = filenamify(_sanitize(f)).replace(/[^\\x00-\\x7F]/g, \"\").replace('_', '');\r\n return str;\r\n}\r\n\r\nexport interface IDownloadUrl{\r\n urlParts: URL\r\n pathParts: path.ParsedPath\r\n filename: string\r\n path:string\r\n url: string\r\n}\r\n\r\nexport const parseForDownload = (url: string, dst: string) : IDownloadUrl => {\r\n\r\n const parsed = new URL(url);\r\n const parts = path.parse(parsed.pathname)\r\n\r\n const filename = sanitize_ex(decodeURI(parts.base))\r\n const downloadPath = path.resolve(`${dst}/${filename}`)\r\n const downloadUrl = parsed.origin + parsed.pathname\r\n \r\n return {\r\n urlParts:parsed,\r\n pathParts: parts,\r\n filename: filename,\r\n path: downloadPath,\r\n url: downloadUrl\r\n }\r\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAoB;AACpB,WAAsB;AAEtB,MAAM,aAAa,QAAQ,YAAY;AACvC,MAAM,YAAY,QAAQ,mBAAmB;AAE7C,MAAM,cAAc,CAAC,MAAM;AACvB,MAAI,MAAc,WAAW,UAAU,CAAC,CAAC,EAAE,QAAQ,iBAAiB,EAAE,EAAE,QAAQ,KAAK,EAAE;AACvF,SAAO;AACX;AAUO,MAAM,mBAAmB,CAAC,KAAa,QAA+B;AAEzE,QAAM,SAAS,IAAI,eAAI,GAAG;AAC1B,QAAM,QAAQ,KAAK,MAAM,OAAO,QAAQ;AAExC,QAAM,WAAW,YAAY,UAAU,MAAM,IAAI,CAAC;AAClD,QAAM,eAAe,KAAK,QAAQ,GAAG,GAAG,IAAI,QAAQ,EAAE;AACtD,QAAM,cAAc,OAAO,SAAS,OAAO;AAE3C,SAAO;AAAA,IACH,UAAS;AAAA,IACT,WAAW;AAAA,IACX;AAAA,IACA,MAAM;AAAA,IACN,KAAK;AAAA,EACT;AACJ;","names":[]} |