Skip to content

Commit 369d9d3

Browse files
samestepsaschanaz
andauthored
Generate links to MDN docs (#1526)
Co-authored-by: saschanaz <[email protected]>
1 parent 513aae2 commit 369d9d3

14 files changed

+17885
-2036
lines changed

baselines/audioworklet.generated.d.ts

Lines changed: 461 additions & 63 deletions
Large diffs are not rendered by default.

baselines/audioworklet.iterable.generated.d.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
/////////////////////////////
44

55
interface MessageEvent<T = any> {
6-
/** @deprecated */
6+
/**
7+
* @deprecated
8+
*
9+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/initMessageEvent)
10+
*/
711
initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: Iterable<MessagePort>): void;
812
}
913

baselines/dom.generated.d.ts

Lines changed: 9609 additions & 1169 deletions
Large diffs are not rendered by default.

baselines/dom.iterable.generated.d.ts

Lines changed: 82 additions & 3 deletions
Large diffs are not rendered by default.

baselines/serviceworker.generated.d.ts

Lines changed: 2436 additions & 255 deletions
Large diffs are not rendered by default.

baselines/serviceworker.iterable.generated.d.ts

Lines changed: 71 additions & 2 deletions
Large diffs are not rendered by default.

baselines/sharedworker.generated.d.ts

Lines changed: 2440 additions & 261 deletions
Large diffs are not rendered by default.

baselines/sharedworker.iterable.generated.d.ts

Lines changed: 71 additions & 2 deletions
Large diffs are not rendered by default.

baselines/webworker.generated.d.ts

Lines changed: 2617 additions & 277 deletions
Large diffs are not rendered by default.

baselines/webworker.iterable.generated.d.ts

Lines changed: 71 additions & 2 deletions
Large diffs are not rendered by default.

src/build.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ import { merge, resolveExposure, arrayToMap } from "./build/helpers.js";
44
import { emitWebIdl } from "./build/emitter.js";
55
import { convert } from "./build/widlprocess.js";
66
import { getExposedTypes } from "./build/expose.js";
7-
import { getDeprecationData, getRemovalData } from "./build/bcd.js";
7+
import {
8+
getDeprecationData,
9+
getDocsData,
10+
getRemovalData,
11+
} from "./build/bcd.js";
812
import { getInterfaceElementMergeData } from "./build/webref/elements.js";
913
import { getWebidls } from "./build/webref/idl.js";
1014
import jsonc from "jsonc-parser";
@@ -253,6 +257,7 @@ async function emitDom() {
253257

254258
webidl = merge(webidl, getDeprecationData(webidl));
255259
webidl = merge(webidl, getRemovalData(webidl));
260+
webidl = merge(webidl, getDocsData(webidl));
256261
webidl = prune(webidl, removedItems);
257262
webidl = mergeApiDescriptions(webidl, documentationFromMDN);
258263
webidl = merge(webidl, addedItems);

src/build/bcd.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,11 @@ export function getDeprecationData(webidl: Browser.WebIdl): Browser.WebIdl {
7676
}
7777
}) as Browser.WebIdl;
7878
}
79+
80+
export function getDocsData(webidl: Browser.WebIdl): Browser.WebIdl {
81+
return mapToBcdCompat(webidl, ({ compat }) => {
82+
if (compat?.mdn_url) {
83+
return { mdnUrl: compat.mdn_url };
84+
}
85+
}) as Browser.WebIdl;
86+
}

src/build/emitter.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,7 @@ export function emitWebIdl(
841841
comment?: string;
842842
deprecated?: boolean | string;
843843
secureContext?: boolean;
844+
mdnUrl?: string;
844845
},
845846
print: (s: string) => void
846847
) {
@@ -857,6 +858,10 @@ export function emitWebIdl(
857858
if (entity.secureContext) {
858859
comments.push("Available only in secure contexts.");
859860
}
861+
if (entity.mdnUrl) {
862+
if (comments.length > 0) comments.push("");
863+
comments.push(`[MDN Reference](${entity.mdnUrl})`);
864+
}
860865

861866
if (comments.length > 1) {
862867
print("/**");

src/build/types.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ export interface Property extends Typed {
5959
deprecated?: boolean;
6060
exposed?: string;
6161
secureContext?: boolean;
62+
mdnUrl?: string;
6263
}
6364

6465
export interface Event {
@@ -88,6 +89,7 @@ export interface AnonymousMethod {
8889
deprecated?: boolean;
8990
signature: Signature[];
9091
secureContext?: boolean;
92+
mdnUrl?: string;
9193
}
9294

9395
export interface Method extends AnonymousMethod {
@@ -194,6 +196,7 @@ export interface Interface {
194196
};
195197
deprecated?: boolean | string;
196198
secureContext?: boolean;
199+
mdnUrl?: string;
197200
transferable?: boolean;
198201
}
199202

0 commit comments

Comments
 (0)