22 lines
586 B
TypeScript
22 lines
586 B
TypeScript
export class CountryFlagDisplay {
|
|
private constructor(private readonly value: string) {}
|
|
|
|
static fromCountryCode(countryCode: string | null | undefined): CountryFlagDisplay {
|
|
if (!countryCode) {
|
|
return new CountryFlagDisplay('🏁');
|
|
}
|
|
|
|
const code = countryCode.toUpperCase();
|
|
if (code.length !== 2) {
|
|
return new CountryFlagDisplay('🏁');
|
|
}
|
|
|
|
const codePoints = [...code].map((char) => 127397 + char.charCodeAt(0));
|
|
return new CountryFlagDisplay(String.fromCodePoint(...codePoints));
|
|
}
|
|
|
|
toString(): string {
|
|
return this.value;
|
|
}
|
|
}
|