| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | /*	MIT License http://www.opensource.org/licenses/mit-license.php	Author Tobias Koppers @sokra*/"use strict";/** @typedef {import("./Dependency").DependencyLocation} DependencyLocation *//** @typedef {import("./Dependency").SourcePosition} SourcePosition */// TODO webpack 5: pos must be SourcePosition/** * @param {SourcePosition|DependencyLocation|string} pos position * @returns {string} formatted position */const formatPosition = pos => {	if (pos === null) return "";	// TODO webpack 5: Simplify this	if (typeof pos === "string") return pos;	if (typeof pos === "number") return `${pos}`;	if (typeof pos === "object") {		if ("line" in pos && "column" in pos) {			return `${pos.line}:${pos.column}`;		} else if ("line" in pos) {			return `${pos.line}:?`;		} else if ("index" in pos) {			// TODO webpack 5 remove this case			return `+${pos.index}`;		} else {			return "";		}	}	return "";};// TODO webpack 5: loc must be DependencyLocation/** * @param {DependencyLocation|SourcePosition|string} loc location * @returns {string} formatted location */const formatLocation = loc => {	if (loc === null) return "";	// TODO webpack 5: Simplify this	if (typeof loc === "string") return loc;	if (typeof loc === "number") return `${loc}`;	if (typeof loc === "object") {		if ("start" in loc && loc.start && "end" in loc && loc.end) {			if (				typeof loc.start === "object" &&				typeof loc.start.line === "number" &&				typeof loc.end === "object" &&				typeof loc.end.line === "number" &&				typeof loc.end.column === "number" &&				loc.start.line === loc.end.line			) {				return `${formatPosition(loc.start)}-${loc.end.column}`;			} else {				return `${formatPosition(loc.start)}-${formatPosition(loc.end)}`;			}		}		if ("start" in loc && loc.start) {			return formatPosition(loc.start);		}		if ("name" in loc && "index" in loc) {			return `${loc.name}[${loc.index}]`;		}		if ("name" in loc) {			return loc.name;		}		return formatPosition(loc);	}	return "";};module.exports = formatLocation;
 |