File Explorer

/proc/self/root/proc/thread-self/root/var/runtime/node_modules/@aws-sdk/node_modules/leven

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

index.js1.5 KB · 86 lines
/* eslint-disable no-nested-ternary */'use strict';var arr = [];var charCodeCache = []; module.exports = function (a, b) {	if (a === b) {		return 0;	} 	var swap = a; 	// Swapping the strings if `a` is longer than `b` so we know which one is the	// shortest & which one is the longest	if (a.length > b.length) {		a = b;		b = swap;	} 	var aLen = a.length;	var bLen = b.length; 	if (aLen === 0) {		return bLen;	} 	if (bLen === 0) {		return aLen;	} 	// Performing suffix trimming:	// We can linearly drop suffix common to both strings since they	// don't increase distance at all	// Note: `~-` is the bitwise way to perform a `- 1` operation	while (aLen > 0 && (a.charCodeAt(~-aLen) === b.charCodeAt(~-bLen))) {		aLen--;		bLen--;	} 	if (aLen === 0) {		return bLen;	} 	// Performing prefix trimming	// We can linearly drop prefix common to both strings since they	// don't increase distance at all	var start = 0; 	while (start < aLen && (a.charCodeAt(start) === b.charCodeAt(start))) {		start++;	} 	aLen -= start;	bLen -= start; 	if (aLen === 0) {		return bLen;	} 	var bCharCode;	var ret;	var tmp;	var tmp2;	var i = 0;	var j = 0; 	while (i < aLen) {		charCodeCache[start + i] = a.charCodeAt(start + i);		arr[i] = ++i;	} 	while (j < bLen) {		bCharCode = b.charCodeAt(start + j);		tmp = j++;		ret = j; 		for (i = 0; i < aLen; i++) {			tmp2 = bCharCode === charCodeCache[start + i] ? tmp : tmp + 1;			tmp = arr[i];			ret = arr[i] = tmp > ret ? tmp2 > ret ? ret + 1 : tmp2 : tmp2 > tmp ? tmp + 1 : tmp2;		}	} 	return ret;};