Skip to content

Commit 8b426b3

Browse files
committed
feat: add TS type definitions
1 parent d4279f4 commit 8b426b3

File tree

3 files changed

+96
-0
lines changed

3 files changed

+96
-0
lines changed

src/getSchemaTypes.d.ts

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
export type RawField = {
2+
name: string
3+
type: RawType
4+
}
5+
export type RawType = {
6+
name: string | null | undefined
7+
kind: string
8+
ofType?: RawType | null | undefined
9+
fields?: Array<RawField> | null | undefined
10+
}
11+
export type Field = {
12+
name: string
13+
type: Type
14+
parent: Type
15+
}
16+
export type Type = {
17+
name: string | null | undefined
18+
kind: string
19+
ofType?: Type | null | undefined
20+
fields?:
21+
| {
22+
[name: string]: Field
23+
}
24+
| null
25+
| undefined
26+
parents?: Array<Field>
27+
}
28+
export type Types = {
29+
[name: string]: Type
30+
}

src/index.d.ts

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { ApolloClient } from 'apollo-client'
2+
import type { Types } from './getSchemaTypes'
3+
import typesQuery, { TypeMetadata } from './typesQuery'
4+
export { typesQuery }
5+
export type { TypeMetadata }
6+
7+
type Term = [string, any, string | null | undefined] | [string, any] | [string]
8+
9+
declare const refetch: {
10+
(
11+
client: unknown,
12+
typenameOrTerms: string | ReadonlyArray<Term>,
13+
predicate?: any | null,
14+
idField?: string
15+
): Promise<any>
16+
fetchTypeMetadata(client: ApolloClient<any>): Promise<Types>
17+
setTypeMetadata(metadata: Promise<TypeMetadata> | TypeMetadata): void
18+
}
19+
20+
export default refetch

src/typesQuery.d.ts

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import { DocumentNode } from 'graphql'
2+
declare const typesQuery: DocumentNode
3+
export default typesQuery
4+
5+
type __TypeKind =
6+
| 'SCALAR'
7+
| 'OBJECT'
8+
| 'INTERFACE'
9+
| 'UNION'
10+
| 'ENUM'
11+
| 'INPUT_OBJECT'
12+
| 'LIST'
13+
| 'NON_NULL'
14+
15+
export type TypeMetadata = {
16+
data: {
17+
__schema: {
18+
types: Array<{
19+
name: string | null | undefined
20+
fields: Array<{
21+
name: string
22+
type:
23+
| {
24+
name: string | null | undefined
25+
kind: __TypeKind
26+
ofType:
27+
| {
28+
name: string | null | undefined
29+
kind: __TypeKind
30+
ofType:
31+
| {
32+
name: string | null | undefined
33+
}
34+
| null
35+
| undefined
36+
}
37+
| null
38+
| undefined
39+
}
40+
| null
41+
| undefined
42+
}>
43+
}>
44+
}
45+
}
46+
}

0 commit comments

Comments
 (0)