UNPKG

812 BPlain TextView Raw
1import getDefaultModule from './getDefaultModule'
2import {Ordering} from '../Sort'
3
4interface Schema {
5 name: string
6 get(typeName: string): any
7 getTypeNames(): string[]
8}
9
10interface SchemaField {
11 name: string
12 type: SchemaType
13}
14
15interface PreviewFields {
16 media?: string
17}
18
19interface PreviewPreparer {
20 (selection: {}): PreviewFields
21}
22
23export 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// We are lazy-loading the part to work around typescript trying to resolve it
36const defaultSchema = ((): Schema => {
37 const schema: Schema = getDefaultModule(require('part:@sanity/base/schema'))
38 return schema
39})()
40
41export {Schema, defaultSchema}