UNPKG

jsdom

Version:

A JavaScript implementation of many web standards

274 lines (241 loc) 15.3 kB
"use strict"; const xpath = require("../level3/xpath"); // This object defines the mapping between the interface name and the generated interface wrapper code. // Note: The mapping needs to stay as-is in order due to interface evaluation. // We cannot "refactor" this to something less duplicative because that would break bundlers which depend on static // analysis of require()s. const generatedInterfaces = { DOMException: require("../../generated/idl/DOMException.js"), URL: require("whatwg-url/webidl2js-wrapper").URL, URLSearchParams: require("whatwg-url/webidl2js-wrapper").URLSearchParams, EventTarget: require("../../generated/idl/EventTarget"), NamedNodeMap: require("../../generated/idl/NamedNodeMap"), Node: require("../../generated/idl/Node"), Attr: require("../../generated/idl/Attr"), Element: require("../../generated/idl/Element"), DocumentFragment: require("../../generated/idl/DocumentFragment"), DOMImplementation: require("../../generated/idl/DOMImplementation"), Document: require("../../generated/idl/Document"), XMLDocument: require("../../generated/idl/XMLDocument"), CharacterData: require("../../generated/idl/CharacterData"), Text: require("../../generated/idl/Text"), CDATASection: require("../../generated/idl/CDATASection"), ProcessingInstruction: require("../../generated/idl/ProcessingInstruction"), Comment: require("../../generated/idl/Comment"), DocumentType: require("../../generated/idl/DocumentType"), NodeList: require("../../generated/idl/NodeList"), RadioNodeList: require("../../generated/idl/RadioNodeList"), HTMLCollection: require("../../generated/idl/HTMLCollection"), HTMLOptionsCollection: require("../../generated/idl/HTMLOptionsCollection"), DOMStringMap: require("../../generated/idl/DOMStringMap"), DOMTokenList: require("../../generated/idl/DOMTokenList"), StyleSheet: require("../../generated/idl/StyleSheet.js"), StyleSheetList: require("../../generated/idl/StyleSheetList.js"), MediaList: require("../../generated/idl/MediaList.js"), CSSRuleList: require("../../generated/idl/CSSRuleList.js"), CSSRule: require("../../generated/idl/CSSRule.js"), CSSStyleDeclaration: require("../../generated/idl/CSSStyleDeclaration.js"), CSSStyleProperties: require("../../generated/idl/CSSStyleProperties.js"), CSSStyleSheet: require("../../generated/idl/CSSStyleSheet.js"), CSSGroupingRule: require("../../generated/idl/CSSGroupingRule.js"), CSSConditionRule: require("../../generated/idl/CSSConditionRule.js"), CSSStyleRule: require("../../generated/idl/CSSStyleRule.js"), CSSMediaRule: require("../../generated/idl/CSSMediaRule.js"), CSSImportRule: require("../../generated/idl/CSSImportRule.js"), CSSContainerRule: require("../../generated/idl/CSSContainerRule.js"), CSSSupportsRule: require("../../generated/idl/CSSSupportsRule.js"), CSSScopeRule: require("../../generated/idl/CSSScopeRule.js"), CSSLayerBlockRule: require("../../generated/idl/CSSLayerBlockRule.js"), CSSPageRule: require("../../generated/idl/CSSPageRule.js"), CSSCounterStyleRule: require("../../generated/idl/CSSCounterStyleRule.js"), CSSFontFaceRule: require("../../generated/idl/CSSFontFaceRule.js"), CSSKeyframesRule: require("../../generated/idl/CSSKeyframesRule.js"), CSSKeyframeRule: require("../../generated/idl/CSSKeyframeRule.js"), CSSLayerStatementRule: require("../../generated/idl/CSSLayerStatementRule.js"), CSSNamespaceRule: require("../../generated/idl/CSSNamespaceRule.js"), CSSNestedDeclarations: require("../../generated/idl/CSSNestedDeclarations.js"), HTMLElement: require("../../generated/idl/HTMLElement.js"), HTMLHeadElement: require("../../generated/idl/HTMLHeadElement.js"), HTMLTitleElement: require("../../generated/idl/HTMLTitleElement.js"), HTMLBaseElement: require("../../generated/idl/HTMLBaseElement.js"), HTMLLinkElement: require("../../generated/idl/HTMLLinkElement.js"), HTMLMetaElement: require("../../generated/idl/HTMLMetaElement.js"), HTMLStyleElement: require("../../generated/idl/HTMLStyleElement.js"), HTMLBodyElement: require("../../generated/idl/HTMLBodyElement.js"), HTMLHeadingElement: require("../../generated/idl/HTMLHeadingElement.js"), HTMLParagraphElement: require("../../generated/idl/HTMLParagraphElement.js"), HTMLHRElement: require("../../generated/idl/HTMLHRElement.js"), HTMLPreElement: require("../../generated/idl/HTMLPreElement.js"), HTMLUListElement: require("../../generated/idl/HTMLUListElement.js"), HTMLOListElement: require("../../generated/idl/HTMLOListElement.js"), HTMLLIElement: require("../../generated/idl/HTMLLIElement.js"), HTMLMenuElement: require("../../generated/idl/HTMLMenuElement.js"), HTMLDListElement: require("../../generated/idl/HTMLDListElement.js"), HTMLDivElement: require("../../generated/idl/HTMLDivElement.js"), HTMLAnchorElement: require("../../generated/idl/HTMLAnchorElement.js"), HTMLAreaElement: require("../../generated/idl/HTMLAreaElement.js"), HTMLBRElement: require("../../generated/idl/HTMLBRElement.js"), HTMLButtonElement: require("../../generated/idl/HTMLButtonElement.js"), HTMLCanvasElement: require("../../generated/idl/HTMLCanvasElement.js"), HTMLDataElement: require("../../generated/idl/HTMLDataElement.js"), HTMLDataListElement: require("../../generated/idl/HTMLDataListElement.js"), HTMLDetailsElement: require("../../generated/idl/HTMLDetailsElement.js"), HTMLDialogElement: require("../../generated/idl/HTMLDialogElement.js"), HTMLDirectoryElement: require("../../generated/idl/HTMLDirectoryElement.js"), HTMLFieldSetElement: require("../../generated/idl/HTMLFieldSetElement.js"), HTMLFontElement: require("../../generated/idl/HTMLFontElement.js"), HTMLFormElement: require("../../generated/idl/HTMLFormElement.js"), HTMLHtmlElement: require("../../generated/idl/HTMLHtmlElement.js"), HTMLImageElement: require("../../generated/idl/HTMLImageElement.js"), HTMLInputElement: require("../../generated/idl/HTMLInputElement.js"), HTMLLabelElement: require("../../generated/idl/HTMLLabelElement.js"), HTMLLegendElement: require("../../generated/idl/HTMLLegendElement.js"), HTMLMapElement: require("../../generated/idl/HTMLMapElement.js"), HTMLMarqueeElement: require("../../generated/idl/HTMLMarqueeElement.js"), HTMLMediaElement: require("../../generated/idl/HTMLMediaElement.js"), HTMLMeterElement: require("../../generated/idl/HTMLMeterElement.js"), HTMLModElement: require("../../generated/idl/HTMLModElement.js"), HTMLOptGroupElement: require("../../generated/idl/HTMLOptGroupElement.js"), HTMLOptionElement: require("../../generated/idl/HTMLOptionElement.js"), HTMLOutputElement: require("../../generated/idl/HTMLOutputElement.js"), HTMLPictureElement: require("../../generated/idl/HTMLPictureElement.js"), HTMLProgressElement: require("../../generated/idl/HTMLProgressElement.js"), HTMLQuoteElement: require("../../generated/idl/HTMLQuoteElement.js"), HTMLScriptElement: require("../../generated/idl/HTMLScriptElement.js"), HTMLSelectElement: require("../../generated/idl/HTMLSelectElement.js"), HTMLSlotElement: require("../../generated/idl/HTMLSlotElement.js"), HTMLSourceElement: require("../../generated/idl/HTMLSourceElement.js"), HTMLSpanElement: require("../../generated/idl/HTMLSpanElement.js"), HTMLTableCaptionElement: require("../../generated/idl/HTMLTableCaptionElement.js"), HTMLTableCellElement: require("../../generated/idl/HTMLTableCellElement.js"), HTMLTableColElement: require("../../generated/idl/HTMLTableColElement.js"), HTMLTableElement: require("../../generated/idl/HTMLTableElement.js"), HTMLTimeElement: require("../../generated/idl/HTMLTimeElement.js"), HTMLTableRowElement: require("../../generated/idl/HTMLTableRowElement.js"), HTMLTableSectionElement: require("../../generated/idl/HTMLTableSectionElement.js"), HTMLTemplateElement: require("../../generated/idl/HTMLTemplateElement.js"), HTMLTextAreaElement: require("../../generated/idl/HTMLTextAreaElement.js"), HTMLUnknownElement: require("../../generated/idl/HTMLUnknownElement.js"), HTMLFrameElement: require("../../generated/idl/HTMLFrameElement.js"), HTMLFrameSetElement: require("../../generated/idl/HTMLFrameSetElement.js"), HTMLIFrameElement: require("../../generated/idl/HTMLIFrameElement.js"), HTMLEmbedElement: require("../../generated/idl/HTMLEmbedElement.js"), HTMLObjectElement: require("../../generated/idl/HTMLObjectElement.js"), HTMLParamElement: require("../../generated/idl/HTMLParamElement.js"), HTMLVideoElement: require("../../generated/idl/HTMLVideoElement.js"), HTMLAudioElement: require("../../generated/idl/HTMLAudioElement.js"), HTMLTrackElement: require("../../generated/idl/HTMLTrackElement.js"), HTMLFormControlsCollection: require("../../generated/idl/HTMLFormControlsCollection.js"), SVGElement: require("../../generated/idl/SVGElement.js"), SVGGraphicsElement: require("../../generated/idl/SVGGraphicsElement.js"), SVGSVGElement: require("../../generated/idl/SVGSVGElement.js"), SVGGElement: require("../../generated/idl/SVGGElement.js"), SVGDefsElement: require("../../generated/idl/SVGDefsElement.js"), SVGDescElement: require("../../generated/idl/SVGDescElement.js"), SVGMetadataElement: require("../../generated/idl/SVGMetadataElement.js"), SVGTitleElement: require("../../generated/idl/SVGTitleElement.js"), SVGSymbolElement: require("../../generated/idl/SVGSymbolElement.js"), SVGSwitchElement: require("../../generated/idl/SVGSwitchElement.js"), SVGAnimatedPreserveAspectRatio: require("../../generated/idl/SVGAnimatedPreserveAspectRatio"), SVGAnimatedRect: require("../../generated/idl/SVGAnimatedRect"), SVGAnimatedString: require("../../generated/idl/SVGAnimatedString"), SVGNumber: require("../../generated/idl/SVGNumber"), SVGPreserveAspectRatio: require("../../generated/idl/SVGPreserveAspectRatio"), SVGRect: require("../../generated/idl/SVGRect"), SVGStringList: require("../../generated/idl/SVGStringList"), Event: require("../../generated/idl/Event"), BeforeUnloadEvent: require("../../generated/idl/BeforeUnloadEvent"), BlobEvent: require("../../generated/idl/BlobEvent"), CloseEvent: require("../../generated/idl/CloseEvent"), CustomEvent: require("../../generated/idl/CustomEvent"), DeviceOrientationEvent: require("../../generated/idl/DeviceOrientationEvent"), DeviceMotionEvent: require("../../generated/idl/DeviceMotionEvent"), ErrorEvent: require("../../generated/idl/ErrorEvent"), HashChangeEvent: require("../../generated/idl/HashChangeEvent"), MessageEvent: require("../../generated/idl/MessageEvent"), PageTransitionEvent: require("../../generated/idl/PageTransitionEvent"), PopStateEvent: require("../../generated/idl/PopStateEvent"), PromiseRejectionEvent: require("../../generated/idl/PromiseRejectionEvent"), ProgressEvent: require("../../generated/idl/ProgressEvent"), StorageEvent: require("../../generated/idl/StorageEvent"), SubmitEvent: require("../../generated/idl/SubmitEvent"), TransitionEvent: require("../../generated/idl/TransitionEvent"), UIEvent: require("../../generated/idl/UIEvent"), FocusEvent: require("../../generated/idl/FocusEvent"), InputEvent: require("../../generated/idl/InputEvent"), MouseEvent: require("../../generated/idl/MouseEvent"), PointerEvent: require("../../generated/idl/PointerEvent"), KeyboardEvent: require("../../generated/idl/KeyboardEvent"), TouchEvent: require("../../generated/idl/TouchEvent"), CompositionEvent: require("../../generated/idl/CompositionEvent"), WheelEvent: require("../../generated/idl/WheelEvent"), BarProp: require("../../generated/idl/BarProp"), External: require("../../generated/idl/External"), Location: require("../../generated/idl/Location"), History: require("../../generated/idl/History"), Screen: require("../../generated/idl/Screen"), Performance: require("../../generated/idl/Performance"), Navigator: require("../../generated/idl/Navigator"), Crypto: require("../../generated/idl/Crypto"), PluginArray: require("../../generated/idl/PluginArray"), MimeTypeArray: require("../../generated/idl/MimeTypeArray"), Plugin: require("../../generated/idl/Plugin"), MimeType: require("../../generated/idl/MimeType"), FileReader: require("../../generated/idl/FileReader"), Blob: require("../../generated/idl/Blob"), File: require("../../generated/idl/File"), FileList: require("../../generated/idl/FileList"), ValidityState: require("../../generated/idl/ValidityState"), DOMParser: require("../../generated/idl/DOMParser"), XMLSerializer: require("../../generated/idl/XMLSerializer"), FormData: require("../../generated/idl/FormData"), XMLHttpRequestEventTarget: require("../../generated/idl/XMLHttpRequestEventTarget"), XMLHttpRequestUpload: require("../../generated/idl/XMLHttpRequestUpload"), XMLHttpRequest: require("../../generated/idl/XMLHttpRequest"), WebSocket: require("../../generated/idl/WebSocket"), NodeFilter: require("../../generated/idl/NodeFilter"), NodeIterator: require("../../generated/idl/NodeIterator"), TreeWalker: require("../../generated/idl/TreeWalker"), AbstractRange: require("../../generated/idl/AbstractRange"), Range: require("../../generated/idl/Range"), StaticRange: require("../../generated/idl/StaticRange"), Selection: require("../../generated/idl/Selection"), Storage: require("../../generated/idl/Storage"), CustomElementRegistry: require("../../generated/idl/CustomElementRegistry"), ElementInternals: require("../../generated/idl/ElementInternals"), ShadowRoot: require("../../generated/idl/ShadowRoot"), MutationObserver: require("../../generated/idl/MutationObserver"), MutationRecord: require("../../generated/idl/MutationRecord"), Headers: require("../../generated/idl/Headers"), AbortController: require("../../generated/idl/AbortController"), AbortSignal: require("../../generated/idl/AbortSignal"), DeviceMotionEventAcceleration: require("../../generated/idl/DeviceMotionEventAcceleration"), DeviceMotionEventRotationRate: require("../../generated/idl/DeviceMotionEventRotationRate"), DOMRectReadOnly: require("../../generated/idl/DOMRectReadOnly"), DOMRect: require("../../generated/idl/DOMRect"), TextDecoder: require("../../generated/idl/TextDecoder"), TextEncoder: require("../../generated/idl/TextEncoder") }; function install(window, name, interfaceConstructor) { Object.defineProperty(window, name, { configurable: true, writable: true, value: interfaceConstructor }); } exports.installInterfaces = (window, globalNames) => { // Install generated interface. for (const generatedInterface of Object.values(generatedInterfaces)) { generatedInterface.install(window, globalNames); } // Install legacy HTMLDocument interface // https://html.spec.whatwg.org/#htmldocument install(window, "HTMLDocument", window.Document); // https://webidl.spec.whatwg.org/#es-DOMException-specialness Object.setPrototypeOf(window.DOMException.prototype, window.Error.prototype); xpath(window); }; // Returns an interface webidl2js wrapper given its an interface name. exports.getInterfaceWrapper = name => { return generatedInterfaces[name]; };