mirror of https://github.com/webpack/webpack.git
Merge pull request #4722 from willmendesneto/refactor-format-location
refactor(formatLocation): upgrade to ES6
This commit is contained in:
commit
a2ec4c8cea
|
|
@ -2,36 +2,53 @@
|
||||||
MIT License http://www.opensource.org/licenses/mit-license.php
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
||||||
Author Tobias Koppers @sokra
|
Author Tobias Koppers @sokra
|
||||||
*/
|
*/
|
||||||
module.exports = function formatLocation(loc) {
|
|
||||||
if(typeof loc === "string")
|
|
||||||
return loc;
|
|
||||||
if(typeof loc === "number")
|
|
||||||
return loc + "";
|
|
||||||
if(loc && typeof loc === "object") {
|
|
||||||
if(loc.start && loc.end) {
|
|
||||||
if(typeof loc.start.line === "number" && typeof loc.end.line === "number" && typeof loc.end.column === "number" && loc.start.line === loc.end.line)
|
|
||||||
return formatPosition(loc.start) + "-" + loc.end.column;
|
|
||||||
return formatPosition(loc.start) + "-" + formatPosition(loc.end);
|
|
||||||
}
|
|
||||||
if(loc.start)
|
|
||||||
return formatPosition(loc.start);
|
|
||||||
return formatPosition(loc);
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
|
|
||||||
function formatPosition(pos) {
|
"use strict";
|
||||||
if(typeof pos === "string")
|
|
||||||
return pos;
|
const formatPosition = (pos) => {
|
||||||
if(typeof pos === "number")
|
if(pos === null)
|
||||||
return pos + "";
|
|
||||||
if(pos && typeof pos === "object") {
|
|
||||||
if(typeof pos.line === "number" && typeof pos.column === "number")
|
|
||||||
return pos.line + ":" + pos.column;
|
|
||||||
if(typeof pos.line === "number")
|
|
||||||
return pos.line + ":?";
|
|
||||||
if(typeof pos.index === "number")
|
|
||||||
return "+" + pos.index;
|
|
||||||
}
|
|
||||||
return "";
|
return "";
|
||||||
|
const typeOfPos = typeof pos;
|
||||||
|
switch(typeOfPos) {
|
||||||
|
case "string":
|
||||||
|
return pos;
|
||||||
|
case "number":
|
||||||
|
return `${pos}`;
|
||||||
|
case "object":
|
||||||
|
if(typeof pos.line === "number" && typeof pos.column === "number")
|
||||||
|
return `${pos.line}:${pos.column}`;
|
||||||
|
else if(typeof pos.line === "number")
|
||||||
|
return `${pos.line}:?`;
|
||||||
|
else if(typeof pos.index === "number")
|
||||||
|
return `+${pos.index}`;
|
||||||
|
else
|
||||||
|
return "";
|
||||||
|
default:
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const formatLocation = (loc) => {
|
||||||
|
if(loc === null)
|
||||||
|
return "";
|
||||||
|
const typeOfLoc = typeof loc;
|
||||||
|
switch(typeOfLoc) {
|
||||||
|
case "string":
|
||||||
|
return loc;
|
||||||
|
case "number":
|
||||||
|
return `${loc}`;
|
||||||
|
case "object":
|
||||||
|
if(loc.start && loc.end) {
|
||||||
|
if(typeof loc.start.line === "number" && typeof loc.end.line === "number" && typeof loc.end.column === "number" && loc.start.line === loc.end.line)
|
||||||
|
return `${formatPosition(loc.start)}-${loc.end.column}`;
|
||||||
|
return `${formatPosition(loc.start)}-${formatPosition(loc.end)}`;
|
||||||
|
}
|
||||||
|
if(loc.start)
|
||||||
|
return formatPosition(loc.start);
|
||||||
|
return formatPosition(loc);
|
||||||
|
default:
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = formatLocation;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue