summaryrefslogtreecommitdiffstats
path: root/node_modules/webpack/lib/formatLocation.js
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
commite06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch)
tree55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/webpack/lib/formatLocation.js
downloadwebsite_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip
api, login, auth
Diffstat (limited to 'node_modules/webpack/lib/formatLocation.js')
-rw-r--r--node_modules/webpack/lib/formatLocation.js75
1 files changed, 75 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/formatLocation.js b/node_modules/webpack/lib/formatLocation.js
new file mode 100644
index 0000000..f608cd4
--- /dev/null
+++ b/node_modules/webpack/lib/formatLocation.js
@@ -0,0 +1,75 @@
+/*
+ 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;