Unofficial static export of emoji technical information from Emojipedia. 📙
npm i emojipedia
The emojipedia
package exports an emojipedia/data
export of roughly all emojis on emojipedia.
Data for each emoji can be imported by its PascalCase name:
import { SparklingHeart } from "emojipedia/data";
console.log(SparklingHeart);
/*
{
"code": "💖",
"slug": "sparkling-heart",
"title": "Sparkling Heart",
// ...
}
*/
Alternately, you can import emoji data from the individual .json
files by their kebab-case slug name using JSON import attributes:
import sparklingHeart from "emojipedia/data/sparkling-heart.json" with { type: "json" };
console.log(sparklingHeart);
/*
{
"code": "💖",
"slug": "sparkling-heart",
"title": "Sparkling Heart",
// ...
}
*/
The functions used to generate Emojipedia data are exported as well. In order from low-level to high-level:
Retrieves data for an emoji by its slug. This sends a single network request to the Emojipedia GraphQL API.
import { getEmoji } from "emojipedia";
const emoji = await getEmoji("sparkling-heart");
console.log(emoji);
/*
{
"code": "💖",
"slug": "sparkling-heart",
"title": "Sparkling Heart",
// ...
}
*/
See the TypeScript types for a complete description of emoji properties.
Retrieves data for an array of emoji slugs by calling getEmoji
for each slug.
import { getEmojis } from "emojipedia";
const emojis = await getEmojis(["heart-on-fire", "sparkling-heart"]);
console.log(emojis);
/*
[
{
"code": "❤️🔥",
"slug": "heart-on-fire",
"title": "Heart on Fire",
// ...
},
{
"code": "💖",
"slug": "sparkling-heart",
"title": "Sparkling Heart",
// ...
}
]
*/
Note that network requests are p-throttle
throttled to a maximum of 10 calls at each 100ms interval.
Clears and recreates a directory to contain an index.mjs
, an index.d.ts
, and a *.json
file for each emoji slug.
import { rebuildDirectory } from "emojipedia";
await rebuildDirectory({
directory: "lib/data",
});
rebuildDirectory
will call getEmojis
with each of the emoji slugs as defined by unicode-emoji-json
.
Josh Goldberg ✨ 💻 🖋 📖 🤔 🚇 🚧 📆 🔧 🐛 |
Megan Middleton |
💙 This package was templated with
create-typescript-app
.