Home

Awesome

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:

Build Status

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.

License

The MIT License (MIT)