Skip to content

Commit 0009357

Browse files
authored
Support typeParameters and overrideThis on interfaces (#2159)
1 parent 45ff0e4 commit 0009357

File tree

3 files changed

+14
-8
lines changed

3 files changed

+14
-8
lines changed

inputfiles/overridingTypes.jsonc

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
{
22
"mixins": {
33
"mixin": {
4-
"MessageEventTarget": {
5-
"typeParameters": [
6-
{
7-
"name": "T"
8-
}
9-
],
10-
"overrideThis": "T"
11-
},
124
"NavigatorGPU": {
135
"properties": {
146
"property": {

inputfiles/patches/message.kdl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
interface-mixin MessageEventTarget overrideThis=T typeParameters=T

src/build/patches.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,17 @@ function handleTyped(type: Node): Typed {
5555
};
5656
}
5757

58+
function handleTypeParameters(value: Value) {
59+
if (!value) return {};
60+
return {
61+
typeParameters: [
62+
{
63+
name: string(value),
64+
},
65+
],
66+
};
67+
}
68+
5869
/**
5970
* Converts patch files in KDL to match the [types](types.d.ts).
6071
*/
@@ -171,6 +182,8 @@ function handleMixinandInterfaces(
171182
properties: { property },
172183
methods: { method },
173184
...optionalMember("extends", "string", node.properties?.extends),
185+
...optionalMember("overrideThis", "string", node.properties?.overrideThis),
186+
...handleTypeParameters(node.properties?.typeParameters),
174187
...interfaceObject,
175188
} as DeepPartial<Interface>;
176189
}

0 commit comments

Comments
 (0)