simple-emoji-map
v1.0.0
Published
A simple emoji map that can be built at any time
Readme
simple-emoji-map
A simple emoji map package that builds its data whenever it's installed.
This package maps the emoji codes (2049) or unicode (⁉) and sets them equal to its shortnames (["interrobang","exclamation_question"]).
The data generated by this package comes from emojibase-data, released under the MIT License.
Usage
Since v1.0.0, this package switched to a peer dependency model to allow you to choose the Unicode/Emoji version based on the emojibase-data version you choose. Make sure to install it!
To ensure that the emoji data is always up-to-date, I recommend adding a postinstall script in your consumer package.json, using the corresponding package manager's command. This will re-run the build script any time dependencies are installed, avoiding potential issues in the future where emojibase is updated but the script is not run.
"scripts": {
"postinstall": "npm rebuild simple-emoji-map",
"postinstall": "pnpm rebuild simple-emoji-map",
"postinstall": "yarn run simple-emoji-map"
}Then to use the data:
const emojis = require('simple-emoji-map');
const { variants } = require('simple-emoji-map');Or using ES6 imports:
import emojis from 'simple-emoji-map';
import { variants } from 'simple-emoji-map';Rebuilding
The JSON file is automatically generated on install.
To rebuild the JSON data file, it's a pretty simple process.
const build = require('simple-emoji-map/build');
// import build from 'simple-emoji-map/build';
build();Config
To customize the build process, you will need either a .simple-emoji-map file or a simple-emoji-map property in package.json.
The shortcodes option selects which data set to use for the emoji codenames (see https://github.com/milesj/emojibase/tree/emojibase-data%407.0.1/packages/data/en/shortcodes).
The cldr and cldr-native values look to be supported in most languages (if not all), but the rest (emojibase, emojibase-legacy, github, etc) look to only exist for English.
{
"lang": "en",
"shortcodes": {
"dataset": "emojibase",
"lang": null,
"fallbackDataset": null,
"fallbackLang": null
},
"shortnames": {},
"type": "emoji", // or 'codepoint',
"regex": null // regex for whitelist
}Shortnames
This is also the way to add custom shortnames to the map file.
For example, if you want car to show the emoji for red_car (1f697), the file or property would look something like this:
{
"shortnames": {
"1f697": ["car"]
}
}Keep in mind this will not replace any existing shortnames, only add to the emoji code's list.
