Skip to content

Commit

Permalink
SNOW-913627: Replace string-similarity with fastest-levenshtein (#652)
Browse files Browse the repository at this point in the history
  • Loading branch information
sfc-gh-pbulawa authored Sep 28, 2023
1 parent 6093742 commit a4bdd66
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 15 deletions.
10 changes: 3 additions & 7 deletions lib/connection/connection_config.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const ErrorCodes = Errors.codes;
const NativeTypes = require('./result/data_types').NativeTypes;
const GlobalConfig = require('../global_config');
const authenticationTypes = require('../authentication/authentication').authenticationTypes;
const stringSimilarity = require("string-similarity");
const levenshtein = require('fastest-levenshtein');
const RowMode = require('./../constants/row_mode');
const WAIT_FOR_BROWSER_ACTION_TIMEOUT = 120000;
const DEFAULT_PARAMS =
Expand Down Expand Up @@ -484,12 +484,8 @@ function ConnectionConfig(options, validateCredentials, qaMode, clientInfo)
{
if (!DEFAULT_PARAMS.includes(key))
{
var matches = stringSimilarity.findBestMatch(key, DEFAULT_PARAMS);
console.error(`"${key}" is an unknown connection parameter`);
if (matches.bestMatchIndex > 0)
{
console.error(`Did you mean "${matches.bestMatch.target}"`);
}
const result = levenshtein.closest(key, DEFAULT_PARAMS);
console.error(`"${key}" is an unknown connection parameter. Did you mean "${result}"?`);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"expand-tilde": "^2.0.2",
"extend": "^3.0.2",
"fast-xml-parser": "^4.2.5",
"fastest-levenshtein": "^1.0.16",
"generic-pool": "^3.8.2",
"glob": "^7.1.6",
"https-proxy-agent": "^5.0.1",
Expand All @@ -31,7 +32,6 @@
"open": "^7.3.1",
"python-struct": "^1.1.3",
"simple-lru-cache": "^0.0.2",
"string-similarity": "^4.0.4",
"tmp": "^0.2.1",
"uuid": "^8.3.2",
"winston": "^3.1.0"
Expand Down
11 changes: 4 additions & 7 deletions test/integration/testConnection.js
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,7 @@ describe("Connection test - validate default parameters", function () {
});
});
assert.deepEqual(output, [
'"waerhouse" is an unknown connection parameter\n',
'Did you mean "warehouse"\n',
'"waerhouse" is an unknown connection parameter. Did you mean "warehouse"?\n',
]);
});

Expand All @@ -162,7 +161,7 @@ describe("Connection test - validate default parameters", function () {
validateDefaultParameters: true,
});
});
assert.deepEqual(output, ['"db" is an unknown connection parameter\n']);
assert.deepEqual(output, ['"db" is an unknown connection parameter. Did you mean "host"?\n']);
});

it('Invalid "database" parameter', function () {
Expand All @@ -176,8 +175,7 @@ describe("Connection test - validate default parameters", function () {
});
});
assert.deepEqual(output, [
'"datbse" is an unknown connection parameter\n',
'Did you mean "database"\n',
'"datbse" is an unknown connection parameter. Did you mean "database"?\n',
]);
});

Expand Down Expand Up @@ -205,8 +203,7 @@ describe("Connection test - validate default parameters", function () {
});
});
assert.deepEqual(output, [
'"shcema" is an unknown connection parameter\n',
'Did you mean "schema"\n',
'"shcema" is an unknown connection parameter. Did you mean "schema"?\n',
]);
});
});
Expand Down

0 comments on commit a4bdd66

Please sign in to comment.