From 891db74032ac45e64301059e655c81f9170cf5e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sun, 4 Feb 2024 22:20:19 +0100 Subject: [PATCH] Moved Trait helper types to a namespace --- src/Trait.ts | 101 +++++++++++++++++----------------- src/TraitExpressionBuilder.ts | 8 +-- src/tests.ts | 2 +- 3 files changed, 56 insertions(+), 55 deletions(-) diff --git a/src/Trait.ts b/src/Trait.ts index 7422207..95719cd 100644 --- a/src/Trait.ts +++ b/src/Trait.ts @@ -39,61 +39,62 @@ export class Trait< ) {} } -export type TraitOwnAbstract = ( - T extends Trait - ? Abstract - : never -) -export interface TraitOwnAbstractFn extends Fn { - return: TraitOwnAbstract -} +export namespace Trait { + export type OwnAbstract = ( + T extends Trait + ? Abstract + : never + ) + export interface OwnAbstractFn extends Fn { + return: Trait.OwnAbstract + } -export type TraitOwnImplClass = ( - T extends Trait - ? ImplClass - : never -) -export interface TraitOwnImplClassFn extends Fn { - return: TraitOwnImplClass -} + export type OwnImplClass = ( + T extends Trait + ? ImplClass + : never + ) + export interface OwnImplClassFn extends Fn { + return: Trait.OwnImplClass + } -export type TraitOwnImplInstance = ( - T extends Trait - ? InstanceType - : never -) -export interface TraitOwnImplInstanceFn extends Fn { - return: TraitOwnImplInstance -} + export type OwnImplInstance = ( + T extends Trait + ? InstanceType + : never + ) + export interface OwnImplInstanceFn extends Fn { + return: Trait.OwnImplInstance + } -export type TraitOwnClass = ( - T extends Trait - ? AddAbstractToImplClass - : never -) -export interface TraitOwnClassFn extends Fn { - return: TraitOwnClass -} + export type OwnClass = ( + T extends Trait + ? AddAbstractToImplClass + : never + ) + export interface OwnClassFn extends Fn { + return: Trait.OwnClass + } -export type TraitOwnInstance = ( - T extends Trait - ? InstanceType< - AddAbstractToImplClass - > - : never -) -export interface TraitOwnInstanceFn extends Fn { - return: TraitOwnInstance -} + export type OwnInstance = ( + T extends Trait + ? InstanceType< + AddAbstractToImplClass + > + : never + ) + export interface OwnInstanceFn extends Fn { + return: Trait.OwnInstance + } - -export type TraitSupertraits = ( - T extends Trait - ? TraitExpressionAllTraits - : never -) -export interface TraitSupertraitsFn extends Fn { - return: TraitSupertraits + export type Supertraits = ( + T extends Trait + ? TraitExpressionAllTraits + : never + ) + export interface SupertraitsFn extends Fn { + return: Trait.Supertraits + } } diff --git a/src/TraitExpressionBuilder.ts b/src/TraitExpressionBuilder.ts index 3974336..bd926d3 100644 --- a/src/TraitExpressionBuilder.ts +++ b/src/TraitExpressionBuilder.ts @@ -1,6 +1,6 @@ import { Call, Fn, Pipe, Tuples } from "hotscript" import { AbstractClass } from "type-fest" -import { Trait, TraitExpression, TraitOwnAbstractFn, TraitOwnImplClassFn, TraitOwnImplInstanceFn, emptyTraitExpression } from "." +import { Trait, TraitExpression, emptyTraitExpression } from "." import { ExtendableFn, StaticMembersFn } from "./util" @@ -87,7 +87,7 @@ type AbstractMembersExtendable< > = ( Call, - ...Call, Traits>, + ...Call, Traits>, ]> ) @@ -97,7 +97,7 @@ type ImplInstanceExtendable< > = ( Call, - ...Call, Traits>, + ...Call, Traits>, ]> ) @@ -107,7 +107,7 @@ type ImplStaticMembersExtendable< > = ( Pipe<[ Super, - ...Call, Traits>, + ...Call, Traits>, ], [ Tuples.Map, ExtendableFn, diff --git a/src/tests.ts b/src/tests.ts index 6a03f21..e225d7f 100644 --- a/src/tests.ts +++ b/src/tests.ts @@ -1,4 +1,4 @@ -import { Implements, abstract, expression, trait } from "." +import { Implements, Trait, abstract, expression, trait } from "." const PrintsHelloOnNew = trait(