jj-cli
Version:
1 lines • 3.19 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});const e=require("fs"),t=require("util"),r=require("path"),s=require("./format"),i=require("path");exports.existsSync=t=>e.existsSync(t);const n=t.promisify(e.mkdir);exports.mkdirAsync=n,exports.mkdirAsyncRecursive=async e=>{await n(e,{recursive:!0})},exports.symlinkAsync=t.promisify(e.symlink);const o=t.promisify(e.readFile);async function c(e){if(!e)return!1;const t=await exports.lstatAsync(e);if(t.isFile())return console.log("is file"),!1;if(t.isDirectory()){const t=await exports.readdirAsync(e);return 1===t.length&&".DS_Store"===t[0]||0===t.length}return!1}function a(t,r=!0){t=r?t:i.join(__dirname,t);try{e.existsSync(t)?e.unlinkSync(t):console.log("inexistence path:",t)}catch(e){console.log("del error",e)}}function y(t,r=!0){r||(t=i.join(__dirname,t));try{if(e.existsSync(t)){const r=function(t){const s=e.readdirSync(t);for(let n=0;n<s.length;n++){const o=i.join(t,s[n]);e.statSync(o).isDirectory()?r(o):a(o,!0)}e.rmdirSync(t)};r(t)}else console.log("do not exist: ",t)}catch(e){console.log("del folder error",e)}}function l(t,r,s=!0){if(s||(t=i.join(__dirname,t),r=i.join(__dirname,r)),e.existsSync(t)){n=r,e.existsSync(n)||e.mkdirSync(n);const s=e.readdirSync(t,{withFileTypes:!0});for(let n=0;n<s.length;n++){const o=s[n],c=i.join(t,o.name),a=i.join(r,o.name);if(o.isFile()){const t=e.createReadStream(c),r=e.createWriteStream(a);t.pipe(r)}else try{e.accessSync(i.join(a,".."),e.constants.W_OK),l(c,a,!0)}catch(e){console.log("folder write error:",e)}}}else console.log("do not exist path: ",t);var n}exports.readFileAsync=o,exports.readFileContentAsync=async e=>await o(e,{encoding:"utf8"}),exports.writeFileAsync=t.promisify(e.writeFile),exports.readdirAsync=t.promisify(e.readdir),exports.statAsync=t.promisify(e.stat),exports.lstatAsync=t.promisify(e.lstat),exports.renameAsync=t.promisify(e.rename),exports.unlinkSync=t.promisify(e.unlinkSync),exports.replaceContent=async(r,s,i)=>{if(!r)return;const n=t.promisify(e.readFile),o=await n(r,{encoding:"utf8"}),c=new RegExp(s,"g"),a=o.replace(c,i),y=t.promisify(e.writeFile);await y(r,a,{encoding:"utf8"})},exports.existsAsync=async e=>{try{await exports.statAsync(e);return!0}catch(e){return!1}},exports.convertToUnixPath=e=>e.replace(/\\/g,"/"),exports.directoryIsEmpty=c,exports.deleteFile=a,exports.syncDeleteFolder=y,exports.syncCopyFolder=l;const p=e=>{if(!e)return"0M";return`${(e/1e6).toFixed(2)}M`};async function d(e,t,i=!1,n=!1){if(!e||!t&&!n)throw new Error("Missing Path Or Extname");const o=[],c=e,a=async(e,t)=>{for(var y=await exports.readdirAsync(e),l=0;l<y.length;l++){const d=y[l],f=r.join(e,d),x=await exports.lstatAsync(f);if(x.isDirectory()){if("node_modules"===d&&i)continue;await a(f,t)}else if(x.isFile()){const e=()=>{const e=s.formatDate(parseInt(x.atimeMs),"yyyy-MM-dd hh:mm:ss"),t={name:d,time:e,fullPath:f,shortPath:f.replace(c,""),size:p(x.size)};o.push(t)};if(t instanceof Array){t.find((e=>e==r.extname(f)))&&e()}else(t===r.extname(f)||n)&&e()}}};return await a(e,t),o}exports.getSizeByPath=async t=>{if(!t||!e.existsSync(t))return"";const r=await exports.lstatAsync(t);return r.isFile()?p(r.size):""},exports.findFiles=d;