You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
523 B
JavaScript
25 lines
523 B
JavaScript
const hasWindow = typeof window !== 'undefined';
|
|
const windowRef = hasWindow ? window : {};
|
|
|
|
const windowObjects = [
|
|
"MediaStream",
|
|
"HTMLImageElement",
|
|
"HTMLVideoElement",
|
|
"HTMLCanvasElement",
|
|
"FileList",
|
|
"File",
|
|
"URL"
|
|
];
|
|
|
|
const DOMHelper = windowObjects.reduce((result, obj) => {
|
|
return Object.assign({}, result, {
|
|
[obj]: obj in windowRef ? windowRef[obj] : () => {}
|
|
});
|
|
}, {});
|
|
|
|
DOMHelper.setObject = (key, value) => {
|
|
DOMHelper[key] = value;
|
|
};
|
|
|
|
export default DOMHelper;
|