refactor(core): use makeMap for faster string match checks (#282)

This commit is contained in:
Ayush Goyal
2019-10-15 21:41:08 +05:30
committed by Evan You
parent eb28d45933
commit 58fffcb987
6 changed files with 53 additions and 202 deletions

View File

@@ -0,0 +1,15 @@
/**
* Make a map and return a function for checking if a key
* is in that map.
*/
export function makeMap(
str: string,
expectsLowerCase?: boolean
): (key: string) => boolean {
const map: Record<string, boolean> = Object.create(null)
const list: Array<string> = str.split(',')
for (let i = 0; i < list.length; i++) {
map[list[i]] = true
}
return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val]
}