sdin
Version:
JavaScript package builder.
2 lines • 1.86 kB
JavaScript
import{pathExists as s,stat as u,readdir as h,readJson as i,readJsonSync as a,pathExistsSync as e}from"fs-extra";import{resolve as m,join as _,basename as n}from"path";import{createCacher as t}from"./cache";import{ReadingError as o,getErrorMessage as c}from"./errors";import{compileTypeScriptFile as f}from"../tools/typescript";async function d(e){var{name:e,source:t,offset:r,current:a,includeDir:s,handler:i,filter:n}=e,o=await u(a);if(n&&!await n({name:e,offset:r,source:t,current:a,stats:o}))return;var c=o.isFile(),f=o.isDirectory();if((c||s&&f)&&await i({name:e,offset:r,source:t,current:a,stats:o}),f){var E=await h(a);for(let e=0;e<E.length;e++){var l=E[e];await d({filter:n,handler:i,source:t,name:l,offset:_(r,l),current:m(a,l)})}}}async function r(e){var{source:e,handler:t,filter:r}=e;if(await s(e))return d({source:e,filter:r,handler:t,offset:"",current:e,name:n(e)});throw new o(o.DEEP_READED_FILE_IS_NOT_EXIST,"Read file ".concat(e," is not exist."))}let E=t();async function l(t,r,a){if(E.has(t))return E.get(t);a=await f(t,r,a);if(a&&await s(a))try{let e=void 0;return/\.json$/.test(a)?e=await i(a):/\.(js|mjs)$/.test(a)&&(e=require(a)),E.set(t,e),e}catch(e){if(r)throw new o(o.READED_EXPORTS_FILE_FAILED,"Read file ".concat(t," failed.\n").concat(c(e)))}else if(r)throw new o(o.READED_EXPORTS_FILE_IS_NOT_EXIST,a?"File ".concat(a," not exist."):"Cannot read empty path.")}function w(t,r){if(E.has(t))return E.get(t);if(t&&e(t))try{let e=void 0;return/\.json$/.test(t)?e=a(t):/\.(js|mjs)$/.test(t)&&(e=require(t)),E.set(t,e),e}catch(e){if(r)throw new o(o.READED_EXPORTS_FILE_FAILED,"Read file ".concat(t," failed.\n").concat(c(e)))}else if(r)throw new o(o.READED_EXPORTS_FILE_IS_NOT_EXIST,t?"File ".concat(t," not exist."):"Cannot read empty path.")}export{r as deepRead,l as readExports,w as readExportsSync};
//# sourceMappingURL=read.js.map