UNPKG

@sanity/tsdoc

Version:

Generate API reference docs from TypeScript projects and store in a Sanity-friendly JSON format. Render a static frontend, or as React components.

99 lines (95 loc) 2.32 kB
import {defineArrayMember, defineField, defineType} from 'sanity' export const apiInterfaceType = defineType({ type: 'document', name: 'api.interface', title: 'Interface', fields: [ defineField({ type: 'string', name: 'name', title: 'Name', }), defineField({ type: 'slug', name: 'slug', title: 'Slug', }), defineField({ type: 'api.releaseTag', name: 'releaseTag', title: 'Release tag', }), defineField({ type: 'reference', name: 'export', title: 'Export', to: [{type: 'api.export'}], hidden: true, }), defineField({ type: 'reference', name: 'release', title: 'Release', to: [{type: 'api.release'}], hidden: true, }), defineField({ type: 'reference', name: 'package', title: 'Package', to: [{type: 'api.package'}], hidden: true, }), defineField({ type: 'array', name: 'typeParameters', title: 'Type parameters', of: [defineArrayMember({type: 'api.typeParameter'})], }), defineField({ type: 'array', name: 'extends', title: 'Extends', of: [ defineArrayMember({ type: 'object', name: 'api.extend', title: 'Extend', fields: [ defineField({ type: 'api.tokens', name: 'type', title: 'Type', }), ], preview: { select: {type: 'type'}, prepare: ({type}: any) => ({title: type.map((t: any) => t.text).join('')}), }, }), ], }), defineField({ type: 'array', name: 'members', title: 'Members', of: [ defineArrayMember({type: 'api.callSignature'}), defineArrayMember({type: 'api.constructSignature'}), defineArrayMember({type: 'api.indexSignature'}), defineArrayMember({type: 'api.methodSignature'}), defineArrayMember({type: 'api.propertySignature'}), ], }), defineField({ type: 'tsdoc.docComment', name: 'comment', title: 'Comment', }), ], preview: { select: {title: 'name'}, prepare: ({title}: any) => ({title, subtitle: 'Interface'}), }, readOnly: true, })