@hap-toolkit/packager
Version:
@hap-toolkit/packager
3 lines (2 loc) • 2.91 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.genPriorities=genPriorities,exports.getBabelConfigJsPath=getBabelConfigJsPath,exports.getFilenameByPath=getFilenameByPath,exports.getLastLoaderPath=getLastLoaderPath,exports.isPlainObject=isPlainObject,exports.loaderWrapper=loaderWrapper,exports.lsdirdeep=lsdirdeep,exports.mergeDeep=mergeDeep,exports.sortFilesBy=sortFilesBy;var _fs=_interopRequireDefault(require("fs")),_path=_interopRequireDefault(require("path")),_resolve=require("resolve");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getBabelConfigJsPath(e,t){let n=_path.default.join(e,"babel.config.js");return _fs.default.existsSync(n)||(n=_path.default.resolve(__dirname,t?"../../babel.tree.config.js":"../../babel.config.js")),n}function getFilenameByPath(e){return _path.default.relative(".",e)}function predicate(e){return"string"==typeof e?e===this.toString():this.match(e)}function sortFilesBy(e,t){const n=e.length;return e=e.sort(((e,r)=>{let s=t.findIndex(predicate,e),i=t.findIndex(predicate,r);return s=-1===s?n:s,i=-1===i?n:i,s-i}))}function lsdirdeep(e,t=_fs.default){return function e(t,n,r){let s=[];const i=_path.default.posix.join(t,n);return r.readdirSync(i).forEach((o=>{const a=_path.default.posix.join(i,o),l=_path.default.posix.join(n,o);r.statSync(a).isFile()?s.push(l):s=s.concat(e(t,l,r))})),s}(e,".",t)}function loaderWrapper(e,t){Array.isArray(t.use)||(t.use=[t.use]),t.use.unshift({loader:(0,_resolve.sync)("../loaders/module-loader")}),t.use.push({loader:(0,_resolve.sync)("../loaders/manifest-loader"),options:{path:e}})}const toString=Object.prototype.toString,OBJECT_STRING="[object Object]";function isPlainObject(e){return toString.call(e)===OBJECT_STRING}function getEntrySkeleton(e,t){if(!e)return[];const{singleMap:n,anchorMaps:r}=e;let s=[];const i=Object.keys(n||{}).find((e=>e===t));i&&s.push(n[i]);const o=Array.from(r||[]).find((e=>e.page===t));return o&&(s=s.concat(Object.keys(o.skeletonMap||{}).map((e=>o.skeletonMap[e])))),s=s.map((e=>new RegExp(`skeleton/page/${e}$`))),s}function genPriorities(e,t){const n=[/^i18n\/.+\.json$/i,/^manifest-\w+\.json$/,"manifest.json","app.js",/page-chunks.json$/,/skeleton\/config\.json$/,/^common\//i];if(e&&e.router&&e.router.entry){const r=e.router.entry,s=getEntrySkeleton(t,r);n.splice(5,0,...s,new RegExp(`^${r}/$`),new RegExp(`^${r}/.+`))}return n}function mergeDeep(e,...t){if(!t.length)return e;const n=t.shift();if(isPlainObject(e)&&isPlainObject(n))for(const t in n)isPlainObject(n[t])?(e[t]||Object.assign(e,{[t]:{}}),mergeDeep(e[t],n[t])):Object.assign(e,{[t]:n[t]});return mergeDeep(e,...t)}function getLastLoaderPath(e){if(!e)return null;let t=(e=e.replace(/\\/g,"/")).split("!").find((e=>""!==e));return t&&t.indexOf("?")>0&&(t=t.split("?")[0]),t&&-1!==t.lastIndexOf("/")?t.substring(t.lastIndexOf("/")):null}
//# sourceMappingURL=utils.js.map