Dev Build / cleanup (push) Canceled after 0s
Dev Build / typecheck (push) Canceled after 0s
Dev Build / build (linux-arm64, ubuntu-24.04-arm, linux-arm64) (push) Canceled after 0s
Dev Build / build (linux-x64, ubuntu-latest, linux-x64) (push) Canceled after 0s
Dev Build / build (win-x64, windows-latest, win32-x64) (push) Canceled after 0s
Dev Build / dispatch-dev-docker (push) Canceled after 0s
28 lines
771 B
Plaintext
28 lines
771 B
Plaintext
var sequenceMatcher = ({
|
|
token,
|
|
ascending
|
|
}) => {
|
|
const firstChr = token.charAt(0);
|
|
let baseGuesses;
|
|
const startingPoints = ['a', 'A', 'z', 'Z', '0', '1', '9'];
|
|
// lower guesses for obvious starting points
|
|
if (startingPoints.includes(firstChr)) {
|
|
baseGuesses = 4;
|
|
} else if (/\d/.exec(firstChr)) {
|
|
baseGuesses = 10; // digits
|
|
} else {
|
|
// could give a higher base for uppercase,
|
|
// assigning 26 to both upper and lower sequences is more conservative.
|
|
baseGuesses = 26;
|
|
}
|
|
// need to try a descending sequence in addition to every ascending sequence ->
|
|
// 2x guesses
|
|
if (!ascending) {
|
|
baseGuesses *= 2;
|
|
}
|
|
return baseGuesses * token.length;
|
|
};
|
|
|
|
export { sequenceMatcher as default };
|
|
//# sourceMappingURL=scoring.mjs.map
|