From cb5c0b31063f676c8cc43f2b70381c239b690064 Mon Sep 17 00:00:00 2001 From: wanghaojie08 Date: Fri, 23 Feb 2024 18:26:42 +0800 Subject: [PATCH] fix(ssr): prevent execute it in a not-browser environment --- src/layout.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/layout.js b/src/layout.js index e4ee4cf..026eb0b 100644 --- a/src/layout.js +++ b/src/layout.js @@ -8,8 +8,14 @@ 'use strict'; +const canUseDOM = !!( + typeof window !== 'undefined' + && window.document + && window.document.createElement +); + // setImmediate -if (!window.setImmediate) { +if (canUseDOM && !window.setImmediate) { window.setImmediate = (function setupSetImmediate() { return ( window.msSetImmediate || @@ -80,7 +86,7 @@ if (!window.setImmediate) { })(); } -if (!window.clearImmediate) { +if (canUseDOM && !window.clearImmediate) { window.clearImmediate = (function setupClearImmediate() { return ( window.msClearImmediate || @@ -98,6 +104,9 @@ if (!window.clearImmediate) { // Check if WordCloud can run on this browser var isSupported = (function isSupported() { + if (!canUseDOM) { + return true; + } var canvas = document.createElement('canvas'); if (!canvas || !canvas.getContext) { return false; @@ -127,6 +136,9 @@ var isSupported = (function isSupported() { // Find out if the browser impose minium font size by // drawing small texts on a canvas and measure it's width. var minFontSize = (function getMinFontSize() { + if (!canUseDOM) { + return; + } if (!isSupported) { return; }