Skip to content

Commit

Permalink
Merge pull request #4 from sinansonmez/feature/add-random-emoji-gener…
Browse files Browse the repository at this point in the history
…ator

Feature:Add random emoji generator
  • Loading branch information
sinansonmez authored Nov 1, 2023
2 parents c4e9df4 + 4273373 commit 52dd971
Show file tree
Hide file tree
Showing 7 changed files with 4,062 additions and 5 deletions.
1 change: 1 addition & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ jobs:
node-version: 16
- run: npm ci
- run: npm test
- run: npm run lint
- run: npm run build

publish-npm:
Expand Down
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,17 @@ countryCodeToFlag('US'); // returns '🇺🇸'
flagToCountryCode('🇺🇸'); // returns 'US'


const { letterToEmoji, emojiToLetter } = require('easy-emojis');
const { letterToEmoji, emojiToLetter, getRandomEmoji } = require('easy-emojis');
letterToEmoji('S'); // returns '🇸'
emojiToLetter('🇸') // returns 'S'

const { getRandomEmoji } = require('easy-emojis');
getRandomEmoji(); // should return a random emoji
```
## alternative importing
```javascript
import * as EasyEmojis from 'easy-emojis';
EasyEmojis.countryCodeToFlag('US'); // returns '🇺🇸'
```

### Run tests
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "easy-emojis",
"version": "1.0.2",
"version": "1.0.3",
"description": "A simple library to create emojis (flag or letter)",
"main": "lib/index.js",
"types": "lib/index.d.ts",
Expand Down
9 changes: 8 additions & 1 deletion src/__tests__/index.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {countryCodeToFlag, emojiToLetter, flagToCountryCode, letterToEmoji} from '../index';
import emojis from '../emojis';
import {countryCodeToFlag, emojiToLetter, flagToCountryCode, letterToEmoji, getRandomEmoji} from '../index';

test('countryCodeToEmoji', () => {
expect(countryCodeToFlag('US')).toBe('🇺🇸');
Expand Down Expand Up @@ -27,3 +28,9 @@ test('letterToEmoji with input less than single character', () => {
test('emojiToLetter', () => {
expect(emojiToLetter('🇦')).toBe('A');
});

test('should return a different emoji on subsequent calls', () => {
const emoji1 = getRandomEmoji();
const emoji2 = getRandomEmoji();
expect(emoji1).not.toEqual(emoji2);
});
4,034 changes: 4,034 additions & 0 deletions src/emojis.ts

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import emojis from "./emojis";

// offset between uppercase ascii and regional indicator symbols
const OFFSET = 127397;

Expand All @@ -17,3 +19,8 @@ export const letterToEmoji = (letter: string): string => {
export const emojiToLetter = (emoji: string): string => {
return String.fromCodePoint(emoji.codePointAt(0)! - OFFSET);
};

export const getRandomEmoji = (): string => {
const randomIndex = Math.floor(Math.random() * emojis.length);
return emojis[randomIndex].unicode;
}

0 comments on commit 52dd971

Please sign in to comment.