Skip to content

buildProperty

@firecms/core


@firecms/core / buildProperty

buildProperty<T, P, M>(property): P extends StringProperty ? StringProperty : P extends NumberProperty ? NumberProperty : P extends BooleanProperty ? BooleanProperty : P extends DateProperty ? DateProperty : P extends GeopointProperty ? GeopointProperty : P extends ReferenceProperty ? ReferenceProperty : P extends ArrayProperty<any[], any> ? ArrayProperty<any[], any> : P extends MapProperty<Record<string, CMSType>> ? MapProperty<Record<string, CMSType>> : P extends PropertyBuilder<T, M> ? PropertyBuilder<T, M> : never

Defined in: util/builders.ts:44

Identity function we use to defeat the type system of Typescript and preserve the property keys.

T extends CMSType = CMSType

P extends StringProperty | NumberProperty | BooleanProperty | DateProperty | GeopointProperty | ReferenceProperty | ArrayProperty<CMSType[] & Record<string, any>, any> | MapProperty<Record<string, any>> | ArrayProperty<CMSType[], any> | PropertyBuilder<T, any> = PropertyOrBuilder<T>

M extends Record<string, any> = any

P

P extends StringProperty ? StringProperty : P extends NumberProperty ? NumberProperty : P extends BooleanProperty ? BooleanProperty : P extends DateProperty ? DateProperty : P extends GeopointProperty ? GeopointProperty : P extends ReferenceProperty ? ReferenceProperty : P extends ArrayProperty<any[], any> ? ArrayProperty<any[], any> : P extends MapProperty<Record<string, CMSType>> ? MapProperty<Record<string, CMSType>> : P extends PropertyBuilder<T, M> ? PropertyBuilder<T, M> : never