obsidian-book-tracker/src/types.ts

32 lines
680 B
TypeScript

import type { IN_PROGRESS_STATE, READ_STATE, TO_BE_READ_STATE } 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 TO_BE_READ_STATE;
export type InProgressState = typeof IN_PROGRESS_STATE;
export type ReadState = typeof READ_STATE;
export type ReadingState = ToBeReadState | InProgressState | ReadState;