Skip to content

Commit 61aa020

Browse files
committed
Refactor TypedParams
1 parent 15447bb commit 61aa020

File tree

6 files changed

+25
-29
lines changed

6 files changed

+25
-29
lines changed

inputfiles/patches/html-autocomplete.kdl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ enum AutoFillCredentialField {
7474
}
7575

7676
typedef OptionalPrefixToken overrideType=#"`${T} ` | """# {
77-
typeParameters T extends=string
77+
typeParameter T extends=string
7878
}
7979

8080
typedef OptionalPostfixToken overrideType=#"` ${T}` | """# {
81-
typeParameters T extends=string
81+
typeParameter T extends=string
8282
}

inputfiles/patches/html.kdl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ interface HTMLTableSectionElement {
3636
}
3737
}
3838

39-
interface-mixin MessageEventTarget overrideThis=T typeParameters=T
39+
interface-mixin MessageEventTarget overrideThis=T typeParameter=T
4040

4141
interface-mixin WindowEventHandlers {
4242
property onunload deprecated="The unload event is not reliable, consider visibilitychange or pagehide events."

inputfiles/patches/indexeddb.kdl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
interface IDBRequest {
2-
typeParameters T default=any
2+
typeParameter T default=any
33
property source {
44
type nullable=#false
55
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
dictionary ReadableStreamReadDoneResult typeParameters=T {
1+
dictionary ReadableStreamReadDoneResult typeParameter=T {
22
member done required=#true overrideType="true"
33
member value required=#true overrideType="T | undefined"
44
}
55

6-
dictionary ReadableStreamReadValueResult typeParameters=T {
6+
dictionary ReadableStreamReadValueResult typeParameter=T {
77
member done required=#true overrideType="false"
88
member value required=#true overrideType="T"
99
}
1010

1111
dictionary UnderlyingSource {
12-
typeParameters R default=any
12+
typeParameter R default=any
1313
member start overrideType="UnderlyingSourceStartCallback<R>"
1414
member pull overrideType="UnderlyingSourcePullCallback<R>"
1515
}

inputfiles/patches/streams.kdl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// https://streams.spec.whatwg.org/#dictdef-underlyingsource
22

33
dictionary UnderlyingDefaultSource {
4-
typeParameters R default=any
4+
typeParameter R default=any
55
member type type=undefined
66
member start overrideType="(controller: ReadableStreamDefaultController<R>) => any"
77
member pull overrideType="(controller: ReadableStreamDefaultController<R>) => void | PromiseLike<void>"

src/build/patches.ts

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,9 @@ function handleTypeParameters(value: Value | Node) {
100100
}
101101
const node = value as Node;
102102
return {
103-
typeParameters: [
104-
{
105-
name: string(node.values[0]),
106-
...optionalMember("default", "string", node.properties?.default),
107-
...optionalMember("extends", "string", node.properties?.extends),
108-
},
109-
],
103+
name: string(node.values[0]),
104+
...optionalMember("default", "string", node.properties?.default),
105+
...optionalMember("extends", "string", node.properties?.extends),
110106
};
111107
}
112108

@@ -207,7 +203,7 @@ function handleMixinAndInterfaces(
207203
const property: Record<string, DeepPartial<Property>> = {};
208204
let method: Record<string, DeepPartial<OverridableMethod>> = {};
209205
let constructor: DeepPartial<OverridableMethod> | undefined;
210-
let typeParameters = {};
206+
const typeParameters = [];
211207

212208
for (const child of node.children) {
213209
switch (child.name) {
@@ -232,8 +228,8 @@ function handleMixinAndInterfaces(
232228
constructor = merge(constructor, c);
233229
break;
234230
}
235-
case "typeParameters": {
236-
typeParameters = handleTypeParameters(child);
231+
case "typeParameter": {
232+
typeParameters.push(handleTypeParameters(child));
237233
break;
238234
}
239235
default:
@@ -242,7 +238,7 @@ function handleMixinAndInterfaces(
242238
}
243239

244240
const interfaceObject = type === "interface" && {
245-
...typeParameters,
241+
...optionalNestedMember("typeParameters", typeParameters, typeParameters),
246242
...(constructor ? { constructor } : {}),
247243
...optionalMember("exposed", "string", node.properties?.exposed),
248244
...optionalMember("deprecated", "string", node.properties?.deprecated),
@@ -270,7 +266,7 @@ function handleMixinAndInterfaces(
270266
"string",
271267
node.properties?.replaceReference,
272268
),
273-
...handleTypeParameters(node.properties?.typeParameters),
269+
...handleTypeParameters(node.properties?.typeParameter),
274270
...interfaceObject,
275271
} as DeepPartial<Interface>;
276272
}
@@ -396,7 +392,7 @@ function handleMethodAndConstructor(
396392
function handleDictionary(child: Node): DeepPartial<Dictionary> {
397393
const name = string(child.values[0]);
398394
const member: Record<string, DeepPartial<Member>> = {};
399-
let typeParameters = {};
395+
const typeParameters = [];
400396

401397
for (const c of child.children) {
402398
switch (c.name) {
@@ -405,8 +401,8 @@ function handleDictionary(child: Node): DeepPartial<Dictionary> {
405401
member[memberName] = handleMember(c);
406402
break;
407403
}
408-
case "typeParameters": {
409-
typeParameters = handleTypeParameters(c);
404+
case "typeParameter": {
405+
typeParameters.push(handleTypeParameters(c));
410406
break;
411407
}
412408
default:
@@ -417,8 +413,8 @@ function handleDictionary(child: Node): DeepPartial<Dictionary> {
417413
return {
418414
name,
419415
members: { member },
420-
...typeParameters,
421-
...handleTypeParameters(child.properties?.typeParameters),
416+
...optionalNestedMember("typeParameters", typeParameters, typeParameters),
417+
...handleTypeParameters(child.properties?.typeParameter),
422418
...optionalMember(
423419
"legacyNamespace",
424420
"string",
@@ -450,14 +446,14 @@ function handleMember(c: Node): DeepPartial<Member> {
450446
*/
451447
function handleTypedef(node: Node): DeepPartial<TypeDef> {
452448
const typeNodes: Node[] = [];
453-
let typeParameters = {};
449+
const typeParameters = [];
454450
for (const child of node.children) {
455451
switch (child.name) {
456452
case "type":
457453
typeNodes.push(child);
458454
break;
459-
case "typeParameters": {
460-
typeParameters = handleTypeParameters(child);
455+
case "typeParameter": {
456+
typeParameters.push(handleTypeParameters(child));
461457
break;
462458
}
463459
default:
@@ -475,7 +471,7 @@ function handleTypedef(node: Node): DeepPartial<TypeDef> {
475471
node.properties?.legacyNamespace,
476472
),
477473
...optionalMember("overrideType", "string", node.properties?.overrideType),
478-
...typeParameters,
474+
...optionalNestedMember("typeParameters", typeParameters, typeParameters),
479475
};
480476
}
481477

0 commit comments

Comments
 (0)