From cf82cb668372d6e9aad5cd7e2235bb1973b25f37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Tue, 6 Feb 2024 02:21:05 +0100 Subject: [PATCH] Trait helpers --- src/Trait.ts | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/Trait.ts b/src/Trait.ts index 8e0d198..6d91e3b 100644 --- a/src/Trait.ts +++ b/src/Trait.ts @@ -1,7 +1,7 @@ -import { Fn } from "hotscript" +import { Fn, Pipe, Tuples } from "hotscript" import { AbstractClass, Class, Opaque } from "type-fest" import { AbstractTag, TraitExpression, emptyTraitExpression } from "." -import { StaticMembers } from "./util" +import { ExtendFn, SimplifyFn, StaticMembers } from "./util" export type AddAbstractToImplClass< @@ -104,6 +104,26 @@ export namespace Trait { export interface SupertraitsFn extends Fn { return: Trait.Supertraits } + + export type Class = ( + AbstractClass< + Trait.Instance, + any[] + > & + Pipe, [ + Tuples.Map, + ExtendFn, + SimplifyFn, + ]> + ) + + export type Instance = ( + Pipe, [ + Tuples.Map, + ExtendFn, + SimplifyFn, + ]> + ) }