airlogos
Version:
Airline logos (SVG and PNG)
181 lines (124 loc) β’ 3.74 kB
Markdown
# βοΈ airlogos
A lightweight and framework-agnostic NPM package for easily accessing **airline logos** (SVG and PNG) by their **IATA code**.
Works with **React**, **Angular**, **Vue**, **Next.js**, **Nuxt**, or any modern JavaScript/TypeScript framework.
> π‘οΈ **Please understand that images are base64 format so you may need safe parse** in frameworks like Angular, Vue, or others with CSP or SSR restrictions.
## π¦ Installation
```bash
npm install airlogos
# or
yarn add airlogos
```
## π Quick Usage
```ts
import airlineLogos from "airlogos";
const { EK, QR, BA } = airlineLogos;
console.log(EK.svg);
console.log(QR.png);
```
Each airline is available via its **IATA code** (`EK`, `QR`, `BA`, etc.), and includes:
- `svg`: base64 image string (or `""` if not available)
- `png`: base64 image string (or `""` if not available)
## βοΈ React Example
```tsx
import React from "react";
import airlineLogos from "airlogos";
const { EK, QR } = airlineLogos;
const AirlineLogo = () => (
<div>
<h2>Emirates Logo</h2>
<img src={EK.svg} alt="Emirates Logo" width={100} />
<h2>Qatar Airways Logo</h2>
<img src={QR.png} alt="Qatar Logo" width={100} />
</div>
);
export default AirlineLogo;
```
β
React supports base64 images directly via `<img src={base64} />`.
## π Next.js Example
```tsx
import airlineLogos from "airlogos";
export default function Home() {
const { BA } = airlineLogos;
return (
<div>
<h2>British Airways</h2>
<img src={BA.svg} alt="British Airways Logo" width={120} />
</div>
);
}
```
β
Base64 support is built-in. For performance optimization, consider static imports or CDN fallback.
## π
°οΈ Angular Example
```ts
// airline.component.ts
import { Component } from "@angular/core";
import airlineLogos from "airlogos";
import { DomSanitizer, SafeUrl } from "@angular/platform-browser";
@Component({
selector: "app-airline",
templateUrl: "./airline.component.html",
})
export class AirlineComponent {
EKLogoSvg: SafeUrl;
BALogoPng: SafeUrl;
constructor(private sanitizer: DomSanitizer) {
this.EKLogoSvg = this.getSafeUrl(airlineLogos.EK.svg);
this.BALogoPng = this.getSafeUrl(airlineLogos.BA.png);
}
getSafeUrl(base64: string): SafeUrl {
return this.sanitizer.bypassSecurityTrustUrl(base64);
}
}
```
```html
<!-- airline.component.html -->
<h2>Emirates Logo</h2>
<img [src]="EKLogoSvg" alt="Emirates Logo" width="100" />
<h2>British Airways Logo</h2>
<img [src]="BALogoPng" alt="British Airways Logo" width="100" />
```
β οΈ Angular requires `DomSanitizer` for base64 image strings.
## π§© Vue 3 Example
```vue
<template>
<div>
<h2>Qatar Airways</h2>
<img :src="QR.png" alt="Qatar Logo" width="100" />
</div>
</template>
<script setup>
import airlineLogos from "airlogos";
const { QR } = airlineLogos;
</script>
```
## π Nuxt 3 Example
```vue
<template>
<div>
<img :src="EK.svg" alt="Emirates Logo" width="120" />
</div>
</template>
<script setup>
import airlineLogos from "airlogos";
const { EK } = airlineLogos;
</script>
```
For Nuxt, no sanitizer is required for base64 in most cases. For stricter CSP setups, sanitize using Nuxt runtime modules.
## β What if a logo is missing?
If a logo isnβt available in one format (`svg` or `png`), its value will simply be an empty string (`""`).
## π© Contact
If you donβt find your desired airline logo, please reach out:
π§ **rummanstack@gmail.com**
## πͺͺ License
MIT