0.1.3 (#3)
All checks were successful
continuous-integration/drone/push Build is passing

Co-authored-by: Julien Valverdé <julien.valverde@mailo.com>
Reviewed-on: https://git.jvalver.de/Thilawyn/traitify-ts/pulls/3
This commit was merged in pull request #3.
This commit is contained in:
Julien Valverdé
2024-02-08 20:01:16 +01:00
parent 98fbed09b3
commit c1c3c07524
10 changed files with 93 additions and 111 deletions

View File

@@ -1,17 +1,21 @@
import { Simplify } from "type-fest"
import { Implements, Trait, abstract, expression, trait } from "."
import { Pipe } from "hotscript"
import { Trait, trait } from "./Trait"
import { Implements } from "./TraitExpression"
import { expression } from "./TraitExpressionBuilder"
import { abstract } from "./abstract"
const PrintsHelloOnNew = trait(
abstract(),
Super => class PrintsHelloOnNew extends Super {
static readonly isPrintsHelloOnNew = true
constructor(...args: any[]) {
super(...args)
console.log("Hello!")
}
},
)
type PrintsHelloOnNewClass = Trait.Class<typeof PrintsHelloOnNew>
const Identifiable = <ID>() => trait(
abstract<{ readonly id: ID }>(),
@@ -34,6 +38,7 @@ const StatefulSubscription = trait(
Super => class StatefulSubscription extends Super {},
)
type StatefulSubscriptionClass = Trait.Class<typeof StatefulSubscription>
const ActiveStatefulSubscription = expression
.expresses(StatefulSubscription)
@@ -51,7 +56,7 @@ const ActiveStatefulSubscription = expression
Super => class ActiveStatefulSubscription extends Super {},
)
type T = Trait.Instance<typeof ActiveStatefulSubscription>
type ActiveStatefulSubscriptionClass = Trait.Class<typeof ActiveStatefulSubscription>
class TestSuperclass {