UNPKG

bizroad-webpack-plugin

Version:
64 lines 2.76 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from) { for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) to[j] = from[i]; return to; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeFilepath = exports.findFile = void 0; var path_1 = __importDefault(require("path")); var fs_1 = __importDefault(require("fs")); var fileCheck_1 = require("./fileCheck"); var findFile = function (dir, target, extensions) { try { var dirFileList = fs_1.default.readdirSync(dir); var suffix = target.split('.').reverse()[0]; if (extensions.includes("." + suffix)) { return dirFileList.find(function (file) { return target === file; }); } var findFile_1 = extensions.map(function (extension) { return "" + target + extension; }); return dirFileList.find(function (file) { return findFile_1.includes(file); }); } catch (err) { return false; } }; exports.findFile = findFile; var mergeFilepath = function (mergePath, filepath, _a) { var alias = _a.alias, extensions = _a.extensions; var synthesisPath = filepath; var status = false; var _b = filepath.split('/'), aliasPathKey = _b[0], synthesisPathKey = _b.slice(1); var aliasPath = alias === null || alias === void 0 ? void 0 : alias[aliasPathKey]; if (aliasPath) synthesisPath = path_1.default.resolve.apply(path_1.default, __spreadArray([aliasPath], synthesisPathKey)); if (!fileCheck_1.fileCheck(synthesisPath)) { status = true; var brokenPath = path_1.default.resolve(mergePath, '../', synthesisPath); try { var isDir = fs_1.default.lstatSync(brokenPath).isDirectory(); /** * 这里一定要先执行,是为了 throw error 进入下面的流程 */ var realFile = exports.findFile(brokenPath, 'index', extensions); if (isDir && realFile) synthesisPath = brokenPath + "/" + realFile; } catch (err) { var higherDir = path_1.default.resolve(brokenPath, '..'); var targetFile = brokenPath.split('/').reverse()[0]; var realFile = exports.findFile(higherDir, targetFile, extensions); if (!realFile) { status = false; realFile = targetFile; } synthesisPath = higherDir + "/" + realFile; } } return { synthesisPath: synthesisPath, status: status }; }; exports.mergeFilepath = mergeFilepath; //# sourceMappingURL=mergeFilepath.js.map