vue-tweet-pure
Version:
A Vue 3 component for embedding tweets in your Vue.js applications.
67 lines (66 loc) • 1.39 kB
TypeScript
import type { Indices } from './entities.js';
export type RGB = {
red: number;
green: number;
blue: number;
};
export type Rect = {
x: number;
y: number;
w: number;
h: number;
};
export type Size = {
h: number;
w: number;
resize: string;
};
export interface VideoInfo {
aspect_ratio: [number, number];
variants: {
bitrate?: number;
content_type: 'video/mp4' | 'application/x-mpegURL';
url: string;
}[];
}
interface MediaBase {
display_url: string;
expanded_url: string;
ext_media_availability: {
status: string;
};
ext_media_color: {
palette: {
percentage: number;
rgb: RGB;
}[];
};
indices: Indices;
media_url_https: string;
original_info: {
height: number;
width: number;
focus_rects: Rect[];
};
sizes: {
large: Size;
medium: Size;
small: Size;
thumb: Size;
};
url: string;
}
export interface MediaPhoto extends MediaBase {
type: 'photo';
ext_alt_text?: string;
}
export interface MediaAnimatedGif extends MediaBase {
type: 'animated_gif';
video_info: VideoInfo;
}
export interface MediaVideo extends MediaBase {
type: 'video';
video_info: VideoInfo;
}
export type MediaDetails = MediaPhoto | MediaAnimatedGif | MediaVideo;
export {};