sanity
Version:
Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches
31 lines (26 loc) • 909 B
text/typescript
import {isArraySchemaType, isObjectSchemaType, isPrimitiveSchemaType} from '@sanity/types'
import {
type ArrayOfObjectsFormNode,
type ArrayOfPrimitivesFormNode,
type FieldMember,
type ObjectFormNode,
} from '../../../store'
export function isMemberObject(member: FieldMember): member is FieldMember<ObjectFormNode> {
return isObjectSchemaType(member.field.schemaType)
}
export function isMemberArrayOfPrimitives(
member: FieldMember,
): member is FieldMember<ArrayOfPrimitivesFormNode> {
return (
isArraySchemaType(member.field.schemaType) &&
member.field.schemaType.of.every((ofType) => isPrimitiveSchemaType(ofType))
)
}
export function isMemberArrayOfObjects(
member: FieldMember,
): member is FieldMember<ArrayOfObjectsFormNode> {
return (
isArraySchemaType(member.field.schemaType) &&
member.field.schemaType.of.every((ofType) => isObjectSchemaType(ofType))
)
}