Skip to content

Commit e903c46

Browse files
authored
Automate overrideImplements (microsoft#1884)
Co-authored-by: saschanaz <[email protected]>
1 parent 61e18df commit e903c46

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

inputfiles/overridingTypes.jsonc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2526,7 +2526,6 @@
25262526
]
25272527
},
25282528
"Worker": {
2529-
"overrideImplements": ["AbstractWorker", "MessageEventTarget<Worker>"],
25302529
"methods": {
25312530
"method": {
25322531
"postMessage": {
@@ -2620,7 +2619,6 @@
26202619
}
26212620
},
26222621
"MessagePort": {
2623-
"overrideImplements": ["MessageEventTarget<MessagePort>"],
26242622
"methods": {
26252623
"method": {
26262624
"postMessage": {
@@ -2669,7 +2667,6 @@
26692667
}
26702668
},
26712669
"DedicatedWorkerGlobalScope": {
2672-
"overrideImplements": ["AnimationFrameProvider", "MessageEventTarget<DedicatedWorkerGlobalScope>"],
26732670
"methods": {
26742671
"method": {
26752672
"postMessage": {

src/build/emitter.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1209,6 +1209,13 @@ export function emitWebIdl(
12091209
return extendConflictsBaseTypes[iName] ? `${iName}Base` : iName;
12101210
}
12111211

1212+
function processMixinName(mixinName: string) {
1213+
if (allInterfacesMap[mixinName].typeParameters?.length === 1) {
1214+
return `${mixinName}<${i.name}>`;
1215+
}
1216+
return mixinName;
1217+
}
1218+
12121219
const processedIName = processIName(i.name);
12131220

12141221
if (processedIName !== i.name) {
@@ -1227,9 +1234,10 @@ export function emitWebIdl(
12271234
);
12281235

12291236
const finalExtends = [i.extends || "Object"]
1230-
.concat(i.overrideImplements ?? getImplementList(i.name))
1237+
.concat(getImplementList(i.name).map(processMixinName))
12311238
.filter((i) => i !== "Object")
12321239
.map(processIName);
1240+
12331241
if (finalExtends.length) {
12341242
printer.print(` extends ${assertUnique(finalExtends).join(", ")}`);
12351243
}

src/build/types.d.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,6 @@ export interface Interface {
169169
};
170170
constructor?: Constructor;
171171
implements?: string[];
172-
overrideImplements?: string[];
173172
anonymousMethods?: {
174173
method: AnonymousMethod[];
175174
};

0 commit comments

Comments
 (0)