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