Skip to content

Commit 79b5a01

Browse files
Bashamegasaschanaz
andauthored
Make sure deprecated is always a string (#2271)
Co-authored-by: saschanaz <saschanaz@users.noreply.github.com>
1 parent 9102a50 commit 79b5a01

File tree

8 files changed

+48
-45
lines changed

8 files changed

+48
-45
lines changed

baselines/dom.generated.d.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -947,12 +947,12 @@ interface KeySystemTrackConfiguration {
947947
}
948948

949949
interface KeyboardEventInit extends EventModifierInit {
950-
/** @deprecated */
950+
/** @deprecated `charCode` is inconsistent across environments, consider using `key` instead. */
951951
charCode?: number;
952952
code?: string;
953953
isComposing?: boolean;
954954
key?: string;
955-
/** @deprecated */
955+
/** @deprecated `keyCode` is inconsistent across environments, consider using `key` instead. */
956956
keyCode?: number;
957957
location?: number;
958958
repeat?: boolean;
@@ -9255,7 +9255,7 @@ interface CSSStyleProperties extends CSSStyleDeclarationBase {
92559255
*/
92569256
wordSpacing: string;
92579257
/**
9258-
* @deprecated
9258+
* @deprecated `word-wrap` is a legacy alias of `overflow-wrap`.
92599259
*
92609260
* [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-wrap)
92619261
*/
@@ -39862,7 +39862,7 @@ interface WindowEventHandlers {
3986239862
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unhandledrejection_event) */
3986339863
onunhandledrejection: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;
3986439864
/**
39865-
* @deprecated
39865+
* @deprecated The unload event is not reliable, consider visibilitychange or pagehide events.
3986639866
*
3986739867
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unload_event)
3986839868
*/
@@ -42245,7 +42245,7 @@ declare var onstorage: ((this: Window, ev: StorageEvent) => any) | null;
4224542245
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unhandledrejection_event) */
4224642246
declare var onunhandledrejection: ((this: Window, ev: PromiseRejectionEvent) => any) | null;
4224742247
/**
42248-
* @deprecated
42248+
* @deprecated The unload event is not reliable, consider visibilitychange or pagehide events.
4224942249
*
4225042250
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unload_event)
4225142251
*/

baselines/ts5.5/dom.generated.d.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -944,12 +944,12 @@ interface KeySystemTrackConfiguration {
944944
}
945945

946946
interface KeyboardEventInit extends EventModifierInit {
947-
/** @deprecated */
947+
/** @deprecated `charCode` is inconsistent across environments, consider using `key` instead. */
948948
charCode?: number;
949949
code?: string;
950950
isComposing?: boolean;
951951
key?: string;
952-
/** @deprecated */
952+
/** @deprecated `keyCode` is inconsistent across environments, consider using `key` instead. */
953953
keyCode?: number;
954954
location?: number;
955955
repeat?: boolean;
@@ -9245,7 +9245,7 @@ interface CSSStyleProperties extends CSSStyleDeclarationBase {
92459245
*/
92469246
wordSpacing: string;
92479247
/**
9248-
* @deprecated
9248+
* @deprecated `word-wrap` is a legacy alias of `overflow-wrap`.
92499249
*
92509250
* [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-wrap)
92519251
*/
@@ -39836,7 +39836,7 @@ interface WindowEventHandlers {
3983639836
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unhandledrejection_event) */
3983739837
onunhandledrejection: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;
3983839838
/**
39839-
* @deprecated
39839+
* @deprecated The unload event is not reliable, consider visibilitychange or pagehide events.
3984039840
*
3984139841
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unload_event)
3984239842
*/
@@ -42219,7 +42219,7 @@ declare var onstorage: ((this: Window, ev: StorageEvent) => any) | null;
4221942219
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unhandledrejection_event) */
4222042220
declare var onunhandledrejection: ((this: Window, ev: PromiseRejectionEvent) => any) | null;
4222142221
/**
42222-
* @deprecated
42222+
* @deprecated The unload event is not reliable, consider visibilitychange or pagehide events.
4222342223
*
4222442224
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unload_event)
4222542225
*/

baselines/ts5.6/dom.generated.d.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -944,12 +944,12 @@ interface KeySystemTrackConfiguration {
944944
}
945945

946946
interface KeyboardEventInit extends EventModifierInit {
947-
/** @deprecated */
947+
/** @deprecated `charCode` is inconsistent across environments, consider using `key` instead. */
948948
charCode?: number;
949949
code?: string;
950950
isComposing?: boolean;
951951
key?: string;
952-
/** @deprecated */
952+
/** @deprecated `keyCode` is inconsistent across environments, consider using `key` instead. */
953953
keyCode?: number;
954954
location?: number;
955955
repeat?: boolean;
@@ -9252,7 +9252,7 @@ interface CSSStyleProperties extends CSSStyleDeclarationBase {
92529252
*/
92539253
wordSpacing: string;
92549254
/**
9255-
* @deprecated
9255+
* @deprecated `word-wrap` is a legacy alias of `overflow-wrap`.
92569256
*
92579257
* [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-wrap)
92589258
*/
@@ -39859,7 +39859,7 @@ interface WindowEventHandlers {
3985939859
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unhandledrejection_event) */
3986039860
onunhandledrejection: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;
3986139861
/**
39862-
* @deprecated
39862+
* @deprecated The unload event is not reliable, consider visibilitychange or pagehide events.
3986339863
*
3986439864
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unload_event)
3986539865
*/
@@ -42242,7 +42242,7 @@ declare var onstorage: ((this: Window, ev: StorageEvent) => any) | null;
4224242242
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unhandledrejection_event) */
4224342243
declare var onunhandledrejection: ((this: Window, ev: PromiseRejectionEvent) => any) | null;
4224442244
/**
42245-
* @deprecated
42245+
* @deprecated The unload event is not reliable, consider visibilitychange or pagehide events.
4224642246
*
4224742247
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unload_event)
4224842248
*/

baselines/ts5.9/dom.generated.d.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -944,12 +944,12 @@ interface KeySystemTrackConfiguration {
944944
}
945945

946946
interface KeyboardEventInit extends EventModifierInit {
947-
/** @deprecated */
947+
/** @deprecated `charCode` is inconsistent across environments, consider using `key` instead. */
948948
charCode?: number;
949949
code?: string;
950950
isComposing?: boolean;
951951
key?: string;
952-
/** @deprecated */
952+
/** @deprecated `keyCode` is inconsistent across environments, consider using `key` instead. */
953953
keyCode?: number;
954954
location?: number;
955955
repeat?: boolean;
@@ -9252,7 +9252,7 @@ interface CSSStyleProperties extends CSSStyleDeclarationBase {
92529252
*/
92539253
wordSpacing: string;
92549254
/**
9255-
* @deprecated
9255+
* @deprecated `word-wrap` is a legacy alias of `overflow-wrap`.
92569256
*
92579257
* [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/overflow-wrap)
92589258
*/
@@ -39859,7 +39859,7 @@ interface WindowEventHandlers {
3985939859
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unhandledrejection_event) */
3986039860
onunhandledrejection: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;
3986139861
/**
39862-
* @deprecated
39862+
* @deprecated The unload event is not reliable, consider visibilitychange or pagehide events.
3986339863
*
3986439864
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unload_event)
3986539865
*/
@@ -42242,7 +42242,7 @@ declare var onstorage: ((this: Window, ev: StorageEvent) => any) | null;
4224242242
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unhandledrejection_event) */
4224342243
declare var onunhandledrejection: ((this: Window, ev: PromiseRejectionEvent) => any) | null;
4224442244
/**
42245-
* @deprecated
42245+
* @deprecated The unload event is not reliable, consider visibilitychange or pagehide events.
4224642246
*
4224742247
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unload_event)
4224842248
*/

inputfiles/patches/cssom.kdl

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,13 @@ interface CSSStyleDeclaration \
77
forwardExtends=CSSStyleProperties
88

99
interface CSSStyleProperties replaceReference=CSSStyleDeclaration {
10-
property wordWrap deprecated=#true
11-
12-
// The corresponding standardized property is not supported by
13-
// anyone as of 2024-10.
14-
property webkitLineClamp deprecated=#false
10+
property wordWrap deprecated="`word-wrap` is a legacy alias of `overflow-wrap`."
11+
}
12+
13+
removals {
14+
interface CSSStyleProperties {
15+
// The corresponding standardized property is not supported by
16+
// anyone as of 2024-10.
17+
property webkitLineClamp deprecated=""
18+
}
1519
}

inputfiles/patches/html.kdl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ interface HTMLDocument extends=Document exposed=Window
1212
interface-mixin MessageEventTarget overrideThis=T typeParameters=T
1313

1414
interface-mixin WindowEventHandlers {
15-
// TODO: pass a string instead for deprecated
16-
// The unload event is not reliable, consider visibilitychange or pagehide events
17-
property onunload deprecated=#true
15+
property onunload deprecated="The unload event is not reliable, consider visibilitychange or pagehide events."
1816
}
1917

2018
// Blink and Gecko support precommit but BCD is not updated yet

inputfiles/patches/uievents.kdl

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
dictionary KeyboardEventInit {
2-
// TODO: pass a string instead for deprecated
3-
// charCode is inconsistent across environments, consider using .key instead
4-
member charCode deprecated=#true
5-
// keyCode is inconsistent across environments, consider using .key instead
6-
member keyCode deprecated=#true
2+
member charCode deprecated="`charCode` is inconsistent across environments, consider using `key` instead."
3+
member keyCode deprecated="`keyCode` is inconsistent across environments, consider using `key` instead."
74
}

src/build/patches.ts

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ function handleTypeParameters(value: Value | Node) {
8181
};
8282
}
8383

84-
function undefinedIfEmpty(object: object, output: object) {
85-
return Object.entries(object).length ? output : undefined;
84+
function optionalNestedMember<T>(prop: string, object: object, output: T) {
85+
return Object.entries(object).length ? { [prop]: output } : {};
8686
}
8787

8888
/**
@@ -119,10 +119,12 @@ function convertKDLNodes(nodes: Node[]): DeepPartial<WebIdl> {
119119
}
120120

121121
return {
122-
enums: undefinedIfEmpty(enums, { enum: enums }),
123-
mixins: undefinedIfEmpty(mixin, { mixin }),
124-
interfaces: undefinedIfEmpty(interfaces, { interface: interfaces }),
125-
dictionaries: undefinedIfEmpty(dictionary, { dictionary }),
122+
...optionalNestedMember("enums", enums, { enum: enums }),
123+
...optionalNestedMember("mixins", mixin, { mixin }),
124+
...optionalNestedMember("interfaces", interfaces, {
125+
interface: interfaces,
126+
}),
127+
...optionalNestedMember("dictionaries", dictionary, { dictionary }),
126128
};
127129
}
128130

@@ -202,7 +204,7 @@ function handleMixinAndInterfaces(
202204
};
203205
return {
204206
name,
205-
events: { event },
207+
...optionalNestedMember("events", event, { event }),
206208
properties: { property },
207209
methods: { method },
208210
...optionalMember("extends", "string", node.properties?.extends),
@@ -256,7 +258,7 @@ function handleProperty(child: Node): Partial<Property> {
256258
? handleTyped(typeNode)
257259
: optionalMember("type", "string", child.properties?.type)),
258260
...optionalMember("readonly", "boolean", child.properties?.readonly),
259-
...optionalMember("deprecated", "boolean", child.properties?.deprecated),
261+
...optionalMember("deprecated", "string", child.properties?.deprecated),
260262
};
261263
}
262264

@@ -379,7 +381,7 @@ function handleMember(c: Node): Partial<Member> {
379381
name,
380382
...optionalMember("type", "string", c.properties?.type),
381383
...optionalMember("required", "boolean", c.properties?.required),
382-
...optionalMember("deprecated", "boolean", c.properties?.deprecated),
384+
...optionalMember("deprecated", "string", c.properties?.deprecated),
383385
...optionalMember("overrideType", "string", c.properties?.overrideType),
384386
};
385387
}
@@ -411,16 +413,18 @@ async function readPatchDocument(fileUrl: URL): Promise<Document> {
411413
*/
412414
function convertForRemovals(obj: unknown): unknown {
413415
if (Array.isArray(obj)) {
414-
const result = obj.map(convertForRemovals).filter((v) => v !== undefined);
415-
return result.length === 0 ? null : result;
416+
return obj.map(convertForRemovals).filter((v) => v !== undefined);
416417
}
417418
if (obj && typeof obj === "object") {
418419
const newObj: Record<string, unknown> = {};
419420
for (const [key, value] of Object.entries(obj)) {
420421
if (key !== "name") {
421422
const cleaned = convertForRemovals(value);
422-
if (cleaned !== undefined) {
423+
// (intentionally covers null too)
424+
if (typeof cleaned === "object") {
423425
newObj[key] = cleaned;
426+
} else if (cleaned !== undefined) {
427+
newObj[key] = null;
424428
}
425429
}
426430
}

0 commit comments

Comments
 (0)