TraitBuilder work
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Julien Valverdé
2024-02-16 01:30:04 +01:00
parent 9f2c42db14
commit f37f15e466
2 changed files with 11 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
import { Pipe, Tuples } from "hotscript"
import { AbstractClass, Class } from "type-fest"
import { Trait } from "./Trait"
import { Trait, TraitClass, TraitConcreteClass, TraitInstance } from "./Trait"
import { TraitExpression } from "./TraitExpression"
import { ExtendFn, SimplifyFn, StaticMembers } from "./util"
@@ -109,15 +109,17 @@ export class TraitBuilder<
implement<
ImplClassWithAbstract extends (
Class<Abstract, []> &
SuperStaticAbstract<SuperExpression, StaticAbstract> &
TraitConcreteClass<
Trait<SuperExpression, Abstract, StaticAbstract, ImplClass>
> &
{ _tag: TraitApplierSuperTag }
)
>(
apply: (
Super: (
AbstractClass<Abstract> &
StaticAbstract &
TraitClass<
Trait<SuperExpression, Abstract, StaticAbstract, ImplClass>
> &
{ _tag: TraitApplierSuperTag }
)
) => ImplClassWithAbstract

View File

@@ -1,4 +1,4 @@
import { Trait } from "./Trait"
import { TraitClass } from "./Trait"
import { trait } from "./TraitBuilder"
import { Implements, ImplementsStatic } from "./TraitExpression"
import { expression } from "./TraitExpressionBuilder"
@@ -15,7 +15,7 @@ const PrintsHelloOnNew = trait
})
.build()
type PrintsHelloOnNewClass = Trait.Class<typeof PrintsHelloOnNew>
type PrintsHelloOnNewClass = TraitClass<typeof PrintsHelloOnNew>
const Identifiable = <ID>() => trait
.abstract<{ readonly id: ID }>()
@@ -45,7 +45,7 @@ const StatefulSubscription = trait
})
.build()
type StatefulSubscriptionClass = Trait.Class<typeof StatefulSubscription>
type StatefulSubscriptionClass = TraitClass<typeof StatefulSubscription>
const ActiveStatefulSubscription = expression
.expresses(StatefulSubscription)
@@ -57,7 +57,7 @@ const ActiveStatefulSubscription = expression
})
.build()
type ActiveStatefulSubscriptionClass = Trait.Class<typeof ActiveStatefulSubscription>
type ActiveStatefulSubscriptionClass = TraitClass<typeof ActiveStatefulSubscription>
class TestSuperclass {