defineCollection
Call Signature
Section titled “Call Signature”defineCollection<
TLoadSchema
,TRelations
,TLoaderDeps
,TValidatorDeps
>(config
):Collection
<TLoadSchema
,TLoadSchema
,TRelations
,TLoaderDeps
,never
,TValidatorDeps
>
Defined in: packages/core/src/cms.ts:193
Factory function to define collections with type-safe configurations. Provides overloads for different collection configurations.
Type Parameters
Section titled “Type Parameters”TLoadSchema
Section titled “TLoadSchema”TLoadSchema
extends AnySchema
TRelations
Section titled “TRelations”TRelations
extends Partial
<Record
<keyof Type
<TLoadSchema
>, CollectionRelation
<string
, string
>>>
TLoaderDeps
Section titled “TLoaderDeps”TLoaderDeps
= never
TValidatorDeps
Section titled “TValidatorDeps”TValidatorDeps
= never
Parameters
Section titled “Parameters”config
Section titled “config”Configuration object for the collection
loader
Section titled “loader”Stream
<Type
<TLoadSchema
>, LoadingError
, TLoaderDeps
>
loadingSchema
Section titled “loadingSchema”TLoadSchema
relations?
Section titled “relations?”TRelations
transformedSchema?
Section titled “transformedSchema?”undefined
transformer?
Section titled “transformer?”undefined
validator?
Section titled “validator?”(data
) => Effect
<void
, ValidationError
, TValidatorDeps
>
Returns
Section titled “Returns”Collection
<TLoadSchema
, TLoadSchema
, TRelations
, TLoaderDeps
, never
, TValidatorDeps
>
A fully configured Collection instance
Example
Section titled “Example”// Simple collection without transformationconst users = defineCollection({ loadingSchema: UserSchema, loader: loadUsersFromFiles});
// Collection with transformationconst posts = defineCollection({ loadingSchema: RawPostSchema, transformedSchema: PostSchema, loader: loadRawPosts, transformer: transformPost, validator: validatePost, relations: { authorId: { type: "single", field: "authorId", target: "users" } }});
Call Signature
Section titled “Call Signature”defineCollection<
TLoadSchema
,TRelations
,TLoaderDeps
,TTransformerDeps
,TValidatorDeps
>(config
):Collection
<TLoadSchema
,TLoadSchema
,TRelations
,TLoaderDeps
,TTransformerDeps
,TValidatorDeps
>
Defined in: packages/core/src/cms.ts:223
Factory function to define collections with type-safe configurations. Provides overloads for different collection configurations.
Type Parameters
Section titled “Type Parameters”TLoadSchema
Section titled “TLoadSchema”TLoadSchema
extends AnySchema
TRelations
Section titled “TRelations”TRelations
extends Partial
<Record
<keyof Type
<TLoadSchema
>, CollectionRelation
<string
, string
>>>
TLoaderDeps
Section titled “TLoaderDeps”TLoaderDeps
= never
TTransformerDeps
Section titled “TTransformerDeps”TTransformerDeps
= never
TValidatorDeps
Section titled “TValidatorDeps”TValidatorDeps
= never
Parameters
Section titled “Parameters”config
Section titled “config”Configuration object for the collection
loader
Section titled “loader”Stream
<Type
<TLoadSchema
>, LoadingError
, TLoaderDeps
>
loadingSchema
Section titled “loadingSchema”TLoadSchema
relations?
Section titled “relations?”TRelations
transformedSchema?
Section titled “transformedSchema?”undefined
transformer
Section titled “transformer”(data
) => Effect
<Type
<TLoadSchema
>, TransformationError
, TTransformerDeps
>
validator?
Section titled “validator?”(data
) => Effect
<void
, ValidationError
, TValidatorDeps
>
Returns
Section titled “Returns”Collection
<TLoadSchema
, TLoadSchema
, TRelations
, TLoaderDeps
, TTransformerDeps
, TValidatorDeps
>
A fully configured Collection instance
Example
Section titled “Example”// Simple collection without transformationconst users = defineCollection({ loadingSchema: UserSchema, loader: loadUsersFromFiles});
// Collection with transformationconst posts = defineCollection({ loadingSchema: RawPostSchema, transformedSchema: PostSchema, loader: loadRawPosts, transformer: transformPost, validator: validatePost, relations: { authorId: { type: "single", field: "authorId", target: "users" } }});
Call Signature
Section titled “Call Signature”defineCollection<
TLoadSchema
,TTransformSchema
,TRelations
,TLoaderDeps
,TTransformerDeps
,TValidatorDeps
>(config
):Collection
<TLoadSchema
,TTransformSchema
,TRelations
,TLoaderDeps
,TTransformerDeps
,TValidatorDeps
>
Defined in: packages/core/src/cms.ts:260
Factory function to define collections with type-safe configurations. Provides overloads for different collection configurations.
Type Parameters
Section titled “Type Parameters”TLoadSchema
Section titled “TLoadSchema”TLoadSchema
extends AnySchema
TTransformSchema
Section titled “TTransformSchema”TTransformSchema
extends AnySchema
TRelations
Section titled “TRelations”TRelations
extends Partial
<Record
<keyof Type
<TTransformSchema
>, CollectionRelation
<string
, string
>>>
TLoaderDeps
Section titled “TLoaderDeps”TLoaderDeps
= never
TTransformerDeps
Section titled “TTransformerDeps”TTransformerDeps
= never
TValidatorDeps
Section titled “TValidatorDeps”TValidatorDeps
= never
Parameters
Section titled “Parameters”config
Section titled “config”Configuration object for the collection
loader
Section titled “loader”Stream
<Type
<TLoadSchema
>, LoadingError
, TLoaderDeps
>
loadingSchema
Section titled “loadingSchema”TLoadSchema
relations?
Section titled “relations?”TRelations
transformedSchema
Section titled “transformedSchema”TTransformSchema
transformer
Section titled “transformer”(data
) => Effect
<Type
<TTransformSchema
>, TransformationError
, TTransformerDeps
>
validator?
Section titled “validator?”(data
) => Effect
<void
, ValidationError
, TValidatorDeps
>
Returns
Section titled “Returns”Collection
<TLoadSchema
, TTransformSchema
, TRelations
, TLoaderDeps
, TTransformerDeps
, TValidatorDeps
>
A fully configured Collection instance
Example
Section titled “Example”// Simple collection without transformationconst users = defineCollection({ loadingSchema: UserSchema, loader: loadUsersFromFiles});
// Collection with transformationconst posts = defineCollection({ loadingSchema: RawPostSchema, transformedSchema: PostSchema, loader: loadRawPosts, transformer: transformPost, validator: validatePost, relations: { authorId: { type: "single", field: "authorId", target: "users" } }});