Skip to content

Commit 1cf093c

Browse files
authored
Merge pull request #137 from YuichiNukiyama/parentnode
Add ParentNode interface
2 parents 6c51867 + 56a43b7 commit 1cf093c

File tree

4 files changed

+71
-4
lines changed

4 files changed

+71
-4
lines changed

TS.fsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -662,7 +662,13 @@ let EmitAddedInterface (ai: JsonItems.ItemsType.Root) =
662662
| Some e -> Pt.printl "interface %s extends %s {" ai.Name.Value ai.Extends.Value
663663
| None -> Pt.printl "interface %s {" ai.Name.Value
664664

665-
ai.Properties |> Array.iter (fun p -> Pt.printWithAddedIndent "%s: %s;" p.Name p.Type)
665+
for p in ai.Properties do
666+
let readOnlyModifier =
667+
match p.Readonly with
668+
| Some(true) -> "readonly "
669+
| _ -> ""
670+
Pt.printWithAddedIndent "%s%s: %s;" readOnlyModifier p.Name p.Type
671+
666672
ai.Methods |> Array.collect (fun m -> m.Signatures) |> Array.iter (Pt.printWithAddedIndent "%s;")
667673
ai.Indexer |> Array.collect (fun i -> i.Signatures) |> Array.iter (Pt.printWithAddedIndent "%s;")
668674
Pt.printl "}"

baselines/dom.generated.d.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2289,7 +2289,7 @@ declare var DeviceRotationRate: {
22892289
new(): DeviceRotationRate;
22902290
}
22912291

2292-
interface Document extends Node, GlobalEventHandlers, NodeSelector, DocumentEvent {
2292+
interface Document extends Node, GlobalEventHandlers, NodeSelector, DocumentEvent, ParentNode {
22932293
/**
22942294
* Sets or gets the URL for the current document.
22952295
*/
@@ -3352,7 +3352,7 @@ declare var Document: {
33523352
new(): Document;
33533353
}
33543354

3355-
interface DocumentFragment extends Node, NodeSelector {
3355+
interface DocumentFragment extends Node, NodeSelector, ParentNode {
33563356
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
33573357
}
33583358

@@ -3421,7 +3421,7 @@ declare var EXT_texture_filter_anisotropic: {
34213421
readonly TEXTURE_MAX_ANISOTROPY_EXT: number;
34223422
}
34233423

3424-
interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelector, ChildNode {
3424+
interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelector, ChildNode, ParentNode {
34253425
readonly classList: DOMTokenList;
34263426
className: string;
34273427
readonly clientHeight: number;
@@ -14236,6 +14236,13 @@ interface JsonWebKey {
1423614236
k?: string;
1423714237
}
1423814238

14239+
interface ParentNode {
14240+
readonly children: HTMLCollection;
14241+
readonly firstElementChild: Element;
14242+
readonly lastElementChild: Element;
14243+
readonly childElementCount: number;
14244+
}
14245+
1423914246
declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;
1424014247

1424114248
interface ErrorEventHandler {

inputfiles/addedTypes.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,5 +1133,47 @@
11331133
"interface": "KeyboardEventInit",
11341134
"name": "code?",
11351135
"type": "string"
1136+
},
1137+
{
1138+
"kind": "interface",
1139+
"name": "ParentNode",
1140+
"flavor": "DOM",
1141+
"properties": [
1142+
{
1143+
"name": "children",
1144+
"readonly": true,
1145+
"type": "HTMLCollection"
1146+
},
1147+
{
1148+
"name": "firstElementChild",
1149+
"readonly": true,
1150+
"type": "Element"
1151+
},
1152+
{
1153+
"name": "lastElementChild",
1154+
"readonly": true,
1155+
"type": "Element"
1156+
},
1157+
{
1158+
"name": "childElementCount",
1159+
"readonly": true,
1160+
"type": "number"
1161+
}
1162+
]
1163+
},
1164+
{
1165+
"kind": "extends",
1166+
"baseInterface": "ParentNode",
1167+
"interface": "Element"
1168+
},
1169+
{
1170+
"kind": "extends",
1171+
"baseInterface": "ParentNode",
1172+
"interface": "Document"
1173+
},
1174+
{
1175+
"kind": "extends",
1176+
"baseInterface": "ParentNode",
1177+
"interface": "DocumentFragment"
11361178
}
11371179
]

inputfiles/sample.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,5 +336,17 @@
336336
"kind": "extends",
337337
"baseInterface": "ParentNode",
338338
"interface": "Document"
339+
},
340+
{
341+
"kind": "interface",
342+
"name": "ParentNode",
343+
"flavor": "DOM",
344+
"properties": [
345+
{
346+
"name": "children",
347+
"readonly": true,
348+
"type": "HTMLCollection"
349+
}
350+
]
339351
}
340352
]

0 commit comments

Comments
 (0)