Skip to content

Commit 14029e6

Browse files
committed
Simplify ElementListTagNameMap
1 parent 0e4ebf4 commit 14029e6

File tree

2 files changed

+6
-187
lines changed

2 files changed

+6
-187
lines changed

TS.fsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -833,12 +833,9 @@ module Emit =
833833
Pt.Printl ""
834834

835835
let EmitElementListTagNameMap () =
836-
Pt.Printl "interface ElementListTagNameMap {"
837-
Pt.IncreaseIndent()
838-
for e in tagNameToEleName do
839-
Pt.Printl "\"%s\": NodeListOf<%s>;" (e.Key.ToLower()) e.Value
840-
Pt.DecreaseIndent()
841-
Pt.Printl "}"
836+
Pt.Printl "type ElementListTagNameMap = {"
837+
Pt.PrintWithAddedIndent "[key in keyof ElementTagNameMap]: NodeListOf<ElementTagNameMap[key]>"
838+
Pt.Printl "};"
842839
Pt.Printl ""
843840

844841
/// Emit overloads for the createEvent method

baselines/dom.generated.d.ts

Lines changed: 3 additions & 181 deletions
Original file line numberDiff line numberDiff line change
@@ -14526,187 +14526,9 @@ interface ElementTagNameMap {
1452614526
"xmp": HTMLPreElement;
1452714527
}
1452814528

14529-
interface ElementListTagNameMap {
14530-
"a": NodeListOf<HTMLAnchorElement>;
14531-
"abbr": NodeListOf<HTMLElement>;
14532-
"acronym": NodeListOf<HTMLElement>;
14533-
"address": NodeListOf<HTMLElement>;
14534-
"applet": NodeListOf<HTMLAppletElement>;
14535-
"area": NodeListOf<HTMLAreaElement>;
14536-
"article": NodeListOf<HTMLElement>;
14537-
"aside": NodeListOf<HTMLElement>;
14538-
"audio": NodeListOf<HTMLAudioElement>;
14539-
"b": NodeListOf<HTMLElement>;
14540-
"base": NodeListOf<HTMLBaseElement>;
14541-
"basefont": NodeListOf<HTMLBaseFontElement>;
14542-
"bdo": NodeListOf<HTMLElement>;
14543-
"big": NodeListOf<HTMLElement>;
14544-
"blockquote": NodeListOf<HTMLQuoteElement>;
14545-
"body": NodeListOf<HTMLBodyElement>;
14546-
"br": NodeListOf<HTMLBRElement>;
14547-
"button": NodeListOf<HTMLButtonElement>;
14548-
"canvas": NodeListOf<HTMLCanvasElement>;
14549-
"caption": NodeListOf<HTMLTableCaptionElement>;
14550-
"center": NodeListOf<HTMLElement>;
14551-
"circle": NodeListOf<SVGCircleElement>;
14552-
"cite": NodeListOf<HTMLElement>;
14553-
"clippath": NodeListOf<SVGClipPathElement>;
14554-
"code": NodeListOf<HTMLElement>;
14555-
"col": NodeListOf<HTMLTableColElement>;
14556-
"colgroup": NodeListOf<HTMLTableColElement>;
14557-
"data": NodeListOf<HTMLDataElement>;
14558-
"datalist": NodeListOf<HTMLDataListElement>;
14559-
"dd": NodeListOf<HTMLElement>;
14560-
"defs": NodeListOf<SVGDefsElement>;
14561-
"del": NodeListOf<HTMLModElement>;
14562-
"desc": NodeListOf<SVGDescElement>;
14563-
"dfn": NodeListOf<HTMLElement>;
14564-
"dir": NodeListOf<HTMLDirectoryElement>;
14565-
"div": NodeListOf<HTMLDivElement>;
14566-
"dl": NodeListOf<HTMLDListElement>;
14567-
"dt": NodeListOf<HTMLElement>;
14568-
"ellipse": NodeListOf<SVGEllipseElement>;
14569-
"em": NodeListOf<HTMLElement>;
14570-
"embed": NodeListOf<HTMLEmbedElement>;
14571-
"feblend": NodeListOf<SVGFEBlendElement>;
14572-
"fecolormatrix": NodeListOf<SVGFEColorMatrixElement>;
14573-
"fecomponenttransfer": NodeListOf<SVGFEComponentTransferElement>;
14574-
"fecomposite": NodeListOf<SVGFECompositeElement>;
14575-
"feconvolvematrix": NodeListOf<SVGFEConvolveMatrixElement>;
14576-
"fediffuselighting": NodeListOf<SVGFEDiffuseLightingElement>;
14577-
"fedisplacementmap": NodeListOf<SVGFEDisplacementMapElement>;
14578-
"fedistantlight": NodeListOf<SVGFEDistantLightElement>;
14579-
"feflood": NodeListOf<SVGFEFloodElement>;
14580-
"fefunca": NodeListOf<SVGFEFuncAElement>;
14581-
"fefuncb": NodeListOf<SVGFEFuncBElement>;
14582-
"fefuncg": NodeListOf<SVGFEFuncGElement>;
14583-
"fefuncr": NodeListOf<SVGFEFuncRElement>;
14584-
"fegaussianblur": NodeListOf<SVGFEGaussianBlurElement>;
14585-
"feimage": NodeListOf<SVGFEImageElement>;
14586-
"femerge": NodeListOf<SVGFEMergeElement>;
14587-
"femergenode": NodeListOf<SVGFEMergeNodeElement>;
14588-
"femorphology": NodeListOf<SVGFEMorphologyElement>;
14589-
"feoffset": NodeListOf<SVGFEOffsetElement>;
14590-
"fepointlight": NodeListOf<SVGFEPointLightElement>;
14591-
"fespecularlighting": NodeListOf<SVGFESpecularLightingElement>;
14592-
"fespotlight": NodeListOf<SVGFESpotLightElement>;
14593-
"fetile": NodeListOf<SVGFETileElement>;
14594-
"feturbulence": NodeListOf<SVGFETurbulenceElement>;
14595-
"fieldset": NodeListOf<HTMLFieldSetElement>;
14596-
"figcaption": NodeListOf<HTMLElement>;
14597-
"figure": NodeListOf<HTMLElement>;
14598-
"filter": NodeListOf<SVGFilterElement>;
14599-
"font": NodeListOf<HTMLFontElement>;
14600-
"footer": NodeListOf<HTMLElement>;
14601-
"foreignobject": NodeListOf<SVGForeignObjectElement>;
14602-
"form": NodeListOf<HTMLFormElement>;
14603-
"frame": NodeListOf<HTMLFrameElement>;
14604-
"frameset": NodeListOf<HTMLFrameSetElement>;
14605-
"g": NodeListOf<SVGGElement>;
14606-
"h1": NodeListOf<HTMLHeadingElement>;
14607-
"h2": NodeListOf<HTMLHeadingElement>;
14608-
"h3": NodeListOf<HTMLHeadingElement>;
14609-
"h4": NodeListOf<HTMLHeadingElement>;
14610-
"h5": NodeListOf<HTMLHeadingElement>;
14611-
"h6": NodeListOf<HTMLHeadingElement>;
14612-
"head": NodeListOf<HTMLHeadElement>;
14613-
"header": NodeListOf<HTMLElement>;
14614-
"hgroup": NodeListOf<HTMLElement>;
14615-
"hr": NodeListOf<HTMLHRElement>;
14616-
"html": NodeListOf<HTMLHtmlElement>;
14617-
"i": NodeListOf<HTMLElement>;
14618-
"iframe": NodeListOf<HTMLIFrameElement>;
14619-
"image": NodeListOf<SVGImageElement>;
14620-
"img": NodeListOf<HTMLImageElement>;
14621-
"input": NodeListOf<HTMLInputElement>;
14622-
"ins": NodeListOf<HTMLModElement>;
14623-
"isindex": NodeListOf<HTMLUnknownElement>;
14624-
"kbd": NodeListOf<HTMLElement>;
14625-
"keygen": NodeListOf<HTMLElement>;
14626-
"label": NodeListOf<HTMLLabelElement>;
14627-
"legend": NodeListOf<HTMLLegendElement>;
14628-
"li": NodeListOf<HTMLLIElement>;
14629-
"line": NodeListOf<SVGLineElement>;
14630-
"lineargradient": NodeListOf<SVGLinearGradientElement>;
14631-
"link": NodeListOf<HTMLLinkElement>;
14632-
"listing": NodeListOf<HTMLPreElement>;
14633-
"map": NodeListOf<HTMLMapElement>;
14634-
"mark": NodeListOf<HTMLElement>;
14635-
"marker": NodeListOf<SVGMarkerElement>;
14636-
"marquee": NodeListOf<HTMLMarqueeElement>;
14637-
"mask": NodeListOf<SVGMaskElement>;
14638-
"menu": NodeListOf<HTMLMenuElement>;
14639-
"meta": NodeListOf<HTMLMetaElement>;
14640-
"metadata": NodeListOf<SVGMetadataElement>;
14641-
"meter": NodeListOf<HTMLMeterElement>;
14642-
"nav": NodeListOf<HTMLElement>;
14643-
"nextid": NodeListOf<HTMLUnknownElement>;
14644-
"nobr": NodeListOf<HTMLElement>;
14645-
"noframes": NodeListOf<HTMLElement>;
14646-
"noscript": NodeListOf<HTMLElement>;
14647-
"object": NodeListOf<HTMLObjectElement>;
14648-
"ol": NodeListOf<HTMLOListElement>;
14649-
"optgroup": NodeListOf<HTMLOptGroupElement>;
14650-
"option": NodeListOf<HTMLOptionElement>;
14651-
"output": NodeListOf<HTMLOutputElement>;
14652-
"p": NodeListOf<HTMLParagraphElement>;
14653-
"param": NodeListOf<HTMLParamElement>;
14654-
"path": NodeListOf<SVGPathElement>;
14655-
"pattern": NodeListOf<SVGPatternElement>;
14656-
"picture": NodeListOf<HTMLPictureElement>;
14657-
"plaintext": NodeListOf<HTMLElement>;
14658-
"polygon": NodeListOf<SVGPolygonElement>;
14659-
"polyline": NodeListOf<SVGPolylineElement>;
14660-
"pre": NodeListOf<HTMLPreElement>;
14661-
"progress": NodeListOf<HTMLProgressElement>;
14662-
"q": NodeListOf<HTMLQuoteElement>;
14663-
"radialgradient": NodeListOf<SVGRadialGradientElement>;
14664-
"rect": NodeListOf<SVGRectElement>;
14665-
"rt": NodeListOf<HTMLElement>;
14666-
"ruby": NodeListOf<HTMLElement>;
14667-
"s": NodeListOf<HTMLElement>;
14668-
"samp": NodeListOf<HTMLElement>;
14669-
"script": NodeListOf<HTMLScriptElement>;
14670-
"section": NodeListOf<HTMLElement>;
14671-
"select": NodeListOf<HTMLSelectElement>;
14672-
"small": NodeListOf<HTMLElement>;
14673-
"source": NodeListOf<HTMLSourceElement>;
14674-
"span": NodeListOf<HTMLSpanElement>;
14675-
"stop": NodeListOf<SVGStopElement>;
14676-
"strike": NodeListOf<HTMLElement>;
14677-
"strong": NodeListOf<HTMLElement>;
14678-
"style": NodeListOf<HTMLStyleElement>;
14679-
"sub": NodeListOf<HTMLElement>;
14680-
"sup": NodeListOf<HTMLElement>;
14681-
"svg": NodeListOf<SVGSVGElement>;
14682-
"switch": NodeListOf<SVGSwitchElement>;
14683-
"symbol": NodeListOf<SVGSymbolElement>;
14684-
"table": NodeListOf<HTMLTableElement>;
14685-
"tbody": NodeListOf<HTMLTableSectionElement>;
14686-
"td": NodeListOf<HTMLTableDataCellElement>;
14687-
"template": NodeListOf<HTMLTemplateElement>;
14688-
"text": NodeListOf<SVGTextElement>;
14689-
"textpath": NodeListOf<SVGTextPathElement>;
14690-
"textarea": NodeListOf<HTMLTextAreaElement>;
14691-
"tfoot": NodeListOf<HTMLTableSectionElement>;
14692-
"th": NodeListOf<HTMLTableHeaderCellElement>;
14693-
"thead": NodeListOf<HTMLTableSectionElement>;
14694-
"time": NodeListOf<HTMLTimeElement>;
14695-
"title": NodeListOf<HTMLTitleElement>;
14696-
"tr": NodeListOf<HTMLTableRowElement>;
14697-
"track": NodeListOf<HTMLTrackElement>;
14698-
"tspan": NodeListOf<SVGTSpanElement>;
14699-
"tt": NodeListOf<HTMLElement>;
14700-
"u": NodeListOf<HTMLElement>;
14701-
"ul": NodeListOf<HTMLUListElement>;
14702-
"use": NodeListOf<SVGUseElement>;
14703-
"var": NodeListOf<HTMLElement>;
14704-
"video": NodeListOf<HTMLVideoElement>;
14705-
"view": NodeListOf<SVGViewElement>;
14706-
"wbr": NodeListOf<HTMLElement>;
14707-
"x-ms-webview": NodeListOf<MSHTMLWebViewElement>;
14708-
"xmp": NodeListOf<HTMLPreElement>;
14709-
}
14529+
type ElementListTagNameMap = {
14530+
[key in keyof ElementTagNameMap]: NodeListOf<ElementTagNameMap[key]>
14531+
};
1471014532

1471114533
declare var Audio: {new(src?: string): HTMLAudioElement; };
1471214534
declare var Image: {new(width?: number, height?: number): HTMLImageElement; };

0 commit comments

Comments
 (0)