0.1.9 (#9)
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/9
This commit was merged in pull request #9.
This commit is contained in:
Julien Valverdé
2024-02-22 01:08:42 +01:00
parent a272fa3b99
commit a74a11f684
3 changed files with 7 additions and 10 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "@thilawyn/traitify-ts", "name": "@thilawyn/traitify-ts",
"version": "0.1.8", "version": "0.1.9",
"type": "module", "type": "module",
"publishConfig": { "publishConfig": {
"registry": "https://git.jvalver.de/api/packages/thilawyn/npm/" "registry": "https://git.jvalver.de/api/packages/thilawyn/npm/"

View File

@@ -45,13 +45,12 @@ export class TraitBuilder<
ImplClass extends AbstractClass<object, []>, ImplClass extends AbstractClass<object, []>,
> { > {
constructor( constructor(
private readonly traitSuperExpression: SuperExpression, protected readonly traitSuperExpression: SuperExpression,
private readonly traitAbstract: Abstract, protected readonly traitAbstract: Abstract,
private readonly traitStaticAbstract: StaticAbstract, protected readonly traitStaticAbstract: StaticAbstract,
private readonly traitApply: (Super: AbstractClass<object>) => ImplClass, protected readonly traitApply: (Super: AbstractClass<object>) => ImplClass,
) {} ) {}
// TODO: consider "implements" as a name?
abstract<A extends Abstract>( abstract<A extends Abstract>(
_: (Super: AbstractClass<Abstract>) => AbstractClass<A, []> _: (Super: AbstractClass<Abstract>) => AbstractClass<A, []>
) { ) {
@@ -63,7 +62,6 @@ export class TraitBuilder<
) )
} }
// TODO: consider "staticImplements" as a name?
staticAbstract<A extends StaticAbstract>( staticAbstract<A extends StaticAbstract>(
_: (Super: AbstractClass<StaticAbstract>) => AbstractClass<A, []> _: (Super: AbstractClass<StaticAbstract>) => AbstractClass<A, []>
) { ) {
@@ -75,7 +73,6 @@ export class TraitBuilder<
) )
} }
// TODO: consider "impl" as a name?
implement< implement<
ImplClassWithAbstract extends ImplSuper<typeof this> // TODO: find a way to set the constraint to concrete classes while keeping the Super arg as an abstract class ImplClassWithAbstract extends ImplSuper<typeof this> // TODO: find a way to set the constraint to concrete classes while keeping the Super arg as an abstract class
>( >(

View File

@@ -64,8 +64,8 @@ export class TraitExpressionBuilder<
const Traits extends Trait<any, any, any, any>[], const Traits extends Trait<any, any, any, any>[],
> { > {
constructor( constructor(
private readonly expressionSuperclass: Superclass, protected readonly expressionSuperclass: Superclass,
private readonly expressionTraits: Traits, protected readonly expressionTraits: Traits,
) {} ) {}
extends< extends<