18 lines
472 B
TypeScript
18 lines
472 B
TypeScript
import { Schema as S } from "@effect/schema"
|
|
import type { HasFields } from "./util"
|
|
|
|
|
|
export const Class = S.Class as <Self>(identifier: string) =>
|
|
<Fields extends S.Struct.Fields>(
|
|
fieldsOr: Fields | HasFields<Fields>,
|
|
annotations?: S.Annotations.Schema<Self>,
|
|
) => S.Class<
|
|
Self,
|
|
Fields,
|
|
S.Struct.Encoded<Fields>,
|
|
S.Struct.Context<Fields>,
|
|
S.Struct.Constructor<Fields>,
|
|
{},
|
|
{}
|
|
>
|