happy-dom 16.8.0 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/PropertySymbol.cjs +13 -1
- package/cjs/PropertySymbol.cjs.map +1 -1
- package/cjs/PropertySymbol.d.ts +12 -0
- package/cjs/PropertySymbol.d.ts.map +1 -1
- package/cjs/async-task-manager/AsyncTaskManager.cjs +67 -18
- package/cjs/async-task-manager/AsyncTaskManager.cjs.map +1 -1
- package/cjs/async-task-manager/AsyncTaskManager.d.ts +5 -0
- package/cjs/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
- package/cjs/browser/BrowserSettingsFactory.cjs +4 -0
- package/cjs/browser/BrowserSettingsFactory.cjs.map +1 -1
- package/cjs/browser/BrowserSettingsFactory.d.ts.map +1 -1
- package/cjs/browser/DefaultBrowserSettings.cjs +3 -0
- package/cjs/browser/DefaultBrowserSettings.cjs.map +1 -1
- package/cjs/browser/DefaultBrowserSettings.d.ts.map +1 -1
- package/cjs/browser/types/IBrowserSettings.d.ts +6 -0
- package/cjs/browser/types/IBrowserSettings.d.ts.map +1 -1
- package/cjs/browser/types/IOptionalBrowserSettings.d.ts +6 -0
- package/cjs/browser/types/IOptionalBrowserSettings.d.ts.map +1 -1
- package/cjs/browser/utilities/BrowserFrameNavigator.cjs.map +1 -1
- package/cjs/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
- package/cjs/dom/DOMTokenList.cjs +7 -4
- package/cjs/dom/DOMTokenList.cjs.map +1 -1
- package/cjs/dom/DOMTokenList.d.ts +5 -3
- package/cjs/dom/DOMTokenList.d.ts.map +1 -1
- package/cjs/event/EventTarget.cjs +31 -5
- package/cjs/event/EventTarget.cjs.map +1 -1
- package/cjs/event/EventTarget.d.ts.map +1 -1
- package/cjs/fetch/Fetch.cjs +67 -13
- package/cjs/fetch/Fetch.cjs.map +1 -1
- package/cjs/fetch/Fetch.d.ts +3 -0
- package/cjs/fetch/Fetch.d.ts.map +1 -1
- package/cjs/fetch/Request.cjs +119 -27
- package/cjs/fetch/Request.cjs.map +1 -1
- package/cjs/fetch/Request.d.ts +65 -9
- package/cjs/fetch/Request.d.ts.map +1 -1
- package/cjs/fetch/ResourceFetch.cjs +91 -13
- package/cjs/fetch/ResourceFetch.cjs.map +1 -1
- package/cjs/fetch/ResourceFetch.d.ts +21 -11
- package/cjs/fetch/ResourceFetch.d.ts.map +1 -1
- package/cjs/fetch/SyncFetch.cjs +36 -7
- package/cjs/fetch/SyncFetch.cjs.map +1 -1
- package/cjs/fetch/SyncFetch.d.ts.map +1 -1
- package/cjs/fetch/preload/PreloadEntry.cjs +44 -0
- package/cjs/fetch/preload/PreloadEntry.cjs.map +1 -0
- package/cjs/fetch/preload/PreloadEntry.d.ts +26 -0
- package/cjs/fetch/preload/PreloadEntry.d.ts.map +1 -0
- package/cjs/fetch/preload/PreloadUtility.cjs +29 -0
- package/cjs/fetch/preload/PreloadUtility.cjs.map +1 -0
- package/cjs/fetch/preload/PreloadUtility.d.ts +26 -0
- package/cjs/fetch/preload/PreloadUtility.d.ts.map +1 -0
- package/cjs/fetch/types/IRequestInit.d.ts +2 -0
- package/cjs/fetch/types/IRequestInit.d.ts.map +1 -1
- package/cjs/fetch/types/IRequestMode.cjs +3 -0
- package/cjs/fetch/types/IRequestMode.cjs.map +1 -0
- package/cjs/fetch/types/IRequestMode.d.ts +3 -0
- package/cjs/fetch/types/IRequestMode.d.ts.map +1 -0
- package/cjs/fetch/utilities/FetchRequestReferrerUtility.cjs +1 -1
- package/cjs/fetch/utilities/FetchRequestReferrerUtility.cjs.map +1 -1
- package/cjs/module/CSSModule.cjs +47 -0
- package/cjs/module/CSSModule.cjs.map +1 -0
- package/cjs/module/CSSModule.d.ts +34 -0
- package/cjs/module/CSSModule.d.ts.map +1 -0
- package/cjs/module/ECMAScriptModule.cjs +157 -0
- package/cjs/module/ECMAScriptModule.cjs.map +1 -0
- package/cjs/module/ECMAScriptModule.d.ts +36 -0
- package/cjs/module/ECMAScriptModule.d.ts.map +1 -0
- package/cjs/module/ECMAScriptModuleCompiler.cjs +550 -0
- package/cjs/module/ECMAScriptModuleCompiler.cjs.map +1 -0
- package/cjs/module/ECMAScriptModuleCompiler.d.ts +31 -0
- package/cjs/module/ECMAScriptModuleCompiler.d.ts.map +1 -0
- package/cjs/module/IECMAScriptModuleCompiledResult.cjs +3 -0
- package/cjs/module/IECMAScriptModuleCompiledResult.cjs.map +1 -0
- package/cjs/module/IECMAScriptModuleCompiledResult.d.ts +21 -0
- package/cjs/module/IECMAScriptModuleCompiledResult.d.ts.map +1 -0
- package/cjs/module/IECMAScriptModuleImport.cjs +3 -0
- package/cjs/module/IECMAScriptModuleImport.cjs.map +1 -0
- package/cjs/module/IECMAScriptModuleImport.d.ts +5 -0
- package/cjs/module/IECMAScriptModuleImport.d.ts.map +1 -0
- package/cjs/module/IModule.cjs +3 -0
- package/cjs/module/IModule.cjs.map +1 -0
- package/cjs/module/IModule.d.ts +21 -0
- package/cjs/module/IModule.d.ts.map +1 -0
- package/cjs/module/IModuleImportMap.cjs +3 -0
- package/cjs/module/IModuleImportMap.cjs.map +1 -0
- package/cjs/module/IModuleImportMap.d.ts +10 -0
- package/cjs/module/IModuleImportMap.d.ts.map +1 -0
- package/cjs/module/IModuleImportMapRule.cjs +3 -0
- package/cjs/module/IModuleImportMapRule.cjs.map +1 -0
- package/cjs/module/IModuleImportMapRule.d.ts +5 -0
- package/cjs/module/IModuleImportMapRule.d.ts.map +1 -0
- package/cjs/module/IModuleImportMapScope.cjs +3 -0
- package/cjs/module/IModuleImportMapScope.cjs.map +1 -0
- package/cjs/module/IModuleImportMapScope.d.ts +6 -0
- package/cjs/module/IModuleImportMapScope.d.ts.map +1 -0
- package/cjs/module/JSONModule.cjs +52 -0
- package/cjs/module/JSONModule.cjs.map +1 -0
- package/cjs/module/JSONModule.d.ts +33 -0
- package/cjs/module/JSONModule.d.ts.map +1 -0
- package/cjs/module/ModuleFactory.cjs +136 -0
- package/cjs/module/ModuleFactory.cjs.map +1 -0
- package/cjs/module/ModuleFactory.d.ts +33 -0
- package/cjs/module/ModuleFactory.d.ts.map +1 -0
- package/cjs/module/ModuleURLUtility.cjs +67 -0
- package/cjs/module/ModuleURLUtility.cjs.map +1 -0
- package/cjs/module/ModuleURLUtility.d.ts +17 -0
- package/cjs/module/ModuleURLUtility.d.ts.map +1 -0
- package/cjs/module/UnresolvedModule.cjs +70 -0
- package/cjs/module/UnresolvedModule.cjs.map +1 -0
- package/cjs/module/UnresolvedModule.d.ts +43 -0
- package/cjs/module/UnresolvedModule.d.ts.map +1 -0
- package/cjs/nodes/document/Document.cjs +1 -0
- package/cjs/nodes/document/Document.cjs.map +1 -1
- package/cjs/nodes/document/Document.d.ts +2 -0
- package/cjs/nodes/document/Document.d.ts.map +1 -1
- package/cjs/nodes/element/Element.cjs +21 -5
- package/cjs/nodes/element/Element.cjs.map +1 -1
- package/cjs/nodes/element/Element.d.ts +6 -0
- package/cjs/nodes/element/Element.d.ts.map +1 -1
- package/cjs/nodes/element/NamedNodeMap.cjs +1 -0
- package/cjs/nodes/element/NamedNodeMap.cjs.map +1 -1
- package/cjs/nodes/element/NamedNodeMap.d.ts.map +1 -1
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs +8 -0
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts +6 -0
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
- package/cjs/nodes/html-area-element/HTMLAreaElement.cjs +8 -0
- package/cjs/nodes/html-area-element/HTMLAreaElement.cjs.map +1 -1
- package/cjs/nodes/html-area-element/HTMLAreaElement.d.ts +6 -0
- package/cjs/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.cjs +3 -0
- package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +7 -3
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
- package/cjs/nodes/html-link-element/HTMLLinkElement.cjs +147 -19
- package/cjs/nodes/html-link-element/HTMLLinkElement.cjs.map +1 -1
- package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts +8 -2
- package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/HTMLMediaElement.cjs +8 -0
- package/cjs/nodes/html-media-element/HTMLMediaElement.cjs.map +1 -1
- package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts +6 -0
- package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
- package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +380 -46
- package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
- package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +80 -0
- package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.cjs +0 -1
- package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.cjs.map +1 -1
- package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.d.ts +0 -3
- package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.d.ts.map +1 -1
- package/cjs/utilities/AttributeUtility.cjs +36 -0
- package/cjs/utilities/AttributeUtility.cjs.map +1 -0
- package/cjs/utilities/AttributeUtility.d.ts +18 -0
- package/cjs/utilities/AttributeUtility.d.ts.map +1 -0
- package/cjs/window/BrowserWindow.cjs +73 -6
- package/cjs/window/BrowserWindow.cjs.map +1 -1
- package/cjs/window/BrowserWindow.d.ts +14 -0
- package/cjs/window/BrowserWindow.d.ts.map +1 -1
- package/lib/PropertySymbol.d.ts +12 -0
- package/lib/PropertySymbol.d.ts.map +1 -1
- package/lib/PropertySymbol.js +12 -0
- package/lib/PropertySymbol.js.map +1 -1
- package/lib/async-task-manager/AsyncTaskManager.d.ts +5 -0
- package/lib/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
- package/lib/async-task-manager/AsyncTaskManager.js +67 -18
- package/lib/async-task-manager/AsyncTaskManager.js.map +1 -1
- package/lib/browser/BrowserSettingsFactory.d.ts.map +1 -1
- package/lib/browser/BrowserSettingsFactory.js +4 -0
- package/lib/browser/BrowserSettingsFactory.js.map +1 -1
- package/lib/browser/DefaultBrowserSettings.d.ts.map +1 -1
- package/lib/browser/DefaultBrowserSettings.js +3 -0
- package/lib/browser/DefaultBrowserSettings.js.map +1 -1
- package/lib/browser/types/IBrowserSettings.d.ts +6 -0
- package/lib/browser/types/IBrowserSettings.d.ts.map +1 -1
- package/lib/browser/types/IOptionalBrowserSettings.d.ts +6 -0
- package/lib/browser/types/IOptionalBrowserSettings.d.ts.map +1 -1
- package/lib/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
- package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
- package/lib/dom/DOMTokenList.d.ts +5 -3
- package/lib/dom/DOMTokenList.d.ts.map +1 -1
- package/lib/dom/DOMTokenList.js +7 -4
- package/lib/dom/DOMTokenList.js.map +1 -1
- package/lib/event/EventTarget.d.ts.map +1 -1
- package/lib/event/EventTarget.js +31 -5
- package/lib/event/EventTarget.js.map +1 -1
- package/lib/fetch/Fetch.d.ts +3 -0
- package/lib/fetch/Fetch.d.ts.map +1 -1
- package/lib/fetch/Fetch.js +64 -10
- package/lib/fetch/Fetch.js.map +1 -1
- package/lib/fetch/Request.d.ts +65 -9
- package/lib/fetch/Request.d.ts.map +1 -1
- package/lib/fetch/Request.js +116 -24
- package/lib/fetch/Request.js.map +1 -1
- package/lib/fetch/ResourceFetch.d.ts +21 -11
- package/lib/fetch/ResourceFetch.d.ts.map +1 -1
- package/lib/fetch/ResourceFetch.js +68 -13
- package/lib/fetch/ResourceFetch.js.map +1 -1
- package/lib/fetch/SyncFetch.d.ts.map +1 -1
- package/lib/fetch/SyncFetch.js +36 -7
- package/lib/fetch/SyncFetch.js.map +1 -1
- package/lib/fetch/preload/PreloadEntry.d.ts +26 -0
- package/lib/fetch/preload/PreloadEntry.d.ts.map +1 -0
- package/lib/fetch/preload/PreloadEntry.js +41 -0
- package/lib/fetch/preload/PreloadEntry.js.map +1 -0
- package/lib/fetch/preload/PreloadUtility.d.ts +26 -0
- package/lib/fetch/preload/PreloadUtility.d.ts.map +1 -0
- package/lib/fetch/preload/PreloadUtility.js +26 -0
- package/lib/fetch/preload/PreloadUtility.js.map +1 -0
- package/lib/fetch/types/IRequestInit.d.ts +2 -0
- package/lib/fetch/types/IRequestInit.d.ts.map +1 -1
- package/lib/fetch/types/IRequestMode.d.ts +3 -0
- package/lib/fetch/types/IRequestMode.d.ts.map +1 -0
- package/lib/fetch/types/IRequestMode.js +2 -0
- package/lib/fetch/types/IRequestMode.js.map +1 -0
- package/lib/fetch/utilities/FetchRequestReferrerUtility.js +1 -1
- package/lib/fetch/utilities/FetchRequestReferrerUtility.js.map +1 -1
- package/lib/module/CSSModule.d.ts +34 -0
- package/lib/module/CSSModule.d.ts.map +1 -0
- package/lib/module/CSSModule.js +44 -0
- package/lib/module/CSSModule.js.map +1 -0
- package/lib/module/ECMAScriptModule.d.ts +36 -0
- package/lib/module/ECMAScriptModule.d.ts.map +1 -0
- package/lib/module/ECMAScriptModule.js +128 -0
- package/lib/module/ECMAScriptModule.js.map +1 -0
- package/lib/module/ECMAScriptModuleCompiler.d.ts +31 -0
- package/lib/module/ECMAScriptModuleCompiler.d.ts.map +1 -0
- package/lib/module/ECMAScriptModuleCompiler.js +521 -0
- package/lib/module/ECMAScriptModuleCompiler.js.map +1 -0
- package/lib/module/IECMAScriptModuleCompiledResult.d.ts +21 -0
- package/lib/module/IECMAScriptModuleCompiledResult.d.ts.map +1 -0
- package/lib/module/IECMAScriptModuleCompiledResult.js +2 -0
- package/lib/module/IECMAScriptModuleCompiledResult.js.map +1 -0
- package/lib/module/IECMAScriptModuleImport.d.ts +5 -0
- package/lib/module/IECMAScriptModuleImport.d.ts.map +1 -0
- package/lib/module/IECMAScriptModuleImport.js +2 -0
- package/lib/module/IECMAScriptModuleImport.js.map +1 -0
- package/lib/module/IModule.d.ts +21 -0
- package/lib/module/IModule.d.ts.map +1 -0
- package/lib/module/IModule.js +2 -0
- package/lib/module/IModule.js.map +1 -0
- package/lib/module/IModuleImportMap.d.ts +10 -0
- package/lib/module/IModuleImportMap.d.ts.map +1 -0
- package/lib/module/IModuleImportMap.js +2 -0
- package/lib/module/IModuleImportMap.js.map +1 -0
- package/lib/module/IModuleImportMapRule.d.ts +5 -0
- package/lib/module/IModuleImportMapRule.d.ts.map +1 -0
- package/lib/module/IModuleImportMapRule.js +2 -0
- package/lib/module/IModuleImportMapRule.js.map +1 -0
- package/lib/module/IModuleImportMapScope.d.ts +6 -0
- package/lib/module/IModuleImportMapScope.d.ts.map +1 -0
- package/lib/module/IModuleImportMapScope.js +2 -0
- package/lib/module/IModuleImportMapScope.js.map +1 -0
- package/lib/module/JSONModule.d.ts +33 -0
- package/lib/module/JSONModule.d.ts.map +1 -0
- package/lib/module/JSONModule.js +49 -0
- package/lib/module/JSONModule.js.map +1 -0
- package/lib/module/ModuleFactory.d.ts +33 -0
- package/lib/module/ModuleFactory.d.ts.map +1 -0
- package/lib/module/ModuleFactory.js +107 -0
- package/lib/module/ModuleFactory.js.map +1 -0
- package/lib/module/ModuleURLUtility.d.ts +17 -0
- package/lib/module/ModuleURLUtility.d.ts.map +1 -0
- package/lib/module/ModuleURLUtility.js +41 -0
- package/lib/module/ModuleURLUtility.js.map +1 -0
- package/lib/module/UnresolvedModule.d.ts +43 -0
- package/lib/module/UnresolvedModule.d.ts.map +1 -0
- package/lib/module/UnresolvedModule.js +67 -0
- package/lib/module/UnresolvedModule.js.map +1 -0
- package/lib/nodes/document/Document.d.ts +2 -0
- package/lib/nodes/document/Document.d.ts.map +1 -1
- package/lib/nodes/document/Document.js +1 -0
- package/lib/nodes/document/Document.js.map +1 -1
- package/lib/nodes/element/Element.d.ts +6 -0
- package/lib/nodes/element/Element.d.ts.map +1 -1
- package/lib/nodes/element/Element.js +21 -5
- package/lib/nodes/element/Element.js.map +1 -1
- package/lib/nodes/element/NamedNodeMap.d.ts.map +1 -1
- package/lib/nodes/element/NamedNodeMap.js +1 -0
- package/lib/nodes/element/NamedNodeMap.js.map +1 -1
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts +6 -0
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +8 -0
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
- package/lib/nodes/html-area-element/HTMLAreaElement.d.ts +6 -0
- package/lib/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
- package/lib/nodes/html-area-element/HTMLAreaElement.js +8 -0
- package/lib/nodes/html-area-element/HTMLAreaElement.js.map +1 -1
- package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/lib/nodes/html-element/HTMLElement.js +3 -0
- package/lib/nodes/html-element/HTMLElement.js.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +7 -3
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +8 -2
- package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.js +147 -19
- package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
- package/lib/nodes/html-media-element/HTMLMediaElement.d.ts +6 -0
- package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
- package/lib/nodes/html-media-element/HTMLMediaElement.js +8 -0
- package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +80 -0
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.js +380 -46
- package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
- package/lib/nodes/html-table-cell-element/HTMLTableCellElement.d.ts +0 -3
- package/lib/nodes/html-table-cell-element/HTMLTableCellElement.d.ts.map +1 -1
- package/lib/nodes/html-table-cell-element/HTMLTableCellElement.js +0 -1
- package/lib/nodes/html-table-cell-element/HTMLTableCellElement.js.map +1 -1
- package/lib/utilities/AttributeUtility.d.ts +18 -0
- package/lib/utilities/AttributeUtility.d.ts.map +1 -0
- package/lib/utilities/AttributeUtility.js +29 -0
- package/lib/utilities/AttributeUtility.js.map +1 -0
- package/lib/window/BrowserWindow.d.ts +14 -0
- package/lib/window/BrowserWindow.d.ts.map +1 -1
- package/lib/window/BrowserWindow.js +73 -6
- package/lib/window/BrowserWindow.js.map +1 -1
- package/package.json +1 -1
- package/src/PropertySymbol.ts +12 -0
- package/src/async-task-manager/AsyncTaskManager.ts +81 -19
- package/src/browser/BrowserSettingsFactory.ts +4 -0
- package/src/browser/DefaultBrowserSettings.ts +3 -0
- package/src/browser/types/IBrowserSettings.ts +7 -0
- package/src/browser/types/IOptionalBrowserSettings.ts +7 -0
- package/src/browser/utilities/BrowserFrameNavigator.ts +2 -7
- package/src/dom/DOMTokenList.ts +12 -4
- package/src/event/EventTarget.ts +31 -11
- package/src/fetch/Fetch.ts +82 -16
- package/src/fetch/Request.ts +132 -24
- package/src/fetch/ResourceFetch.ts +99 -14
- package/src/fetch/SyncFetch.ts +41 -9
- package/src/fetch/preload/PreloadEntry.ts +46 -0
- package/src/fetch/preload/PreloadUtility.ts +33 -0
- package/src/fetch/types/IRequestInit.ts +2 -0
- package/src/fetch/types/IRequestMode.ts +2 -0
- package/src/fetch/utilities/FetchRequestReferrerUtility.ts +1 -1
- package/src/module/CSSModule.ts +54 -0
- package/src/module/ECMAScriptModule.ts +171 -0
- package/src/module/ECMAScriptModuleCompiler.ts +567 -0
- package/src/module/IECMAScriptModuleCompiledResult.ts +14 -0
- package/src/module/IECMAScriptModuleImport.ts +4 -0
- package/src/module/IModule.ts +20 -0
- package/src/module/IModuleImportMap.ts +10 -0
- package/src/module/IModuleImportMapRule.ts +4 -0
- package/src/module/IModuleImportMapScope.ts +6 -0
- package/src/module/JSONModule.ts +59 -0
- package/src/module/ModuleFactory.ts +134 -0
- package/src/module/ModuleURLUtility.ts +51 -0
- package/src/module/UnresolvedModule.ts +77 -0
- package/src/nodes/document/Document.ts +2 -0
- package/src/nodes/element/Element.ts +25 -7
- package/src/nodes/element/NamedNodeMap.ts +1 -0
- package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +9 -0
- package/src/nodes/html-area-element/HTMLAreaElement.ts +9 -0
- package/src/nodes/html-element/HTMLElement.ts +3 -0
- package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +9 -8
- package/src/nodes/html-link-element/HTMLLinkElement.ts +181 -28
- package/src/nodes/html-media-element/HTMLMediaElement.ts +9 -0
- package/src/nodes/html-script-element/HTMLScriptElement.ts +441 -69
- package/src/nodes/html-table-cell-element/HTMLTableCellElement.ts +0 -3
- package/src/utilities/AttributeUtility.ts +43 -0
- package/src/window/BrowserWindow.ts +77 -10
- package/cjs/window/WindowErrorUtility.cjs +0 -85
- package/cjs/window/WindowErrorUtility.cjs.map +0 -1
- package/cjs/window/WindowErrorUtility.d.ts +0 -27
- package/cjs/window/WindowErrorUtility.d.ts.map +0 -1
- package/lib/window/WindowErrorUtility.d.ts +0 -27
- package/lib/window/WindowErrorUtility.d.ts.map +0 -1
- package/lib/window/WindowErrorUtility.js +0 -56
- package/lib/window/WindowErrorUtility.js.map +0 -1
- package/src/window/WindowErrorUtility.ts +0 -68
@@ -196,7 +196,6 @@ import XMLSerializer from '../xml-serializer/XMLSerializer.js';
|
|
196
196
|
import CrossOriginBrowserWindow from './CrossOriginBrowserWindow.js';
|
197
197
|
import INodeJSGlobal from './INodeJSGlobal.js';
|
198
198
|
import VMGlobalPropertyScript from './VMGlobalPropertyScript.js';
|
199
|
-
import WindowErrorUtility from './WindowErrorUtility.js';
|
200
199
|
import WindowPageOpenUtility from './WindowPageOpenUtility.js';
|
201
200
|
import {
|
202
201
|
PerformanceObserver,
|
@@ -307,6 +306,8 @@ import DOMPoint from '../dom/DOMPoint.js';
|
|
307
306
|
import SVGAnimatedLengthList from '../svg/SVGAnimatedLengthList.js';
|
308
307
|
import CustomElementReactionStack from '../custom-element/CustomElementReactionStack.js';
|
309
308
|
import IScrollToOptions from './IScrollToOptions.js';
|
309
|
+
import IModule from '../module/IModule.js';
|
310
|
+
import IModuleImportMap from '../module/IModuleImportMap.js';
|
310
311
|
|
311
312
|
const TIMER = {
|
312
313
|
setTimeout: globalThis.setTimeout.bind(globalThis),
|
@@ -795,6 +796,16 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
795
796
|
public [PropertySymbol.window]: BrowserWindow = this;
|
796
797
|
public [PropertySymbol.internalId]: number = -1;
|
797
798
|
public [PropertySymbol.customElementReactionStack] = new CustomElementReactionStack(this);
|
799
|
+
public [PropertySymbol.modules]: {
|
800
|
+
json: Map<string, IModule>;
|
801
|
+
css: Map<string, IModule>;
|
802
|
+
esm: Map<string, IModule>;
|
803
|
+
} = {
|
804
|
+
json: new Map(),
|
805
|
+
css: new Map(),
|
806
|
+
esm: new Map()
|
807
|
+
};
|
808
|
+
public [PropertySymbol.moduleImportMap]: IModuleImportMap | null = null;
|
798
809
|
|
799
810
|
// Private properties
|
800
811
|
#browserFrame: IBrowserFrame;
|
@@ -1311,7 +1322,15 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1311
1322
|
zeroDelayTimeout.timeouts = null;
|
1312
1323
|
for (const timeout of timeouts) {
|
1313
1324
|
if (useTryCatch) {
|
1314
|
-
|
1325
|
+
let result: any;
|
1326
|
+
try {
|
1327
|
+
result = timeout.callback();
|
1328
|
+
} catch (error) {
|
1329
|
+
this[PropertySymbol.dispatchError](error);
|
1330
|
+
}
|
1331
|
+
if (result instanceof Promise) {
|
1332
|
+
result.catch((error: Error) => this[PropertySymbol.dispatchError](error));
|
1333
|
+
}
|
1315
1334
|
} else {
|
1316
1335
|
timeout.callback();
|
1317
1336
|
}
|
@@ -1339,7 +1358,15 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1339
1358
|
// We need to call endTimer() before the callback as the callback might throw an error.
|
1340
1359
|
this.#browserFrame[PropertySymbol.asyncTaskManager].endTimer(id);
|
1341
1360
|
if (useTryCatch) {
|
1342
|
-
|
1361
|
+
let result: any;
|
1362
|
+
try {
|
1363
|
+
result = callback(...args);
|
1364
|
+
} catch (error) {
|
1365
|
+
this[PropertySymbol.dispatchError](error);
|
1366
|
+
}
|
1367
|
+
if (result instanceof Promise) {
|
1368
|
+
result.catch((error: Error) => this[PropertySymbol.dispatchError](error));
|
1369
|
+
}
|
1343
1370
|
} else {
|
1344
1371
|
callback(...args);
|
1345
1372
|
}
|
@@ -1399,11 +1426,19 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1399
1426
|
const id = TIMER.setInterval(
|
1400
1427
|
() => {
|
1401
1428
|
if (useTryCatch) {
|
1402
|
-
|
1403
|
-
|
1404
|
-
|
1405
|
-
|
1406
|
-
|
1429
|
+
let result: any;
|
1430
|
+
try {
|
1431
|
+
result = callback(...args);
|
1432
|
+
} catch (error) {
|
1433
|
+
this.clearInterval(id);
|
1434
|
+
this[PropertySymbol.dispatchError](error);
|
1435
|
+
}
|
1436
|
+
if (result instanceof Promise) {
|
1437
|
+
result.catch((error: Error) => {
|
1438
|
+
this.clearInterval(id);
|
1439
|
+
this[PropertySymbol.dispatchError](error);
|
1440
|
+
});
|
1441
|
+
}
|
1407
1442
|
} else {
|
1408
1443
|
callback(...args);
|
1409
1444
|
}
|
@@ -1466,7 +1501,15 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1466
1501
|
// We need to call endImmediate() before the callback as the callback might throw an error.
|
1467
1502
|
this.#browserFrame[PropertySymbol.asyncTaskManager].endImmediate(id);
|
1468
1503
|
if (useTryCatch) {
|
1469
|
-
|
1504
|
+
let result: any;
|
1505
|
+
try {
|
1506
|
+
result = callback(this.performance.now());
|
1507
|
+
} catch (error) {
|
1508
|
+
this[PropertySymbol.dispatchError](error);
|
1509
|
+
}
|
1510
|
+
if (result instanceof Promise) {
|
1511
|
+
result.catch((error: Error) => this[PropertySymbol.dispatchError](error));
|
1512
|
+
}
|
1470
1513
|
} else {
|
1471
1514
|
callback(this.performance.now());
|
1472
1515
|
}
|
@@ -1513,7 +1556,15 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1513
1556
|
// We need to call endTask() before the callback as the callback might throw an error.
|
1514
1557
|
this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskId);
|
1515
1558
|
if (useTryCatch) {
|
1516
|
-
|
1559
|
+
let result: any;
|
1560
|
+
try {
|
1561
|
+
result = callback();
|
1562
|
+
} catch (error) {
|
1563
|
+
this[PropertySymbol.dispatchError](error);
|
1564
|
+
}
|
1565
|
+
if (result instanceof Promise) {
|
1566
|
+
result.catch((error: Error) => this[PropertySymbol.dispatchError](error));
|
1567
|
+
}
|
1517
1568
|
} else {
|
1518
1569
|
callback();
|
1519
1570
|
}
|
@@ -1665,6 +1716,16 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1665
1716
|
}
|
1666
1717
|
}
|
1667
1718
|
|
1719
|
+
/**
|
1720
|
+
* Dispatches an error event and outputs the error to the console.
|
1721
|
+
*
|
1722
|
+
* @param error Error.
|
1723
|
+
*/
|
1724
|
+
public [PropertySymbol.dispatchError](error: Error): void {
|
1725
|
+
this.#browserFrame?.page?.console.error(error);
|
1726
|
+
this.dispatchEvent(new ErrorEvent('error', { message: error.message, error }));
|
1727
|
+
}
|
1728
|
+
|
1668
1729
|
/**
|
1669
1730
|
* Setup of VM context.
|
1670
1731
|
*/
|
@@ -1731,6 +1792,12 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
|
|
1731
1792
|
this.history[PropertySymbol.destroy]();
|
1732
1793
|
}
|
1733
1794
|
|
1795
|
+
this[PropertySymbol.modules].json.clear();
|
1796
|
+
this[PropertySymbol.modules].css.clear();
|
1797
|
+
this[PropertySymbol.modules].esm.clear();
|
1798
|
+
|
1799
|
+
this.document[PropertySymbol.preloads].clear();
|
1800
|
+
|
1734
1801
|
this.document[PropertySymbol.activeElement] = null;
|
1735
1802
|
this.document[PropertySymbol.nextActiveElement] = null;
|
1736
1803
|
this.document[PropertySymbol.currentScript] = null;
|
@@ -1,85 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
-
if (k2 === undefined) k2 = k;
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
-
}
|
8
|
-
Object.defineProperty(o, k2, desc);
|
9
|
-
}) : (function(o, m, k, k2) {
|
10
|
-
if (k2 === undefined) k2 = k;
|
11
|
-
o[k2] = m[k];
|
12
|
-
}));
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
-
}) : function(o, v) {
|
16
|
-
o["default"] = v;
|
17
|
-
});
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
-
if (mod && mod.__esModule) return mod;
|
20
|
-
var result = {};
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
-
__setModuleDefault(result, mod);
|
23
|
-
return result;
|
24
|
-
};
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
27
|
-
};
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
29
|
-
const PropertySymbol = __importStar(require("../PropertySymbol.cjs"));
|
30
|
-
const ErrorEvent_js_1 = __importDefault(require("../event/events/ErrorEvent.cjs"));
|
31
|
-
/**
|
32
|
-
* Error utility.
|
33
|
-
*/
|
34
|
-
class WindowErrorUtility {
|
35
|
-
/**
|
36
|
-
* Calls a function synchronously wrapped in a try/catch block to capture errors and dispatch error events.
|
37
|
-
* If the callback returns a Promise, it will catch errors from the promise.
|
38
|
-
*
|
39
|
-
* It will also output the errors to the console.
|
40
|
-
*
|
41
|
-
* @param elementOrWindow Element or Window.
|
42
|
-
* @param callback Callback.
|
43
|
-
* @param [cleanup] Cleanup callback on error.
|
44
|
-
* @returns Result.
|
45
|
-
*/
|
46
|
-
static captureError(elementOrWindow, callback, cleanup) {
|
47
|
-
let result = null;
|
48
|
-
try {
|
49
|
-
result = callback();
|
50
|
-
}
|
51
|
-
catch (error) {
|
52
|
-
this.dispatchError(elementOrWindow, error);
|
53
|
-
if (cleanup) {
|
54
|
-
cleanup();
|
55
|
-
}
|
56
|
-
}
|
57
|
-
if (result && result instanceof Promise) {
|
58
|
-
result.catch((error) => {
|
59
|
-
this.dispatchError(elementOrWindow, error);
|
60
|
-
if (cleanup) {
|
61
|
-
cleanup();
|
62
|
-
}
|
63
|
-
});
|
64
|
-
}
|
65
|
-
return result;
|
66
|
-
}
|
67
|
-
/**
|
68
|
-
* Dispatches an error event and outputs it to the console.
|
69
|
-
*
|
70
|
-
* @param elementOrWindow Element or Window.
|
71
|
-
* @param error Error.
|
72
|
-
*/
|
73
|
-
static dispatchError(elementOrWindow, error) {
|
74
|
-
if (elementOrWindow.console) {
|
75
|
-
elementOrWindow.console.error(error);
|
76
|
-
elementOrWindow.dispatchEvent(new ErrorEvent_js_1.default('error', { message: error.message, error }));
|
77
|
-
}
|
78
|
-
else {
|
79
|
-
elementOrWindow[PropertySymbol.ownerDocument][PropertySymbol.defaultView]?.console.error(error);
|
80
|
-
elementOrWindow.dispatchEvent(new ErrorEvent_js_1.default('error', { message: error.message, error }));
|
81
|
-
}
|
82
|
-
}
|
83
|
-
}
|
84
|
-
exports.default = WindowErrorUtility;
|
85
|
-
//# sourceMappingURL=WindowErrorUtility.cjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"WindowErrorUtility.cjs","sourceRoot":"","sources":["../../src/window/WindowErrorUtility.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qEAAuD;AACvD,kFAAuD;AAGvD;;GAEG;AACH,MAAqB,kBAAkB;IACtC;;;;;;;;;;OAUG;IACI,MAAM,CAAC,YAAY,CACzB,eAAwC,EACxC,QAAiB,EACjB,OAAoB;QAEpB,IAAI,MAAM,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC;YACJ,MAAM,GAAG,QAAQ,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YAC3C,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;YACX,CAAC;QACF,CAAC;QAED,IAAI,MAAM,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACtB,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;gBAC3C,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,EAAE,CAAC;gBACX,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,aAAa,CAAC,eAAwC,EAAE,KAAY;QACjF,IAAoB,eAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,eAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtD,eAAe,CAAC,aAAa,CAAC,IAAI,uBAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3F,CAAC;aAAM,CAAC;YACG,eAAgB,CAAC,cAAc,CAAC,aAAa,CAAC,CACvD,cAAc,CAAC,WAAW,CAC1B,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACd,eAAgB,CAAC,aAAa,CACvC,IAAI,uBAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAC1D,CAAC;QACH,CAAC;IACF,CAAC;CACD;AA3DD,qCA2DC"}
|
@@ -1,27 +0,0 @@
|
|
1
|
-
import BrowserWindow from './BrowserWindow.cjs';
|
2
|
-
import Element from '../nodes/element/Element.cjs';
|
3
|
-
/**
|
4
|
-
* Error utility.
|
5
|
-
*/
|
6
|
-
export default class WindowErrorUtility {
|
7
|
-
/**
|
8
|
-
* Calls a function synchronously wrapped in a try/catch block to capture errors and dispatch error events.
|
9
|
-
* If the callback returns a Promise, it will catch errors from the promise.
|
10
|
-
*
|
11
|
-
* It will also output the errors to the console.
|
12
|
-
*
|
13
|
-
* @param elementOrWindow Element or Window.
|
14
|
-
* @param callback Callback.
|
15
|
-
* @param [cleanup] Cleanup callback on error.
|
16
|
-
* @returns Result.
|
17
|
-
*/
|
18
|
-
static captureError<T>(elementOrWindow: BrowserWindow | Element, callback: () => T, cleanup?: () => void): T | null;
|
19
|
-
/**
|
20
|
-
* Dispatches an error event and outputs it to the console.
|
21
|
-
*
|
22
|
-
* @param elementOrWindow Element or Window.
|
23
|
-
* @param error Error.
|
24
|
-
*/
|
25
|
-
static dispatchError(elementOrWindow: BrowserWindow | Element, error: Error): void;
|
26
|
-
}
|
27
|
-
//# sourceMappingURL=WindowErrorUtility.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"WindowErrorUtility.d.ts","sourceRoot":"","sources":["../../src/window/WindowErrorUtility.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAG/C,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACtC;;;;;;;;;;OAUG;WACW,YAAY,CAAC,CAAC,EAC3B,eAAe,EAAE,aAAa,GAAG,OAAO,EACxC,QAAQ,EAAE,MAAM,CAAC,EACjB,OAAO,CAAC,EAAE,MAAM,IAAI,GAClB,CAAC,GAAG,IAAI;IAwBX;;;;;OAKG;WACW,aAAa,CAAC,eAAe,EAAE,aAAa,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CAazF"}
|
@@ -1,27 +0,0 @@
|
|
1
|
-
import BrowserWindow from './BrowserWindow.js';
|
2
|
-
import Element from '../nodes/element/Element.js';
|
3
|
-
/**
|
4
|
-
* Error utility.
|
5
|
-
*/
|
6
|
-
export default class WindowErrorUtility {
|
7
|
-
/**
|
8
|
-
* Calls a function synchronously wrapped in a try/catch block to capture errors and dispatch error events.
|
9
|
-
* If the callback returns a Promise, it will catch errors from the promise.
|
10
|
-
*
|
11
|
-
* It will also output the errors to the console.
|
12
|
-
*
|
13
|
-
* @param elementOrWindow Element or Window.
|
14
|
-
* @param callback Callback.
|
15
|
-
* @param [cleanup] Cleanup callback on error.
|
16
|
-
* @returns Result.
|
17
|
-
*/
|
18
|
-
static captureError<T>(elementOrWindow: BrowserWindow | Element, callback: () => T, cleanup?: () => void): T | null;
|
19
|
-
/**
|
20
|
-
* Dispatches an error event and outputs it to the console.
|
21
|
-
*
|
22
|
-
* @param elementOrWindow Element or Window.
|
23
|
-
* @param error Error.
|
24
|
-
*/
|
25
|
-
static dispatchError(elementOrWindow: BrowserWindow | Element, error: Error): void;
|
26
|
-
}
|
27
|
-
//# sourceMappingURL=WindowErrorUtility.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"WindowErrorUtility.d.ts","sourceRoot":"","sources":["../../src/window/WindowErrorUtility.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAG/C,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACtC;;;;;;;;;;OAUG;WACW,YAAY,CAAC,CAAC,EAC3B,eAAe,EAAE,aAAa,GAAG,OAAO,EACxC,QAAQ,EAAE,MAAM,CAAC,EACjB,OAAO,CAAC,EAAE,MAAM,IAAI,GAClB,CAAC,GAAG,IAAI;IAwBX;;;;;OAKG;WACW,aAAa,CAAC,eAAe,EAAE,aAAa,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CAazF"}
|
@@ -1,56 +0,0 @@
|
|
1
|
-
import * as PropertySymbol from '../PropertySymbol.js';
|
2
|
-
import ErrorEvent from '../event/events/ErrorEvent.js';
|
3
|
-
/**
|
4
|
-
* Error utility.
|
5
|
-
*/
|
6
|
-
export default class WindowErrorUtility {
|
7
|
-
/**
|
8
|
-
* Calls a function synchronously wrapped in a try/catch block to capture errors and dispatch error events.
|
9
|
-
* If the callback returns a Promise, it will catch errors from the promise.
|
10
|
-
*
|
11
|
-
* It will also output the errors to the console.
|
12
|
-
*
|
13
|
-
* @param elementOrWindow Element or Window.
|
14
|
-
* @param callback Callback.
|
15
|
-
* @param [cleanup] Cleanup callback on error.
|
16
|
-
* @returns Result.
|
17
|
-
*/
|
18
|
-
static captureError(elementOrWindow, callback, cleanup) {
|
19
|
-
let result = null;
|
20
|
-
try {
|
21
|
-
result = callback();
|
22
|
-
}
|
23
|
-
catch (error) {
|
24
|
-
this.dispatchError(elementOrWindow, error);
|
25
|
-
if (cleanup) {
|
26
|
-
cleanup();
|
27
|
-
}
|
28
|
-
}
|
29
|
-
if (result && result instanceof Promise) {
|
30
|
-
result.catch((error) => {
|
31
|
-
this.dispatchError(elementOrWindow, error);
|
32
|
-
if (cleanup) {
|
33
|
-
cleanup();
|
34
|
-
}
|
35
|
-
});
|
36
|
-
}
|
37
|
-
return result;
|
38
|
-
}
|
39
|
-
/**
|
40
|
-
* Dispatches an error event and outputs it to the console.
|
41
|
-
*
|
42
|
-
* @param elementOrWindow Element or Window.
|
43
|
-
* @param error Error.
|
44
|
-
*/
|
45
|
-
static dispatchError(elementOrWindow, error) {
|
46
|
-
if (elementOrWindow.console) {
|
47
|
-
elementOrWindow.console.error(error);
|
48
|
-
elementOrWindow.dispatchEvent(new ErrorEvent('error', { message: error.message, error }));
|
49
|
-
}
|
50
|
-
else {
|
51
|
-
elementOrWindow[PropertySymbol.ownerDocument][PropertySymbol.defaultView]?.console.error(error);
|
52
|
-
elementOrWindow.dispatchEvent(new ErrorEvent('error', { message: error.message, error }));
|
53
|
-
}
|
54
|
-
}
|
55
|
-
}
|
56
|
-
//# sourceMappingURL=WindowErrorUtility.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"WindowErrorUtility.js","sourceRoot":"","sources":["../../src/window/WindowErrorUtility.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,UAAU,MAAM,+BAA+B,CAAC;AAGvD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACtC;;;;;;;;;;OAUG;IACI,MAAM,CAAC,YAAY,CACzB,eAAwC,EACxC,QAAiB,EACjB,OAAoB;QAEpB,IAAI,MAAM,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC;YACJ,MAAM,GAAG,QAAQ,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YAC3C,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;YACX,CAAC;QACF,CAAC;QAED,IAAI,MAAM,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACtB,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;gBAC3C,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,EAAE,CAAC;gBACX,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,aAAa,CAAC,eAAwC,EAAE,KAAY;QACjF,IAAoB,eAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,eAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtD,eAAe,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3F,CAAC;aAAM,CAAC;YACG,eAAgB,CAAC,cAAc,CAAC,aAAa,CAAC,CACvD,cAAc,CAAC,WAAW,CAC1B,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACd,eAAgB,CAAC,aAAa,CACvC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAC1D,CAAC;QACH,CAAC;IACF,CAAC;CACD"}
|
@@ -1,68 +0,0 @@
|
|
1
|
-
import BrowserWindow from './BrowserWindow.js';
|
2
|
-
import * as PropertySymbol from '../PropertySymbol.js';
|
3
|
-
import ErrorEvent from '../event/events/ErrorEvent.js';
|
4
|
-
import Element from '../nodes/element/Element.js';
|
5
|
-
|
6
|
-
/**
|
7
|
-
* Error utility.
|
8
|
-
*/
|
9
|
-
export default class WindowErrorUtility {
|
10
|
-
/**
|
11
|
-
* Calls a function synchronously wrapped in a try/catch block to capture errors and dispatch error events.
|
12
|
-
* If the callback returns a Promise, it will catch errors from the promise.
|
13
|
-
*
|
14
|
-
* It will also output the errors to the console.
|
15
|
-
*
|
16
|
-
* @param elementOrWindow Element or Window.
|
17
|
-
* @param callback Callback.
|
18
|
-
* @param [cleanup] Cleanup callback on error.
|
19
|
-
* @returns Result.
|
20
|
-
*/
|
21
|
-
public static captureError<T>(
|
22
|
-
elementOrWindow: BrowserWindow | Element,
|
23
|
-
callback: () => T,
|
24
|
-
cleanup?: () => void
|
25
|
-
): T | null {
|
26
|
-
let result = null;
|
27
|
-
|
28
|
-
try {
|
29
|
-
result = callback();
|
30
|
-
} catch (error) {
|
31
|
-
this.dispatchError(elementOrWindow, error);
|
32
|
-
if (cleanup) {
|
33
|
-
cleanup();
|
34
|
-
}
|
35
|
-
}
|
36
|
-
|
37
|
-
if (result && result instanceof Promise) {
|
38
|
-
result.catch((error) => {
|
39
|
-
this.dispatchError(elementOrWindow, error);
|
40
|
-
if (cleanup) {
|
41
|
-
cleanup();
|
42
|
-
}
|
43
|
-
});
|
44
|
-
}
|
45
|
-
|
46
|
-
return result;
|
47
|
-
}
|
48
|
-
|
49
|
-
/**
|
50
|
-
* Dispatches an error event and outputs it to the console.
|
51
|
-
*
|
52
|
-
* @param elementOrWindow Element or Window.
|
53
|
-
* @param error Error.
|
54
|
-
*/
|
55
|
-
public static dispatchError(elementOrWindow: BrowserWindow | Element, error: Error): void {
|
56
|
-
if ((<BrowserWindow>elementOrWindow).console) {
|
57
|
-
(<BrowserWindow>elementOrWindow).console.error(error);
|
58
|
-
elementOrWindow.dispatchEvent(new ErrorEvent('error', { message: error.message, error }));
|
59
|
-
} else {
|
60
|
-
(<Element>elementOrWindow)[PropertySymbol.ownerDocument][
|
61
|
-
PropertySymbol.defaultView
|
62
|
-
]?.console.error(error);
|
63
|
-
(<Element>elementOrWindow).dispatchEvent(
|
64
|
-
new ErrorEvent('error', { message: error.message, error })
|
65
|
-
);
|
66
|
-
}
|
67
|
-
}
|
68
|
-
}
|