@marketto/diacritic-remover
Version:
Tool to replace diacritics in strings
21 lines (16 loc) • 795 B
text/typescript
import IDiacriticMapper from "../interfaces/diacritic-mapper.interface";
import DiacriticAbstractHandler from "./diacritic-abstract-handler.class";
class DiacriticInsensitiveMatcherHandler extends DiacriticAbstractHandler {
protected diacriticTrap(target: IDiacriticMapper, char: string): string {
const lowerCaseChar = super.diacriticTrap(target, char).toLowerCase();
const lowerCaseDiacritics = target.dictionary[lowerCaseChar] || "";
const insensitiveMatcher = new Set<string>([
lowerCaseChar,
lowerCaseChar.toUpperCase(),
...lowerCaseDiacritics,
...lowerCaseDiacritics.toUpperCase(),
]);
return [...insensitiveMatcher].sort().join("");
}
}
export default DiacriticInsensitiveMatcherHandler;