aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@babel/helper-validator-option
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@babel/helper-validator-option')
-rw-r--r--node_modules/@babel/helper-validator-option/LICENSE22
-rw-r--r--node_modules/@babel/helper-validator-option/README.md19
-rw-r--r--node_modules/@babel/helper-validator-option/lib/find-suggestion.js45
-rw-r--r--node_modules/@babel/helper-validator-option/lib/index.js21
-rw-r--r--node_modules/@babel/helper-validator-option/lib/validator.js58
-rw-r--r--node_modules/@babel/helper-validator-option/package.json23
6 files changed, 188 insertions, 0 deletions
diff --git a/node_modules/@babel/helper-validator-option/LICENSE b/node_modules/@babel/helper-validator-option/LICENSE
new file mode 100644
index 0000000..f31575e
--- /dev/null
+++ b/node_modules/@babel/helper-validator-option/LICENSE
@@ -0,0 +1,22 @@
+MIT License
+
+Copyright (c) 2014-present Sebastian McKenzie and other contributors
+
+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/@babel/helper-validator-option/README.md b/node_modules/@babel/helper-validator-option/README.md
new file mode 100644
index 0000000..94ab428
--- /dev/null
+++ b/node_modules/@babel/helper-validator-option/README.md
@@ -0,0 +1,19 @@
+# @babel/helper-validator-option
+
+> Validate plugin/preset options
+
+See our website [@babel/helper-validator-option](https://babeljs.io/docs/en/babel-helper-validator-option) for more information.
+
+## Install
+
+Using npm:
+
+```sh
+npm install --save @babel/helper-validator-option
+```
+
+or using yarn:
+
+```sh
+yarn add @babel/helper-validator-option
+```
diff --git a/node_modules/@babel/helper-validator-option/lib/find-suggestion.js b/node_modules/@babel/helper-validator-option/lib/find-suggestion.js
new file mode 100644
index 0000000..019ea93
--- /dev/null
+++ b/node_modules/@babel/helper-validator-option/lib/find-suggestion.js
@@ -0,0 +1,45 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.findSuggestion = findSuggestion;
+const {
+ min
+} = Math;
+
+function levenshtein(a, b) {
+ let t = [],
+ u = [],
+ i,
+ j;
+ const m = a.length,
+ n = b.length;
+
+ if (!m) {
+ return n;
+ }
+
+ if (!n) {
+ return m;
+ }
+
+ for (j = 0; j <= n; j++) {
+ t[j] = j;
+ }
+
+ for (i = 1; i <= m; i++) {
+ for (u = [i], j = 1; j <= n; j++) {
+ u[j] = a[i - 1] === b[j - 1] ? t[j - 1] : min(t[j - 1], t[j], u[j - 1]) + 1;
+ }
+
+ t = u;
+ }
+
+ return u[n];
+}
+
+function findSuggestion(str, arr) {
+ const distances = arr.map(el => levenshtein(el, str));
+ return arr[distances.indexOf(min(...distances))];
+} \ No newline at end of file
diff --git a/node_modules/@babel/helper-validator-option/lib/index.js b/node_modules/@babel/helper-validator-option/lib/index.js
new file mode 100644
index 0000000..8afe861
--- /dev/null
+++ b/node_modules/@babel/helper-validator-option/lib/index.js
@@ -0,0 +1,21 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+Object.defineProperty(exports, "OptionValidator", {
+ enumerable: true,
+ get: function () {
+ return _validator.OptionValidator;
+ }
+});
+Object.defineProperty(exports, "findSuggestion", {
+ enumerable: true,
+ get: function () {
+ return _findSuggestion.findSuggestion;
+ }
+});
+
+var _validator = require("./validator");
+
+var _findSuggestion = require("./find-suggestion"); \ No newline at end of file
diff --git a/node_modules/@babel/helper-validator-option/lib/validator.js b/node_modules/@babel/helper-validator-option/lib/validator.js
new file mode 100644
index 0000000..5b4bad1
--- /dev/null
+++ b/node_modules/@babel/helper-validator-option/lib/validator.js
@@ -0,0 +1,58 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.OptionValidator = void 0;
+
+var _findSuggestion = require("./find-suggestion");
+
+class OptionValidator {
+ constructor(descriptor) {
+ this.descriptor = descriptor;
+ }
+
+ validateTopLevelOptions(options, TopLevelOptionShape) {
+ const validOptionNames = Object.keys(TopLevelOptionShape);
+
+ for (const option of Object.keys(options)) {
+ if (!validOptionNames.includes(option)) {
+ throw new Error(this.formatMessage(`'${option}' is not a valid top-level option.
+- Did you mean '${(0, _findSuggestion.findSuggestion)(option, validOptionNames)}'?`));
+ }
+ }
+ }
+
+ validateBooleanOption(name, value, defaultValue) {
+ if (value === undefined) {
+ return defaultValue;
+ } else {
+ this.invariant(typeof value === "boolean", `'${name}' option must be a boolean.`);
+ }
+
+ return value;
+ }
+
+ validateStringOption(name, value, defaultValue) {
+ if (value === undefined) {
+ return defaultValue;
+ } else {
+ this.invariant(typeof value === "string", `'${name}' option must be a string.`);
+ }
+
+ return value;
+ }
+
+ invariant(condition, message) {
+ if (!condition) {
+ throw new Error(this.formatMessage(message));
+ }
+ }
+
+ formatMessage(message) {
+ return `${this.descriptor}: ${message}`;
+ }
+
+}
+
+exports.OptionValidator = OptionValidator; \ No newline at end of file
diff --git a/node_modules/@babel/helper-validator-option/package.json b/node_modules/@babel/helper-validator-option/package.json
new file mode 100644
index 0000000..1fe2da8
--- /dev/null
+++ b/node_modules/@babel/helper-validator-option/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "@babel/helper-validator-option",
+ "version": "7.16.7",
+ "description": "Validate plugin/preset options",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/babel/babel.git",
+ "directory": "packages/babel-helper-validator-option"
+ },
+ "license": "MIT",
+ "publishConfig": {
+ "access": "public"
+ },
+ "main": "./lib/index.js",
+ "exports": {
+ ".": "./lib/index.js",
+ "./package.json": "./package.json"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "author": "The Babel Team (https://babel.dev/team)"
+} \ No newline at end of file