UNPKG

emoji-data

Version:

Emoji encoding swiss army knife for NodeJS

91 lines (68 loc) 2.73 kB
# 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][doublebyte] or [variants][variant], 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][rb] gem, which is used in production by [Emojitracker.com][emojitracker] 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](https://travis-ci.org/mroth/emoji-data-js.svg?branch=master)](https://travis-ci.org/mroth/emoji-data-js) [doublebyte]: http://www.quora.com/Why-does-using-emoji-reduce-my-SMS-character-limit-to-70 [variant]: http://www.unicode.org/L2/L2011/11438-emoji-var.pdf [rb]: https://github.com/mroth/emoji_data.rb [emojitracker]: http://www.emojitracker.com ## Installation npm install emoji-data ## Usage Examples ```js > 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)](LICENSE)