Trait refactoring
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Julien Valverdé
2024-02-19 17:26:44 +01:00
parent ec82537380
commit 7c4e754b24
2 changed files with 32 additions and 51 deletions

View File

@@ -1,16 +1,16 @@
import { AbstractClass, Class, Simplify } from "type-fest"
import { Trait, TraitInstance, TraitStaticMembers, Traits } from "./Trait"
import { Trait, TraitInstance, TraitStaticMembers, TraitTuple } from "./Trait"
import { TraitBuilder } from "./TraitBuilder"
import { ExtendPlain, StaticMembers } from "./util"
export class TraitExpression<
Superclass extends AbstractClass<object>,
const T extends Trait<any, any, any, any>[],
Superclass extends AbstractClass<object>,
const Traits extends Trait<any, any, any, any>[],
> {
constructor(
readonly superclass: Superclass,
readonly traits: T,
readonly traits: Traits,
) {}
get extends(): (
@@ -18,7 +18,7 @@ export class TraitExpression<
Simplify<
ExtendPlain<[
InstanceType<Superclass>,
...Traits.MapImplInstance<T>,
...TraitTuple.MapImplInstance<Traits>,
]>
>,
@@ -28,7 +28,7 @@ export class TraitExpression<
Simplify<
ExtendPlain<[
StaticMembers<Superclass>,
...Traits.MapImplStaticMembers<T>,
...TraitTuple.MapImplStaticMembers<Traits>,
]>
>
) {
@@ -49,19 +49,19 @@ export class TraitExpression<
This,
Simplify<
ExtendPlain<Traits.MapAbstract<T>>
ExtendPlain<TraitTuple.MapAbstract<Traits>>
>,
Simplify<
ExtendPlain<Traits.MapStaticAbstract<T>>
ExtendPlain<TraitTuple.MapStaticAbstract<Traits>>
>,
AbstractClass<
Simplify<
ExtendPlain<Traits.MapImplInstance<T>>
ExtendPlain<TraitTuple.MapImplInstance<Traits>>
>
> &
Simplify<
ExtendPlain<Traits.MapImplStaticMembers<T>>
ExtendPlain<TraitTuple.MapImplStaticMembers<Traits>>
>
>(
this,
@@ -97,7 +97,7 @@ export type Implements<
> = (
Simplify<
ExtendPlain<
Traits.MapAbstract<
TraitTuple.MapAbstract<
TraitExpression.Traits<Exp>
>
>
@@ -109,7 +109,7 @@ export type ImplementsStatic<
> = (
Simplify<
ExtendPlain<
Traits.MapStaticAbstract<
TraitTuple.MapStaticAbstract<
TraitExpression.Traits<Exp>
>
>