aboutsummaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/formatLocation.js
blob: da8c10e23e4efd1996c54566cff903b080df2c56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
	MIT License http://www.opensource.org/licenses/mit-license.php
	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) {
		if(typeof pos === "string")
			return pos;
		if(typeof pos === "number")
			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 "";
	}
};