1 | import getDefaultModule from './getDefaultModule'
|
2 | import {Ordering} from '../Sort'
|
3 |
|
4 | interface Schema {
|
5 | name: string
|
6 | get(typeName: string): any
|
7 | getTypeNames(): string[]
|
8 | }
|
9 |
|
10 | interface SchemaField {
|
11 | name: string
|
12 | type: SchemaType
|
13 | }
|
14 |
|
15 | interface PreviewFields {
|
16 | media?: string
|
17 | }
|
18 |
|
19 | interface PreviewPreparer {
|
20 | (selection: {}): PreviewFields
|
21 | }
|
22 |
|
23 | export interface SchemaType {
|
24 | name: string
|
25 | type?: SchemaType
|
26 | to?: SchemaField[]
|
27 | fields?: SchemaField[]
|
28 | orderings?: Ordering[]
|
29 | preview?: {
|
30 | select?: PreviewFields
|
31 | prepare?: PreviewPreparer
|
32 | }
|
33 | }
|
34 |
|
35 |
|
36 | const defaultSchema = ((): Schema => {
|
37 | const schema: Schema = getDefaultModule(require('part:@sanity/base/schema'))
|
38 | return schema
|
39 | })()
|
40 |
|
41 | export {Schema, defaultSchema}
|