Skip to content

defineCollection

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.

TLoadSchema extends AnySchema

TRelations extends Partial<Record<keyof Type<TLoadSchema>, CollectionRelation<string, string>>>

TLoaderDeps = never

TValidatorDeps = never

Configuration object for the collection

Stream<Type<TLoadSchema>, LoadingError, TLoaderDeps>

TLoadSchema

TRelations

undefined

undefined

(data) => Effect<void, ValidationError, TValidatorDeps>

Collection<TLoadSchema, TLoadSchema, TRelations, TLoaderDeps, never, TValidatorDeps>

A fully configured Collection instance

// Simple collection without transformation
const users = defineCollection({
loadingSchema: UserSchema,
loader: loadUsersFromFiles
});
// Collection with transformation
const posts = defineCollection({
loadingSchema: RawPostSchema,
transformedSchema: PostSchema,
loader: loadRawPosts,
transformer: transformPost,
validator: validatePost,
relations: {
authorId: { type: "single", field: "authorId", target: "users" }
}
});

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.

TLoadSchema extends AnySchema

TRelations extends Partial<Record<keyof Type<TLoadSchema>, CollectionRelation<string, string>>>

TLoaderDeps = never

TTransformerDeps = never

TValidatorDeps = never

Configuration object for the collection

Stream<Type<TLoadSchema>, LoadingError, TLoaderDeps>

TLoadSchema

TRelations

undefined

(data) => Effect<Type<TLoadSchema>, TransformationError, TTransformerDeps>

(data) => Effect<void, ValidationError, TValidatorDeps>

Collection<TLoadSchema, TLoadSchema, TRelations, TLoaderDeps, TTransformerDeps, TValidatorDeps>

A fully configured Collection instance

// Simple collection without transformation
const users = defineCollection({
loadingSchema: UserSchema,
loader: loadUsersFromFiles
});
// Collection with transformation
const posts = defineCollection({
loadingSchema: RawPostSchema,
transformedSchema: PostSchema,
loader: loadRawPosts,
transformer: transformPost,
validator: validatePost,
relations: {
authorId: { type: "single", field: "authorId", target: "users" }
}
});

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.

TLoadSchema extends AnySchema

TTransformSchema extends AnySchema

TRelations extends Partial<Record<keyof Type<TTransformSchema>, CollectionRelation<string, string>>>

TLoaderDeps = never

TTransformerDeps = never

TValidatorDeps = never

Configuration object for the collection

Stream<Type<TLoadSchema>, LoadingError, TLoaderDeps>

TLoadSchema

TRelations

TTransformSchema

(data) => Effect<Type<TTransformSchema>, TransformationError, TTransformerDeps>

(data) => Effect<void, ValidationError, TValidatorDeps>

Collection<TLoadSchema, TTransformSchema, TRelations, TLoaderDeps, TTransformerDeps, TValidatorDeps>

A fully configured Collection instance

// Simple collection without transformation
const users = defineCollection({
loadingSchema: UserSchema,
loader: loadUsersFromFiles
});
// Collection with transformation
const posts = defineCollection({
loadingSchema: RawPostSchema,
transformedSchema: PostSchema,
loader: loadRawPosts,
transformer: transformPost,
validator: validatePost,
relations: {
authorId: { type: "single", field: "authorId", target: "users" }
}
});