35 lines
1.2 KiB
Plaintext
35 lines
1.2 KiB
Plaintext
|
'use strict';
|
||
|
|
||
|
const emoji_cleanup = require('../cleanup.cjs');
|
||
|
const emoji_convert = require('../convert.cjs');
|
||
|
const emoji_test_variations = require('../test/variations.cjs');
|
||
|
const emoji_regex_tree = require('./tree.cjs');
|
||
|
require('../data.cjs');
|
||
|
require('../format.cjs');
|
||
|
require('./base.cjs');
|
||
|
require('./numbers.cjs');
|
||
|
require('./similar.cjs');
|
||
|
|
||
|
function createOptimisedRegexForEmojiSequences(sequences) {
|
||
|
sequences = sequences.map((item) => emoji_convert.convertEmojiSequenceToUTF32(item));
|
||
|
const tree = emoji_regex_tree.createEmojisTree(sequences);
|
||
|
const regex = emoji_regex_tree.parseEmojiTree(tree);
|
||
|
return regex.regex;
|
||
|
}
|
||
|
function createOptimisedRegex(emojis) {
|
||
|
let sequences = emojis.map(
|
||
|
(item) => typeof item === "string" ? emoji_cleanup.getSequenceFromEmojiStringOrKeyword(item) : item
|
||
|
);
|
||
|
sequences = emoji_test_variations.getQualifiedEmojiVariations(
|
||
|
sequences.map((sequence) => {
|
||
|
return {
|
||
|
sequence
|
||
|
};
|
||
|
})
|
||
|
).map((item) => item.sequence);
|
||
|
return createOptimisedRegexForEmojiSequences(sequences);
|
||
|
}
|
||
|
|
||
|
exports.createOptimisedRegex = createOptimisedRegex;
|
||
|
exports.createOptimisedRegexForEmojiSequences = createOptimisedRegexForEmojiSequences;
|