From 4bae2ca36225d057ef161db74339c540053c929b Mon Sep 17 00:00:00 2001 From: Bashamega Date: Wed, 24 Sep 2025 17:31:37 +0300 Subject: [PATCH 1/3] Support typeParameters and overrideThis --- inputfiles/overridingTypes.jsonc | 8 -------- inputfiles/patches/message.kdl | 1 + src/build/patches.ts | 13 +++++++++++++ 3 files changed, 14 insertions(+), 8 deletions(-) create mode 100644 inputfiles/patches/message.kdl diff --git a/inputfiles/overridingTypes.jsonc b/inputfiles/overridingTypes.jsonc index 4d1d2822b..2db11d245 100644 --- a/inputfiles/overridingTypes.jsonc +++ b/inputfiles/overridingTypes.jsonc @@ -1,14 +1,6 @@ { "mixins": { "mixin": { - "MessageEventTarget": { - "typeParameters": [ - { - "name": "T" - } - ], - "overrideThis": "T" - }, "NavigatorGPU": { "properties": { "property": { diff --git a/inputfiles/patches/message.kdl b/inputfiles/patches/message.kdl new file mode 100644 index 000000000..b582ba567 --- /dev/null +++ b/inputfiles/patches/message.kdl @@ -0,0 +1 @@ +interface MessageEventTarget overrideThis=T typeParameters=T \ No newline at end of file diff --git a/src/build/patches.ts b/src/build/patches.ts index 981e50eb0..4b4fe94f6 100644 --- a/src/build/patches.ts +++ b/src/build/patches.ts @@ -55,6 +55,17 @@ function handleTyped(type: Node): Typed { }; } +function handleTypeParameters(value:Value){ + if(!value) return {}; + return { + typeParameters: [ + { + name: string(value), + } + ] + } +} + /** * Converts patch files in KDL to match the [types](types.d.ts). */ @@ -164,6 +175,8 @@ function handleMixinandInterfaces( "boolean", node.properties?.noInterfaceObject, ), + ...optionalMember("overrideThis", "string", node.properties?.overrideThis), + ...handleTypeParameters(node.properties?.typeParameters), }; return { name, From f908180527a78e64b8fecc1918953219088f2d73 Mon Sep 17 00:00:00 2001 From: Bashamega Date: Wed, 24 Sep 2025 17:38:57 +0300 Subject: [PATCH 2/3] format --- src/build/patches.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/build/patches.ts b/src/build/patches.ts index 4b4fe94f6..984ce9fd3 100644 --- a/src/build/patches.ts +++ b/src/build/patches.ts @@ -55,15 +55,15 @@ function handleTyped(type: Node): Typed { }; } -function handleTypeParameters(value:Value){ - if(!value) return {}; +function handleTypeParameters(value: Value) { + if (!value) return {}; return { typeParameters: [ { name: string(value), - } - ] - } + }, + ], + }; } /** From d58be7f7c4a1b8b9f45ff483da415dc4f975d6d0 Mon Sep 17 00:00:00 2001 From: Bashamega Date: Wed, 24 Sep 2025 17:53:24 +0300 Subject: [PATCH 3/3] Update --- inputfiles/patches/message.kdl | 2 +- src/build/patches.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/inputfiles/patches/message.kdl b/inputfiles/patches/message.kdl index b582ba567..dfcb66828 100644 --- a/inputfiles/patches/message.kdl +++ b/inputfiles/patches/message.kdl @@ -1 +1 @@ -interface MessageEventTarget overrideThis=T typeParameters=T \ No newline at end of file +interface-mixin MessageEventTarget overrideThis=T typeParameters=T diff --git a/src/build/patches.ts b/src/build/patches.ts index 984ce9fd3..f7e932847 100644 --- a/src/build/patches.ts +++ b/src/build/patches.ts @@ -175,8 +175,6 @@ function handleMixinandInterfaces( "boolean", node.properties?.noInterfaceObject, ), - ...optionalMember("overrideThis", "string", node.properties?.overrideThis), - ...handleTypeParameters(node.properties?.typeParameters), }; return { name, @@ -184,6 +182,8 @@ function handleMixinandInterfaces( properties: { property }, methods: { method }, ...optionalMember("extends", "string", node.properties?.extends), + ...optionalMember("overrideThis", "string", node.properties?.overrideThis), + ...handleTypeParameters(node.properties?.typeParameters), ...interfaceObject, } as DeepPartial; }