@freik/files
Version:
File and Path utilities
3 lines (2 loc) • 2.27 kB
JavaScript
var d=Object.create;var g=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var W=(t,r)=>{for(var n in r)g(t,n,{get:r[n],enumerable:!0})},a=(t,r,n,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of h(r))!A.call(t,s)&&s!==n&&g(t,s,{get:()=>r[s],enumerable:!(i=x(r,s))||i.enumerable});return t};var u=(t,r,n)=>(n=t!=null?d(b(t)):{},a(r||!t||!t.__esModule?g(n,"default",{value:t,enumerable:!0}):n,t)),j=t=>a(g({},"__esModule",{value:!0}),t);var z={};W(z,{Basename:()=>k,ChangeExt:()=>$,CleanFileName:()=>T,DirName:()=>O,DirtyFileName:()=>V,Extname:()=>w,GetExtNoDot:()=>m,GetRoots:()=>R,GetTemp:()=>G,Join:()=>F,Resolve:()=>C,TrailingSlash:()=>v,Xplat:()=>o});module.exports=j(z);var c=u(require("os")),y=u(require("child_process")),e=u(require("path")),p=require("fs"),f=require("util");const D=(0,f.promisify)(y.exec);function G(t,r){const n=r&&r[0]!=="."?"."+r:r||"";return e.join(c.tmpdir(),`${t}-tmp-${process.pid}${n}`)}function m(t){const r=e.extname(t);return r&&r.substring(1)}function $(t,r){const n=m(t);r&&r.length>1&&r[0]==="."&&(r=r.substring(1));let i=t.substring(0,t.length-n.length);return i.endsWith(".")||(i+="."),i+r}function o(t){return t.replaceAll("\\","/")}function v(t){return t.endsWith("\\")||t.endsWith("/")?o(t):o(t+e.sep)}function C(t){return o(e.resolve(o(t)))}function F(...t){return o(e.join(...t))}function O(t){return o(e.dirname(t))}async function R(){switch(c.platform()){case"win32":{const{stdout:t,stderr:r}=await D("wmic logicaldisk get name");return r.length>0?[]:t.split(`\r\r
`).filter(n=>/[A-Za-z]:/.test(n)).map(n=>n.trim())}case"darwin":return(await p.promises.readdir("/Volumes")).map(r=>e.join("/Volumes",r));default:return["linux NYI"]}}const l=[["?","\u0241"],["*","\u2217"],[":","\u0589"],[";","\u037E"],["/","\u2571"],["\\","\u2572"],["|","\u2503"],["<","\u02C2"],[">","\u02C3"],['"',"\uFF02"]];function T(t,r){let n=t;for(const[i,s]of l)n.indexOf(i)>=0&&(n=n.replaceAll(i,s));return n.endsWith(".")&&!r&&(n=n.substring(0,n.length-1)+"\u2024"),n.trim()}function V(t){let r=t;for(const[n,i]of[...l,["\u2024","\u2024"]])r.indexOf(i)>=0&&(r=r.replaceAll(i,n));return r.trim()}const k=e.basename,w=e.extname;