@firecms/core
Version:
Awesome Firebase/Firestore-based headless open-source CMS
65 lines (64 loc) • 3.49 kB
TypeScript
import { AdditionalFieldDelegate, ArrayProperty, BooleanProperty, CMSType, DateProperty, EntityCallbacks, EntityCollection, EnumValueConfig, EnumValues, GeopointProperty, MapProperty, NumberProperty, PropertiesOrBuilders, PropertyBuilder, PropertyConfig, PropertyOrBuilder, ReferenceProperty, StringProperty, User } from "../types";
/**
* Identity function we use to defeat the type system of Typescript and build
* collection views with all its properties
* @param collection
* @group Builder
*/
export declare function buildCollection<M extends Record<string, any> = any, USER extends User = User>(collection: EntityCollection<M, USER>): EntityCollection<M, USER>;
/**
* Identity function we use to defeat the type system of Typescript and preserve
* the property keys.
* @param property
* @group Builder
*/
export declare function buildProperty<T extends CMSType = CMSType, P extends PropertyOrBuilder<T> = PropertyOrBuilder<T>, M extends Record<string, any> = any>(property: 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 ? ArrayProperty : P extends MapProperty ? MapProperty : P extends PropertyBuilder<T, M> ? PropertyBuilder<T, M> : never;
/**
* Identity function we use to defeat the type system of Typescript and preserve
* the properties keys.
* @param properties
* @group Builder
*/
export declare function buildProperties<M extends Record<string, any>>(properties: PropertiesOrBuilders<M>): PropertiesOrBuilders<M>;
/**
* Identity function we use to defeat the type system of Typescript and preserve
* the properties keys.
* @param propertiesOrBuilder
* @group Builder
*/
export declare function buildPropertiesOrBuilder<M extends Record<string, any>>(propertiesOrBuilder: PropertiesOrBuilders<M>): PropertiesOrBuilders<M>;
/**
* Identity function we use to defeat the type system of Typescript and preserve
* the properties keys.
* @param enumValues
* @group Builder
*/
export declare function buildEnumValues(enumValues: EnumValues): EnumValues;
/**
* Identity function we use to defeat the type system of Typescript and preserve
* the properties keys.
* @param enumValueConfig
* @group Builder
*/
export declare function buildEnumValueConfig(enumValueConfig: EnumValueConfig): EnumValueConfig;
/**
* Identity function we use to defeat the type system of Typescript and preserve
* the properties keys.
* @param callbacks
* @group Builder
*/
export declare function buildEntityCallbacks<M extends Record<string, any> = any>(callbacks: EntityCallbacks<M>): EntityCallbacks<M>;
/**
* Identity function we use to defeat the type system of Typescript and build
* additional field delegates views with all its properties
* @param additionalFieldDelegate
* @group Builder
*/
export declare function buildAdditionalFieldDelegate<M extends Record<string, any>, USER extends User = User>(additionalFieldDelegate: AdditionalFieldDelegate<M, USER>): AdditionalFieldDelegate<M, USER>;
/**
* Identity function we use to defeat the type system of Typescript and build
* additional field delegates views with all its properties
* @param propertyConfig
* @group Builder
*/
export declare function buildFieldConfig<T extends CMSType = CMSType>(propertyConfig: PropertyConfig<T>): PropertyConfig<T>;