bilibili-bangumi-component
Version:
展示 bilibili 与 Bangumi 追番列表的 WebComponent 组件
68 lines (67 loc) • 1.79 kB
TypeScript
import type { UnionToTuple } from './typeUtils';
export type Platform = 'Bilibili' | 'Bangumi' | string;
export type Subject = '动画' | '游戏' | '书籍';
export type AnimeCollection = '全部' | '想看' | '在看' | '看过';
export type GameCollection = '全部' | '想玩' | '在玩' | '玩过';
export type BookCollection = '全部' | '想读' | '在读' | '读过';
export type Collection = AnimeCollection | GameCollection | BookCollection;
export type CollectionType = '0' | '1' | '2' | '3';
export type CollectionLabel = UnionToTuple<AnimeCollection> | UnionToTuple<GameCollection> | UnionToTuple<BookCollection>;
/**
* 1 动画 2 游戏 3 书籍
*/
export type SubjectType = '1' | '2' | '3';
export interface BilibiliQuery {
/**
* 筛选状态
* 0 全部
* 1 想看
* 2 在看
* 3 看过
*/
collectionType?: CollectionType;
uid?: string;
/**
* 第几页
*/
pageNumber?: number;
/**
* 一页多少个
*/
pageSize?: number;
}
export interface BgmQuery extends BilibiliQuery {
/**
* 1 为动画 2 为游戏 3 为书籍
*/
subjectType?: SubjectType;
}
export type CustomQuery = Omit<BgmQuery, 'uid'>;
interface EmptyData {
}
export interface ResponseType {
code: number;
message: string;
data: ResponseData | EmptyData;
}
export interface ResponseData {
list: ListItem[];
pageNumber: number;
pageSize: number;
total: number;
totalPages: number;
}
export interface ListItem {
name?: string;
nameCN?: string;
summary: string;
cover?: string;
url: string;
labels: LabelItem[];
}
export interface LabelItem {
label: string;
value?: string | number;
}
export type ContainerState = 'large' | 'middle' | 'small';
export {};