bizroad-webpack-plugin
Version:
webpack plugin for biz road
64 lines • 2.76 kB
JavaScript
;
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