32 lines
1.1 KiB
Plaintext
32 lines
1.1 KiB
Plaintext
import { getSequenceFromEmojiStringOrKeyword } from '../cleanup.mjs';
|
|
import { convertEmojiSequenceToUTF32 } from '../convert.mjs';
|
|
import { getQualifiedEmojiVariations } from '../test/variations.mjs';
|
|
import { createEmojisTree, parseEmojiTree } from './tree.mjs';
|
|
import '../data.mjs';
|
|
import '../format.mjs';
|
|
import './base.mjs';
|
|
import './numbers.mjs';
|
|
import './similar.mjs';
|
|
|
|
function createOptimisedRegexForEmojiSequences(sequences) {
|
|
sequences = sequences.map((item) => convertEmojiSequenceToUTF32(item));
|
|
const tree = createEmojisTree(sequences);
|
|
const regex = parseEmojiTree(tree);
|
|
return regex.regex;
|
|
}
|
|
function createOptimisedRegex(emojis) {
|
|
let sequences = emojis.map(
|
|
(item) => typeof item === "string" ? getSequenceFromEmojiStringOrKeyword(item) : item
|
|
);
|
|
sequences = getQualifiedEmojiVariations(
|
|
sequences.map((sequence) => {
|
|
return {
|
|
sequence
|
|
};
|
|
})
|
|
).map((item) => item.sequence);
|
|
return createOptimisedRegexForEmojiSequences(sequences);
|
|
}
|
|
|
|
export { createOptimisedRegex, createOptimisedRegexForEmojiSequences };
|