aboutsummaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/formatLocation.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2018-09-20 02:56:13 +0200
committerFlorian Dold <florian.dold@gmail.com>2018-09-20 02:56:13 +0200
commitbbff7403fbf46f9ad92240ac213df8d30ef31b64 (patch)
treec58400ec5124da1c7d56b01aea83309f80a56c3b /node_modules/webpack/lib/formatLocation.js
parent003fb34971cf63466184351b4db5f7c67df4f444 (diff)
update packages
Diffstat (limited to 'node_modules/webpack/lib/formatLocation.js')
-rw-r--r--node_modules/webpack/lib/formatLocation.js129
1 files changed, 75 insertions, 54 deletions
diff --git a/node_modules/webpack/lib/formatLocation.js b/node_modules/webpack/lib/formatLocation.js
index 046887f6f..f608cd496 100644
--- a/node_modules/webpack/lib/formatLocation.js
+++ b/node_modules/webpack/lib/formatLocation.js
@@ -1,54 +1,75 @@
-/*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
-*/
-
-"use strict";
-
-const formatPosition = (pos) => {
- if(pos === null)
- 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;
+/*
+ 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;