@magiclab/emoji-data
v0.3.0
Published
Emoji encoding swiss army knife for NodeJS
Downloads
59
Readme
emoji-data-js
NodeJS library providing low level operations for dealing with Emoji glyphs in the Unicode standard. :cool:
EmojiData.js is like a swiss-army knife for dealing with Emoji encoding issues.
If all you need to do is translate :poop:
into :poop:, then there are plenty
of other libs out there that will probably do what you want. But once you are
dealing with Emoji as a fundamental part of your application, and you start to
realize the nightmare of doublebyte encoding or
variants, then this library may be your new best friend.
:raised_hands:
EmojiData.js is written by the same author as the Ruby emoji_data.rb gem, which is used in production by Emojitracker.com to parse well over 100M+ emoji glyphs daily. This version was written to provide all the same functionality while taking advantage of the crazy speed of the V8 runtime environment. :dizzy:
Installation
npm install emoji-data
Usage Examples
> var EmojiData = require('emoji-data');
> EmojiData.from_unified('2665');
{ name: 'BLACK HEART SUIT',
unified: '2665',
variations: [ '2665-FE0F' ],
docomo: 'E68D',
au: 'EAA5',
softbank: 'E20C',
google: 'FEB1A',
short_name: 'hearts',
short_names: [ 'hearts' ],
text: null,
apple_img: true,
hangouts_img: true,
twitter_img: true }
> EmojiData.all().length
845
> EmojiData.all_with_variants().length
107
> EmojiData.find_by_short_name("moon").length
13
> EmojiData.find_by_name("tree").map(
function(c) { return [c.unified, c.render(), c.name]; }
);
[ [ '1F332', '🌲', 'EVERGREEN TREE' ],
[ '1F333', '🌳', 'DECIDUOUS TREE' ],
[ '1F334', '🌴', 'PALM TREE' ],
[ '1F384', '🎄', 'CHRISTMAS TREE' ],
[ '1F38B', '🎋', 'TANABATA TREE' ] ]
> EmojiData.scan("I ♥ when marketers talk about the ☁. #blessed").forEach(
function(ec) { console.log("Found some " + ec.short_name + "!"); }
);
Found some hearts!
Found some cloud!
API Documentation
http://coffeedoc.info/github/mroth/emoji-data-js/master/
Contributing
Please be sure to run npm test
and help keep test coverage at :100:.
There is a full benchmark suite available via npm run-script bench
. Please
test before and after your changes to ensure you have not caused a performance
regression.