Product
Introducing Ruby Support in Socket
Socket is launching Ruby support for all users. Enhance your Rails projects with AI-powered security scans for vulnerabilities and supply chain threats. Now in Beta!
@sanity/types
Advanced tools
@sanity/types is a TypeScript library that provides type definitions for Sanity's content platform. It helps developers to define and work with the types of content schemas, documents, and other entities within the Sanity ecosystem.
Schema Type Definitions
This feature allows you to define the structure of your content types in a strongly-typed manner. The code sample demonstrates how to define a simple schema with a document type 'post' that has a 'title' field of type 'string'.
const schema: Schema = { name: 'mySchema', types: [{ name: 'post', type: 'document', fields: [{ name: 'title', type: 'string' }] }] };
Document Type Definitions
This feature provides type definitions for documents stored in Sanity. The code sample shows how to define a document of type 'post' with an ID and a title.
const post: SanityDocument = { _id: 'post1', _type: 'post', title: 'Hello World' };
Field Type Definitions
This feature allows you to define individual fields within your content types. The code sample demonstrates how to define a 'title' field of type 'string'.
const titleField: StringField = { name: 'title', type: 'string' };
Contentful is a content management system that provides a similar set of functionalities for defining and managing content types and documents. It offers a rich set of APIs and SDKs for various programming languages, including TypeScript, to work with content models and entries.
Prismic is another headless CMS that allows you to define and manage content types and documents. The prismic-javascript package provides a JavaScript/TypeScript SDK for interacting with the Prismic API, offering similar functionalities to @sanity/types for defining and working with content schemas and documents.
Strapi is an open-source headless CMS that provides a flexible and customizable content management system. It allows you to define content types and manage content through a user-friendly interface. Strapi also offers TypeScript support for defining and working with content models and entries.
import React from 'react'
import {List, Item} from 'part:@sanity/components/lists/default'
function renderItem(item, index) {
return <Item className="myListItem">{item}</Item>
}
function MyComponent() {
return <List className="myList" items={['a', 'b', 'c']} renderItem={renderItem} />
}
import {List, Item, DragHandle} from 'part:@sanity/components/lists/sortable'
;<List className="myList">
<ListItem>
<DragHandle />
Hello this is sortable list item
</ListItem>
</List>
import {List, Item} from 'part:@sanity/components/lists/grid'
;<List className="myGridList">
<ListItem>Hello this is grid list item #1</ListItem>
<ListItem>Hello this is grid list item #2</ListItem>
<ListItem>Hello this is grid list item #3</ListItem>
</List>
import {List, Item} from 'part:@sanity/components/lists/sortable-grid'
;<List className="myGridList">
<ListItem>
<DragHandle />
Hello this is sortable grid list item #1
</ListItem>
<ListItem>
<DragHandle />
Hello this is sortable grid list item #2
</ListItem>
<ListItem>
<DragHandle />
Hello this is sortable grid list item #3
</ListItem>
</List>
To create a custom drag handle, you can import the custom createDragHandle
function. This works for both regular sortable lists and sortable grid lists.
import {List, ListItem, createDragHandle} from 'part:@sanity/components/lists/sortable'
const MyDragHandle = createDragHandle(<span>Drag me!</span>
<List className="myGridList">
<ListItem>
<MyDragHandle />
Hello this is sortable list item #1
</ListItem>
<ListItem>
<MyDragHandle />
Hello this is sortable list item #2
</ListItem>
<ListItem>
<MyDragHandle />
Hello this is sortable list item #3
</ListItem>
</List>
FAQs
Type definitions for common Sanity data structures
We found that @sanity/types demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 63 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket is launching Ruby support for all users. Enhance your Rails projects with AI-powered security scans for vulnerabilities and supply chain threats. Now in Beta!
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.