forked from denoland/docs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
types.ts
69 lines (55 loc) · 1.36 KB
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
export type Sidebar = SidebarSection[];
export type Path = string;
export type SidebarItem = string | SidebarDoc | SidebarLink | SidebarCategory;
export interface SidebarSection {
title: string;
href?: string;
items: (string | SidebarItem)[];
}
export interface SidebarDoc {
label: string;
id: string;
}
export interface SidebarLink {
label: string;
href: string;
}
export interface BreadcrumbItem {
label: string;
href?: string;
}
export interface SidebarCategory {
label: string;
href?: string;
items: SidebarItem[];
}
export type TableOfContents = TableOfContentsItem[];
export interface TableOfContentsItem {
text: string;
slug: string;
children: TableOfContentsItem[];
}
export function isSidebarLink(b: SidebarItem): b is SidebarLink {
return (b as SidebarLink).href !== undefined;
}
export function isSidebarDoc(b: SidebarItem): b is SidebarDoc {
return (b as SidebarDoc).id !== undefined;
}
export function isSidebarCategory(b: SidebarItem): b is SidebarCategory {
return (b as SidebarCategory).items !== undefined;
}
export interface FeedbackSubmission {
path: string;
sentiment: "yes" | "no";
id?: string | null;
comment?: string;
contact?: string;
}
export interface GoogleSheetsUpdateResponse {
updates: {
updatedRange: string;
updatedRows: number;
updatedColumns: number;
updatedCells: number;
};
}