diff --git a/CHANGELOG.md b/CHANGELOG.md index aae15bbded8..b65c535c2c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## [next] +- chore(TS): Fix typing for DOMParser [#8871](https://github.com/fabricjs/fabric.js/pull/8871) - fix(Path, polyline): fix for SVG import [#8879](https://github.com/fabricjs/fabric.js/pull/8879) - chore(TS) add types for loadSVGFromURl, parseSVGDocument, loadSVGFromString [#8869](https://github.com/fabricjs/fabric.js/pull/8869) - chore(TS): finalize Path migration [#8438](https://github.com/fabricjs/fabric.js/pull/8438) diff --git a/src/env/index.ts b/src/env/index.ts index dcaa6a5a995..5e88f87c4a7 100644 --- a/src/env/index.ts +++ b/src/env/index.ts @@ -21,4 +21,5 @@ export const getEnv = () => env || getBrowserEnv(); export const getDocument = (): Document => getEnv().document; -export const getWindow = (): Window | DOMWindow => getEnv().window; +export const getWindow = (): (Window & typeof globalThis) | DOMWindow => + getEnv().window; diff --git a/src/env/types.ts b/src/env/types.ts index b0c09c0ec8a..110cb27800d 100644 --- a/src/env/types.ts +++ b/src/env/types.ts @@ -7,7 +7,7 @@ export type TCopyPasteData = { }; export type TFabricEnv = { document: Document; - window: Window | DOMWindow; + window: (Window & typeof globalThis) | DOMWindow; isTouchSupported: boolean; WebGLProbe: GLProbe; dispose(element: Element): void; diff --git a/src/parser/loadSVGFromString.ts b/src/parser/loadSVGFromString.ts index 263ab6f5da4..b9f597f4837 100644 --- a/src/parser/loadSVGFromString.ts +++ b/src/parser/loadSVGFromString.ts @@ -23,7 +23,7 @@ export function loadSVGFromString( reviver?: TSvgReviverCallback, options?: LoadImageOptions ) { - const parser = new (getWindow() as any).DOMParser(), + const parser = new (getWindow().DOMParser)(), // should we use `image/svg+xml` here? doc = parser.parseFromString(string.trim(), 'text/xml'); parseSVGDocument(doc.documentElement, callback, reviver, options);