const graphemes = require('./graphemes.js'); const meat = '*(||(?:(|)*)|(?:(?!||).))(?:|)*'; const graphemePattern = new RegExp(graphemes.build('\u{10FFFD}x[0-9A-Z][0-9A-Z]|||' + meat + '|(?:(|)(?:|)*)|[^]'), 'ug'); module.exports = str => { const stripped = str.normalize('NFD').replace( graphemePattern, function(match, baseSequence, baseEmoji, firstDegenerate, offset, string) { if (baseEmoji !== undefined) return baseEmoji; if (baseSequence !== undefined) return baseSequence; if (firstDegenerate !== undefined) return firstDegenerate; return match; }); return stripped; };