extendsEffectSchemaExpression
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Julien Valverdé
2024-05-01 02:37:27 +02:00
parent 98b375b3df
commit a833a96e1a

View File

@@ -1,14 +1,14 @@
import { Schema as S } from "@effect/schema"
import { AbstractClass, Simplify } from "type-fest"
import { Simplify } from "type-fest"
import { Trait, TraitTuple } from "./Trait"
import { TraitExpression } from "./TraitExpression"
import { Extend, StaticMembers } from "./util"
import { Extend } from "./util"
export function extendsEffectSchemaExpression<
Fields extends S.Struct.Fields,
A, I, R, C,
Inherited,
Inherited extends object,
Proto,
const Traits extends readonly Trait<any, any, any, any>[],
@@ -19,20 +19,19 @@ export function extendsEffectSchemaExpression<
>
) {
return <Self>(): (
AbstractClass<
InstanceType<
S.Class<Self, Fields, A, I, R, C, Inherited, Proto>
> &
S.Class<
Self,
Fields,
A, I, R, C,
Simplify<
Extend<TraitTuple.MapImplInstance<Traits>>
Extend<[
Inherited,
...TraitTuple.MapImplInstance<Traits>
]>
>,
ConstructorParameters<S.Class<Self, Fields, A, I, R, C, Inherited, Proto>>
Proto
> &
StaticMembers<
S.Class<Self, Fields, A, I, R, C, Inherited, Proto>
> &
Simplify<
Extend<TraitTuple.MapImplStaticMembers<Traits>>
>