This commit is contained in:
@@ -1,8 +1,14 @@
|
|||||||
import { Schema as S } from "@effect/schema"
|
import { Schema as S } from "@effect/schema"
|
||||||
import { Simplify } from "type-fest"
|
import { AbstractClass, AbstractConstructor, Simplify } from "type-fest"
|
||||||
import { Trait, TraitTuple } from "../Trait"
|
import { Trait, TraitTuple } from "../Trait"
|
||||||
import { StaticImplements, TraitExpressionLike } from "../TraitExpression"
|
import { StaticImplements, TraitExpressionLike } from "../TraitExpression"
|
||||||
import { Extend } from "../util"
|
import { Extend, StaticMembers } from "../util"
|
||||||
|
import { Types } from "effect"
|
||||||
|
|
||||||
|
|
||||||
|
type RequiredKeys<T> = {
|
||||||
|
[K in keyof T]-?: {} extends Pick<T, K> ? never : K
|
||||||
|
}[keyof T]
|
||||||
|
|
||||||
|
|
||||||
export class EffectSchemaTraitExpression<
|
export class EffectSchemaTraitExpression<
|
||||||
@@ -26,6 +32,18 @@ implements TraitExpressionLike<
|
|||||||
|
|
||||||
|
|
||||||
extends<Self>(): (
|
extends<Self>(): (
|
||||||
|
AbstractConstructor<
|
||||||
|
S.Struct.Type<Fields> &
|
||||||
|
Omit<Inherited, keyof Fields> &
|
||||||
|
Proto,
|
||||||
|
|
||||||
|
[
|
||||||
|
props: RequiredKeys<C> extends never ? void | {} : Types.Simplify<C>,
|
||||||
|
disableValidation?: boolean | undefined
|
||||||
|
]
|
||||||
|
> &
|
||||||
|
|
||||||
|
StaticMembers<
|
||||||
S.Class<
|
S.Class<
|
||||||
Self,
|
Self,
|
||||||
Fields,
|
Fields,
|
||||||
@@ -37,6 +55,7 @@ implements TraitExpressionLike<
|
|||||||
]>
|
]>
|
||||||
>,
|
>,
|
||||||
Proto
|
Proto
|
||||||
|
>
|
||||||
> &
|
> &
|
||||||
|
|
||||||
Simplify<
|
Simplify<
|
||||||
|
|||||||
Reference in New Issue
Block a user