obsidian-visualiser/types/api.d.ts

77 lines
1.4 KiB
TypeScript

export interface SuccessHandler
{
success: true;
session: UserSession;
}
export interface ErrorHandler
{
success: false;
error: Error | ZodError<{
username: string;
email: string;
password: string;
}>;
}
export type Return = SuccessHandler | ErrorHandler;
export interface Project {
id: number;
name: string;
owner: number;
home: string;
summary: string;
}
export interface Navigation {
title: string;
path: string;
type: string;
order: number;
private: boolean;
children?: Navigation[];
}
export interface File {
project: number;
path: string;
owner: number;
title: string;
order: number;
type: 'Markdown' | 'Canvas' | 'File' | 'Folder';
content: string;
navigable: boolean;
private: boolean;
}
export interface Comment {
project: number;
path: number;
user_id: number;
sequence: number;
position: number;
length: number;
content: string;
}
export interface User {
id: number;
username: string;
}
export interface ProjectSearch extends Project
{
pages: number;
username: string;
}
export interface FileSearch extends File
{
comments: number;
username: string;
}
export interface CommentSearch extends Comment
{
username: string;
}
export interface UserSearch extends User
{
}
export interface Search {
projects: ProjectSearch[];
files: FileSearch[];
users: UserSearch[];
}