aboutsummaryrefslogtreecommitdiff
path: root/node_modules/yargs/build/lib/utils/levenshtein.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/yargs/build/lib/utils/levenshtein.js')
-rw-r--r--node_modules/yargs/build/lib/utils/levenshtein.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/node_modules/yargs/build/lib/utils/levenshtein.js b/node_modules/yargs/build/lib/utils/levenshtein.js
new file mode 100644
index 0000000..068168e
--- /dev/null
+++ b/node_modules/yargs/build/lib/utils/levenshtein.js
@@ -0,0 +1,26 @@
+export function levenshtein(a, b) {
+ if (a.length === 0)
+ return b.length;
+ if (b.length === 0)
+ return a.length;
+ const matrix = [];
+ let i;
+ for (i = 0; i <= b.length; i++) {
+ matrix[i] = [i];
+ }
+ let j;
+ for (j = 0; j <= a.length; j++) {
+ matrix[0][j] = j;
+ }
+ for (i = 1; i <= b.length; i++) {
+ for (j = 1; j <= a.length; j++) {
+ if (b.charAt(i - 1) === a.charAt(j - 1)) {
+ matrix[i][j] = matrix[i - 1][j - 1];
+ }
+ else {
+ matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1));
+ }
+ }
+ }
+ return matrix[b.length][a.length];
+}