From 6e1a202ade58ef5dd713c8ad5904cc78a71de8fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Wed, 28 Feb 2024 01:22:35 +0100 Subject: [PATCH 1/2] ImplStaticThis helper --- src/TraitBuilder.ts | 8 ++++++++ src/lib.ts | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/TraitBuilder.ts b/src/TraitBuilder.ts index abe27ae..219948e 100644 --- a/src/TraitBuilder.ts +++ b/src/TraitBuilder.ts @@ -120,6 +120,14 @@ export namespace TraitBuilder { } +export type ImplStaticThis< + ImplClass extends AbstractClass & { readonly [implSuperSymbol]: true } +> = ( + AbstractClass> & + Omit, typeof implSuperSymbol> +) + + export const trait = new TraitBuilder( new TraitExpression(TraitExpression.NullSuperclass, []), {} as object, diff --git a/src/lib.ts b/src/lib.ts index 6fa058d..5cfa1af 100644 --- a/src/lib.ts +++ b/src/lib.ts @@ -1,4 +1,4 @@ export { Trait, TraitClass, TraitConcreteClass, TraitInstance, TraitStaticMembers, TraitTuple } from "./Trait" -export { TraitBuilder, trait } from "./TraitBuilder" +export { ImplStaticThis, TraitBuilder, trait } from "./TraitBuilder" export { Implements, StaticImplements, TraitExpression, TraitExpressionClass, TraitExpressionConcreteClass, TraitExpressionInstance, TraitExpressionStaticMembers } from "./TraitExpression" export { TraitExpressionBuilder, expression } from "./TraitExpressionBuilder" -- 2.49.1 From 69f1e30e86a96dd45f70493e2d7dce039abfd6e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Wed, 28 Feb 2024 01:23:31 +0100 Subject: [PATCH 2/2] Version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 37bfd3b..f855135 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@thilawyn/traitify-ts", - "version": "0.1.12", + "version": "0.1.13", "type": "module", "publishConfig": { "registry": "https://git.jvalver.de/api/packages/thilawyn/npm/" -- 2.49.1