UNPKG

files-folder

Version:

Lightweight library to grab all files or folders in a directory.

2 lines (1 loc) 4.17 kB
"use strict";var x=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var C=(e,r)=>{for(var t in r)x(e,t,{get:r[t],enumerable:!0})},X=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of j(r))!B.call(e,o)&&o!==t&&x(e,o,{get:()=>r[o],enumerable:!(i=U(r,o))||i.enumerable});return e};var Y=e=>X(x({},"__esModule",{value:!0}),e);var s=(e,r,t)=>new Promise((i,o)=>{var a=g=>{try{A(t.next(g))}catch(P){o(P)}},h=g=>{try{A(t.throw(g))}catch(P){o(P)}},A=g=>g.done?i(g.value):Promise.resolve(g.value).then(a,h);A((t=t.apply(e,r)).next())});var H={};C(H,{MessageError:()=>_,getFilesAsync:()=>L,getFilesSync:()=>R,getFoldersAsync:()=>w,getFoldersSync:()=>F});module.exports=Y(H);var v=require("fs"),m=require("path");var y=require("fs"),c=require("path");var n={full_path:!1};var b=require("path"),p=(e,r)=>e.replace((0,b.resolve)(r),"");var N=require("fs");var _=(t=>(t.DIRECTORY_NOT_EXIST="Directory not exist",t.INVALID_PATH="Invalid path",t))(_||{});var f=e=>(0,N.existsSync)(e)?{status:!0}:{error:"Directory not exist",status:!1};var E=class{constructor(r,t=n){this.target_folder=r;this.options=t}getFolders(r){let t=(0,c.resolve)(r);return(0,y.readdirSync)(t).filter(i=>(0,y.statSync)((0,c.join)(t,i)).isDirectory()).map(i=>this.options.full_path?(0,c.join)(t,i):(0,c.join)(this.target_folder,p(t,this.target_folder),i))}getAllFolders(){let r=[...this.getFolders(this.target_folder)];for(let t=0;t<r.length;t++)r.push(...this.getFolders(r[t]));return r}},F=(e,r=n)=>{let{status:t,error:i}=f(e);if(!t)throw new Error(i);return new E(e,r).getAllFolders()};var S=class{constructor(r,t=n){this.target_folder=r;this.options=t}filter(r,t){if(!(0,v.statSync)((0,m.join)(r,t)).isFile())return!1;if(!this.options.filter)return!0;let{filter:i}=this.options;return i instanceof RegExp?i.test(t):i(t)}getFiles(r){let t=(0,m.resolve)(r);return(0,v.readdirSync)(t).map(o=>{if(this.filter(t,o))return this.options.full_path?(0,m.join)(t,o):(0,m.join)(this.target_folder,p(t,this.target_folder),o)}).filter(Boolean)}getAllFiles(){let r=[...this.getFiles(this.target_folder)];return F(this.target_folder).forEach(t=>{r=r.concat(this.getFiles(t))}),r}},R=(e,r=n)=>{let{status:t,error:i}=f(e);if(!t)throw new Error(i);return new S(e,r).getAllFiles()};var T=require("fs/promises"),d=require("path");var O=require("fs/promises"),u=require("path");var I=class{constructor(r,t=n){this.target_folder=r;this.options=t}getFolders(r){return s(this,null,function*(){let t=(0,u.resolve)(r),o=(yield(0,O.readdir)(t)).map(a=>s(this,null,function*(){let h=(0,u.join)(t,a);if((yield(0,O.stat)(h)).isDirectory())return this.options.full_path?h:(0,u.join)(this.target_folder,p(t,this.target_folder),a)}));return(yield Promise.all(o)).filter(Boolean)})}getAllFolders(){return s(this,null,function*(){let r=[...yield this.getFolders(this.target_folder)];for(let t=0;t<r.length;t++)r.push(...yield this.getFolders(r[t]));return r})}},w=(t,...i)=>s(void 0,[t,...i],function*(e,r=n){let{status:o,error:a}=f(e);if(!o)throw new Error(a);return yield new I(e,r).getAllFolders()});var D=class{constructor(r,t=n){this.target_folder=r;this.options=t}filter(r,t){return s(this,null,function*(){if(!(yield(0,T.stat)((0,d.join)(r,t))).isFile())return!1;if(!this.options.filter)return!0;let{filter:i}=this.options;return i instanceof RegExp?i.test(t):i(t)})}getFiles(r){return s(this,null,function*(){let t=(0,d.resolve)(r),i=(yield(0,T.readdir)(t)).map(o=>s(this,null,function*(){if(yield this.filter(t,o))return this.options.full_path?(0,d.join)(t,o):(0,d.join)(this.target_folder,p(t,this.target_folder),o)}));return(yield Promise.all(i)).filter(Boolean)})}getAllFiles(){return s(this,null,function*(){let r=yield this.getFiles(this.target_folder),i=(yield w(this.target_folder)).map(a=>s(this,null,function*(){return yield this.getFiles(a)})),o=yield Promise.all(i);return r.concat(...o)})}},L=(t,...i)=>s(void 0,[t,...i],function*(e,r=n){let{status:o,error:a}=f(e);if(!o)throw new Error(a);return yield new D(e,r).getAllFiles()});0&&(module.exports={MessageError,getFilesAsync,getFilesSync,getFoldersAsync,getFoldersSync});