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..dfcb66828 --- /dev/null +++ b/inputfiles/patches/message.kdl @@ -0,0 +1 @@ +interface-mixin MessageEventTarget overrideThis=T typeParameters=T diff --git a/src/build/patches.ts b/src/build/patches.ts index 981e50eb0..f7e932847 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). */ @@ -171,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; }