@sanity/assist
Version:
You create the instructions; Sanity AI Assist does the rest.
33 lines (28 loc) • 843 B
text/typescript
import {isArraySchemaType, isObjectSchemaType, ObjectItem, SchemaType} from 'sanity'
import {randomKey} from '../randomKey'
export function createProtoValue(type: SchemaType): any {
if (isObjectSchemaType(type)) {
return type.name === 'object' ? {} : {_type: type.name}
}
if (isArraySchemaType(type)) {
return []
}
if (type.jsonType === 'string') {
return ''
}
if (type.jsonType === 'number') {
return 0
}
if (type.jsonType === 'boolean') {
return false
}
return undefined
}
export function createProtoArrayValue<Item extends ObjectItem>(type: SchemaType): Item {
if (!isObjectSchemaType(type)) {
throw new Error(
`Invalid item type: "${type.type}". Default array input can only contain objects (for now)`,
)
}
return {...createProtoValue(type), _key: randomKey(12)} as Item
}