summaryrefslogtreecommitdiffstats
path: root/node_modules/@webassemblyjs/helper-code-frame
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@webassemblyjs/helper-code-frame')
-rw-r--r--node_modules/@webassemblyjs/helper-code-frame/LICENSE21
-rw-r--r--node_modules/@webassemblyjs/helper-code-frame/esm/index.js37
-rw-r--r--node_modules/@webassemblyjs/helper-code-frame/lib/index.js47
-rw-r--r--node_modules/@webassemblyjs/helper-code-frame/package.json55
4 files changed, 160 insertions, 0 deletions
diff --git a/node_modules/@webassemblyjs/helper-code-frame/LICENSE b/node_modules/@webassemblyjs/helper-code-frame/LICENSE
new file mode 100644
index 0000000..87e7e1f
--- /dev/null
+++ b/node_modules/@webassemblyjs/helper-code-frame/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018 Sven Sauleau <sven@sauleau.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/@webassemblyjs/helper-code-frame/esm/index.js b/node_modules/@webassemblyjs/helper-code-frame/esm/index.js
new file mode 100644
index 0000000..791c65e
--- /dev/null
+++ b/node_modules/@webassemblyjs/helper-code-frame/esm/index.js
@@ -0,0 +1,37 @@
+function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+import { print } from "@webassemblyjs/wast-printer";
+var SHOW_LINES_AROUND_POINTER = 5;
+
+function repeat(char, nb) {
+ return Array(nb).fill(char).join("");
+} // TODO(sven): allow arbitrary ast nodes
+
+
+export function codeFrameFromAst(ast, loc) {
+ return codeFrameFromSource(print(ast), loc);
+}
+export function codeFrameFromSource(source, loc) {
+ var start = loc.start,
+ end = loc.end;
+ var length = 1;
+
+ if (_typeof(end) === "object") {
+ length = end.column - start.column + 1;
+ }
+
+ return source.split("\n").reduce(function (acc, line, lineNbr) {
+ if (Math.abs(start.line - lineNbr) < SHOW_LINES_AROUND_POINTER) {
+ acc += line + "\n";
+ } // Add a new line with the pointer padded left
+
+
+ if (lineNbr === start.line - 1) {
+ acc += repeat(" ", start.column - 1);
+ acc += repeat("^", length);
+ acc += "\n";
+ }
+
+ return acc;
+ }, "");
+} \ No newline at end of file
diff --git a/node_modules/@webassemblyjs/helper-code-frame/lib/index.js b/node_modules/@webassemblyjs/helper-code-frame/lib/index.js
new file mode 100644
index 0000000..977de89
--- /dev/null
+++ b/node_modules/@webassemblyjs/helper-code-frame/lib/index.js
@@ -0,0 +1,47 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.codeFrameFromAst = codeFrameFromAst;
+exports.codeFrameFromSource = codeFrameFromSource;
+
+var _wastPrinter = require("@webassemblyjs/wast-printer");
+
+function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+var SHOW_LINES_AROUND_POINTER = 5;
+
+function repeat(char, nb) {
+ return Array(nb).fill(char).join("");
+} // TODO(sven): allow arbitrary ast nodes
+
+
+function codeFrameFromAst(ast, loc) {
+ return codeFrameFromSource((0, _wastPrinter.print)(ast), loc);
+}
+
+function codeFrameFromSource(source, loc) {
+ var start = loc.start,
+ end = loc.end;
+ var length = 1;
+
+ if (_typeof(end) === "object") {
+ length = end.column - start.column + 1;
+ }
+
+ return source.split("\n").reduce(function (acc, line, lineNbr) {
+ if (Math.abs(start.line - lineNbr) < SHOW_LINES_AROUND_POINTER) {
+ acc += line + "\n";
+ } // Add a new line with the pointer padded left
+
+
+ if (lineNbr === start.line - 1) {
+ acc += repeat(" ", start.column - 1);
+ acc += repeat("^", length);
+ acc += "\n";
+ }
+
+ return acc;
+ }, "");
+} \ No newline at end of file
diff --git a/node_modules/@webassemblyjs/helper-code-frame/package.json b/node_modules/@webassemblyjs/helper-code-frame/package.json
new file mode 100644
index 0000000..ab94ff3
--- /dev/null
+++ b/node_modules/@webassemblyjs/helper-code-frame/package.json
@@ -0,0 +1,55 @@
+{
+ "_from": "@webassemblyjs/helper-code-frame@1.9.0",
+ "_id": "@webassemblyjs/helper-code-frame@1.9.0",
+ "_inBundle": false,
+ "_integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
+ "_location": "/@webassemblyjs/helper-code-frame",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "@webassemblyjs/helper-code-frame@1.9.0",
+ "name": "@webassemblyjs/helper-code-frame",
+ "escapedName": "@webassemblyjs%2fhelper-code-frame",
+ "scope": "@webassemblyjs",
+ "rawSpec": "1.9.0",
+ "saveSpec": null,
+ "fetchSpec": "1.9.0"
+ },
+ "_requiredBy": [
+ "/@webassemblyjs/wast-parser"
+ ],
+ "_resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
+ "_shasum": "647f8892cd2043a82ac0c8c5e75c36f1d9159f27",
+ "_spec": "@webassemblyjs/helper-code-frame@1.9.0",
+ "_where": "/home/pruss/Dev/3-minute-website/node_modules/@webassemblyjs/wast-parser",
+ "author": {
+ "name": "Sven Sauleau"
+ },
+ "bugs": {
+ "url": "https://github.com/xtuc/webassemblyjs/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "@webassemblyjs/wast-printer": "1.9.0"
+ },
+ "deprecated": false,
+ "description": "",
+ "devDependencies": {
+ "@webassemblyjs/ast": "1.9.0"
+ },
+ "gitHead": "0440b420888c1f7701eb9762ec657775506b87d8",
+ "homepage": "https://github.com/xtuc/webassemblyjs#readme",
+ "license": "MIT",
+ "main": "lib/index.js",
+ "module": "esm/index.js",
+ "name": "@webassemblyjs/helper-code-frame",
+ "publishConfig": {
+ "access": "public"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/xtuc/webassemblyjs.git"
+ },
+ "version": "1.9.0"
+}