UNPKG

1.94 kBSource Map (JSON)View Raw
1{"version":3,"sources":["extractPathFromURL.tsx"],"names":["extractPathFromURL","prefixes","url","prefix","protocol","match","host","replace","RegExp","prefixRegex","split","map","it","join","normalizedURL","test","undefined"],"mappings":";;;;;;;AAAA;;;;AAEe,SAASA,kBAAT,CAA4BC,QAA5B,EAAgDC,GAAhD,EAA6D;AAC1E,OAAK,MAAMC,MAAX,IAAqBF,QAArB,EAA+B;AAAA;;AAC7B,UAAMG,QAAQ,sCAAGD,MAAM,CAACE,KAAP,CAAa,SAAb,CAAH,kDAAG,cAA0B,CAA1B,CAAH,2DAAmC,EAAjD;AACA,UAAMC,IAAI,GAAGH,MAAM,CAChBI,OADU,CACF,IAAIC,MAAJ,YAAe,iCAAmBJ,QAAnB,CAAf,EADE,EAC8C,EAD9C,EAEVG,OAFU,CAEF,MAFE,EAEM,GAFN,EAEW;AAFX,KAGVA,OAHU,CAGF,KAHE,EAGK,EAHL,CAAb,CAF6B,CAKN;;AAEvB,UAAME,WAAW,GAAG,IAAID,MAAJ,YACd,iCAAmBJ,QAAnB,CADc,iBACqBE,IAAI,CACxCI,KADoC,CAC9B,GAD8B,EAEpCC,GAFoC,CAE/BC,EAAD,IAASA,EAAE,KAAK,GAAP,GAAa,OAAb,GAAuB,iCAAmBA,EAAnB,CAFA,EAGpCC,IAHoC,CAG/B,KAH+B,CADrB,EAApB;AAOA,UAAMC,aAAa,GAAGZ,GAAG,CAACK,OAAJ,CAAY,MAAZ,EAAoB,GAApB,CAAtB;;AAEA,QAAIE,WAAW,CAACM,IAAZ,CAAiBD,aAAjB,CAAJ,EAAqC;AACnC,aAAOA,aAAa,CAACP,OAAd,CAAsBE,WAAtB,EAAmC,EAAnC,CAAP;AACD;AACF;;AAED,SAAOO,SAAP;AACD","sourcesContent":["import escapeStringRegexp from 'escape-string-regexp';\n\nexport default function extractPathFromURL(prefixes: string[], url: string) {\n for (const prefix of prefixes) {\n const protocol = prefix.match(/^[^:]+:/)?.[0] ?? '';\n const host = prefix\n .replace(new RegExp(`^${escapeStringRegexp(protocol)}`), '')\n .replace(/\\/+/g, '/') // Replace multiple slash (//) with single ones\n .replace(/^\\//, ''); // Remove extra leading slash\n\n const prefixRegex = new RegExp(\n `^${escapeStringRegexp(protocol)}(/)*${host\n .split('.')\n .map((it) => (it === '*' ? '[^/]+' : escapeStringRegexp(it)))\n .join('\\\\.')}`\n );\n\n const normalizedURL = url.replace(/\\/+/g, '/');\n\n if (prefixRegex.test(normalizedURL)) {\n return normalizedURL.replace(prefixRegex, '');\n }\n }\n\n return undefined;\n}\n"]}
\No newline at end of file