xref: /expo/docs/types/common.ts (revision bb5069cd)
1export type PageMetadata = {
2  title?: string;
3  description?: string;
4  sourceCodeUrl?: string;
5  packageName?: string;
6  maxHeadingDepth?: number;
7  /* If the page should not show up in the Algolia Docsearch results */
8  hideFromSearch?: boolean;
9  hideTOC?: boolean;
10};
11
12/**
13 * A single header from the `remark-export-headings` plugin.
14 */
15export type RemarkHeading = {
16  id?: string;
17  depth: number;
18  title: string;
19  type: string;
20};
21
22/**
23 * Utility type. Extracts `T` type from `T[]` array.
24 */
25export type ElementType<T extends any[]> = T extends (infer U)[] ? U : never;
26
27export type Url = {
28  pathname: string;
29};
30
31export type NavigationType = 'section' | 'group' | 'page';
32
33export type NavigationRoute = {
34  type: NavigationType;
35  name: string;
36  href: string;
37  as?: string;
38  hidden?: boolean;
39  expanded?: boolean;
40  sidebarTitle?: string;
41  weight?: number;
42  children?: NavigationRoute[];
43};
44
45/**
46 * Available platforms supported by our APIs.
47 * Temporarily it also accepts other strings for compatibility reasons.
48 */
49export type PlatformName = 'ios' | 'android' | 'web' | 'expo' | string;
50