From 99503357053ccbd4ed317494c5c5cca0d46cade5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Wed, 21 Feb 2024 04:36:59 +0100 Subject: [PATCH] expressesFirst --- src/TraitExpressionBuilder.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/TraitExpressionBuilder.ts b/src/TraitExpressionBuilder.ts index efdfeb9..0fd65d6 100644 --- a/src/TraitExpressionBuilder.ts +++ b/src/TraitExpressionBuilder.ts @@ -105,6 +105,32 @@ export class TraitExpressionBuilder< ) } + expressesFirst< + const T extends Trait< + TraitExpression< + typeof TraitExpression.NullSuperclass, + Trait[] + >, + any, + any, + any + >[] + >( + ...traits: T + ) { + return new TraitExpressionBuilder( + this.expressionSuperclass, + + uniq([ + ...traits.flatMap(trait => [ + ...trait.superExpression.traits, + trait, + ]), + ...this.expressionTraits, + ]) as TraitsUniq<[...SpreadSupertraits, ...Traits]>, + ) + } + build() { return new TraitExpression( this.expressionSuperclass,