UNPKG

@animech-public/playcanvas

Version:
2 lines (1 loc) 1.22 kB
const e={delimiter:"/",join(...t){let i=t[0];for(let l=0;l<t.length-1;l++){const r=t[l],n=t[l+1];n[0]!==e.delimiter?r&&n&&r[r.length-1]!==e.delimiter&&n[0]!==e.delimiter?i+=e.delimiter+n:i+=n:i=n}return i},normalize(t){const i=t.startsWith(e.delimiter),l=t.endsWith(e.delimiter),r=t.split("/");let n="",s=[];for(let t=0;t<r.length;t++)""!==r[t]&&"."!==r[t]&&(".."===r[t]&&s.length>0?s=s.slice(0,s.length-2):(t>0&&s.push(e.delimiter),s.push(r[t])));return n=s.join(""),i||n[0]!==e.delimiter||(n=n.slice(1)),l&&n[n.length-1]!==e.delimiter&&(n+=e.delimiter),n},split(t){const i=t.lastIndexOf(e.delimiter);return-1!==i?[t.substring(0,i),t.substring(i+1)]:["",t]},getBasename:t=>e.split(t)[1],getDirectory:t=>e.split(t)[0],getExtension(e){const t=e.split("?")[0].split(".").pop();return t!==e?`.${t}`:""},isRelativePath:e=>"/"!==e.charAt(0)&&null===e.match(/:\/\//),extractPath(t){let i="";const l=t.split("/");let r=0;if(l.length>1)if(e.isRelativePath(t))if("."===l[0])for(r=0;r<l.length-1;++r)i+=0===r?l[r]:`/${l[r]}`;else if(".."===l[0])for(r=0;r<l.length-1;++r)i+=0===r?l[r]:`/${l[r]}`;else for(i=".",r=0;r<l.length-1;++r)i+=`/${l[r]}`;else for(r=0;r<l.length-1;++r)i+=0===r?l[r]:`/${l[r]}`;return i}};export{e as path};