Add shell emoji tests
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
function parseEmojis(raw) {
|
||||
try {
|
||||
var data = JSON.parse(String(raw || ""))
|
||||
return Array.isArray(data) ? data : []
|
||||
} catch (e) {
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
function normalizedQuery(query) {
|
||||
return String(query || "").trim().toLowerCase()
|
||||
}
|
||||
|
||||
function keywordText(item) {
|
||||
return String((item && item.k) || "").toLowerCase()
|
||||
}
|
||||
|
||||
function filterEmojis(emojis, query, limit) {
|
||||
var values = Array.isArray(emojis) ? emojis : []
|
||||
var needle = normalizedQuery(query)
|
||||
var max = limit === undefined || limit === null ? 1000 : Number(limit)
|
||||
if (isNaN(max)) max = 1000
|
||||
max = Math.max(0, max)
|
||||
if (max === 0) return []
|
||||
|
||||
var out = []
|
||||
|
||||
for (var i = 0; i < values.length; i++) {
|
||||
var item = values[i]
|
||||
if (!item || !item.e) continue
|
||||
if (!needle || keywordText(item).indexOf(needle) >= 0) {
|
||||
out.push(item)
|
||||
if (out.length >= max) break
|
||||
}
|
||||
}
|
||||
|
||||
return out
|
||||
}
|
||||
|
||||
if (typeof module !== "undefined") {
|
||||
module.exports = {
|
||||
parseEmojis: parseEmojis,
|
||||
normalizedQuery: normalizedQuery,
|
||||
filterEmojis: filterEmojis
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user