cf-emoji
Ultra-fast country code to flag emoji converter, with locale support. Up to 17x faster than alternatives.
Features
- π Ultra-fast performance (~17x faster than country-code-to-flag-emoji)
- π Supports both country codes (US) and locale codes (en-US)
- πΎ Smart caching for common country codes
- π Case-insensitive input handling
- π¦ Zero dependencies
- π§ͺ 100% test coverage
- π» Written in TypeScript
- π οΈ Built with Bun
Installation
# Using npm
npm install cf-emoji
# Using yarn
yarn add cf-emoji
# Using pnpm
pnpm add cf-emoji
# Using bun
bun add cf-emoji
Usage
import { toFlag } from 'cf-emoji';
// Using country codes
console.log(toFlag('US')); // πΊπΈ
console.log(toFlag('GB')); // π¬π§
console.log(toFlag('JP')); // π―π΅
// Using locale codes
console.log(toFlag('en-US')); // πΊπΈ
console.log(toFlag('en-GB')); // π¬π§
console.log(toFlag('ja-JP')); // π―π΅
// Case-insensitive
console.log(toFlag('us')); // πΊπΈ
console.log(toFlag('en-gb')); // π¬π§
Performance
Benchmark results comparing cf-emoji
with country-code-to-flag-emoji
:
Benchmark Results:
==================================================
Implementation Total Time Avg Time Ratio
--------------------------------------------------
dalist 48.877ms 0.049Β΅s 1.00x
wojtech 826.424ms 0.826Β΅s 16.91x
API
toFlag(code: string): string
Converts a country code or locale code to its corresponding flag emoji.
code
: A 2-letter country code (ISO 3166-1 alpha-2) or locale code
- Returns: Flag emoji string
- Throws: Error if the code is invalid
Development
# Clone the repository
git clone https://github.com/dalist1/cf-emoji.git
# Install dependencies
bun install
# Run tests
bun test
# Run benchmark
bun bench
License
MIT Β© Dalist