An open API service indexing awesome lists of open source software.

https://github.com/JoshuaKGoldberg/emojipedia

Unofficial static export of emoji technical information from Emojipedia. πŸ“™
https://github.com/JoshuaKGoldberg/emojipedia

emojipedia emojis unicode

Last synced: 6 months ago
JSON representation

Unofficial static export of emoji technical information from Emojipedia. πŸ“™

Awesome Lists containing this project

README

        

The Emojipedia Technical Information Library

Unofficial static export of emoji technical information from Emojipedia. πŸ“™




πŸ‘ͺ All Contributors: 2


🀝 Code of Conduct: Kept
πŸ§ͺ Coverage
πŸ“ License: MIT
πŸ“¦ npm version
πŸ’ͺ TypeScript: Strict

## Usage

```shell
npm i emojipedia
```

### Data

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:

```ts
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](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import/with#description):

```ts
import sparklingHeart from "emojipedia/data/sparkling-heart.json" with { type: "json" };

console.log(sparklingHeart);
/*
{
"code": "πŸ’–",
"slug": "sparkling-heart",
"title": "Sparkling Heart",
// ...
}
*/
```

### Node.js APIs

The functions used to generate Emojipedia data are exported as well.
In order from low-level to high-level:

1. [`getEmoji`](#getemoji)
1. [`getEmojis`](#getemojis)
1. [`rebuildDirectory`](#rebuilddirectory)

#### `getEmoji`

Retrieves data for an emoji by its slug.
This sends a single network request to the Emojipedia GraphQL API.

```ts
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.

#### `getEmojis`

Retrieves data for an array of emoji slugs by calling [`getEmoji`](#getemoji) for each slug.

```ts
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](https://github.com/sindresorhus/p-throttle) to a maximum of 10 calls at each 100ms interval.

#### `rebuildDirectory`

Clears and recreates a directory to contain an `index.mjs`, an `index.d.ts`, and a `*.json` file for each emoji slug.

```ts
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`](https://github.com/muan/unicode-emoji-json).

## Contributors



Josh Goldberg ✨
Josh Goldberg ✨

πŸ’» πŸ–‹ πŸ“– πŸ€” πŸš‡ 🚧 πŸ“† πŸ”§ πŸ›
Megan Middleton
Megan Middleton

⚠️

> πŸ’™ This package was templated with [`create-typescript-app`](https://github.com/JoshuaKGoldberg/create-typescript-app).