/node-github-emoji

Node.js library for GitHub Emoji :octocat: with TypeScript support

Primary LanguageTypeScriptMIT LicenseMIT

GitHub Emoji Library for Node.js typed with TypeScript

npm version codecov badge travis badge appveyor badge

Small npm package for GitHub Emoji typed with TypeScript.

Features:

  • Get properties of each emoji
    • Name (e.g. dog)
    • URL (e.g. https://github.githubassets.com/images/icons/emoji/unicode/1f436.png?v8)
    • String (e.g. 🐶)
    • File path to emoji file (e.g. /path/to/github-emoji/images/1f436.png)
    • File name (e.g. 1f436.png)
  • TypeScript ready
    • Emoji name is typed as a union of string literal types. Compiler can check emoji name is correct.
  • Zero runtime dependency

Installation:

npm install --save github-emoji

Usage:

const emoji = require('github-emoji');

console.log('All emoji information as Map',             emoji.all());           // Map{ '+1' => {...}, ... }
console.log('Get properties of emoji as object',        emoji.of('dog'));       // { string: '🐶', ... }
console.log('Get emoji string from name',               emoji.stringOf('dog')); // '🐶'
console.log('Get all emoji names from emoji string',    emoji.namesOf('👍'));   // ['+1', 'thumbsup']
console.log('Get one of emoji names from emoji string', emoji.nameOf('👍'));    // '+1'
console.log('Get emoji URL from name',                  emoji.urlOf('dog'));    // 'https://...'
console.log('Check the string is emoji name',           emoji.isName('dog'));   // true
console.log('Check the string is emoji',                emoji.isEmoji('🐶'));   // true
console.log('Object of name => URL',                    emoji.URLS);            // { '+1': 'https://...', ... }

This library is ready for TypeScript.

import * as emoji from 'github-emoji';

emoji.of('dog');   // OK
emoji.of('doggo'); // COMPILE ERROR!

// If you want to use string value for emoji name, please assert the string value
// is emoji name using `as`.
import {EmojiName} from 'github-emoji';
const someName: string = ...;
emoji.of(someName as EmojiName); // OK

Please see github-emoji/index.d.ts for all APIs.

You may need to add --resolveJsonModule to tsc or "resolveJsonModule": true in compilerOptions section of tsconfig.json to compile this library. --outDir would be also necessary in compile configuration. --target must be es2015 or later.

For example:

tsc your_source.ts --resolveJsonModule --target es2015 --esModuleInterop --moduleResolution node --module commonjs