obsidian-book-tracker/src/types.ts

36 lines
690 B
TypeScript

import type {
STATUS_IN_PROGRESS,
STATUS_READ,
STATUS_TO_BE_READ,
} from "./const";
export interface Author {
name: string;
description: string;
}
export interface Series {
title: string;
position: number;
}
export interface Book {
title: string;
description: string;
authors: Author[];
series: Series | null;
publisher: string;
publishedAt: Date;
genres: string[];
coverImageUrl: string;
pageCount: number;
isbn: string;
isbn13: string;
}
export type ToBeReadState = typeof STATUS_TO_BE_READ;
export type InProgressState = typeof STATUS_IN_PROGRESS;
export type ReadState = typeof STATUS_READ;
export type ReadingState = ToBeReadState | InProgressState | ReadState;