Package Exports
- @expo/browser-polyfill
- @expo/browser-polyfill/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@expo/browser-polyfill) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@expo/browser-polyfill
Browser polyfill for React Native
Installation
yarn add @expo/browser-polyfillUsage
Import the library into your JavaScript file:
import '@expo/browser-polyfill';Implements
DOM
DOM is provided with very low support, these are used for libs like pixi.js that validate type.
class Node
class Element
class Document
class HTMLImageElement
class Image
class ImageBitmap
class HTMLVideoElement
class Video
class HTMLCanvasElement
class CanvasImage, HTMLImageElement, ImageBitmap
Image has support for loading callbacks, however the loaded uri must be passed to the src already.
const image = new Image();
image.src = '';
image.onload = () => {
const { src, width, height } = image;
};
image.addEventListener('loading', () => {});
image.addEventListener('error', () => {});Document
const element = document.createElement('div');
const fakeContext = element.getContext('');Element
All sizes return the window size:
element.clientWidth;
element.clientHeight;
element.innerWidth;
element.innerHeight;
element.offsetWidth;
element.offsetHeight;Empty attributes that prevent libraries from crashing
element.tagName;
element.addEventListener;
element.removeEventListener;
element.setAttributeNS;
element.createElementNS;Node
node.ownerDocument;
node.className;
node.appendChild;
node.insertBefore;
node.removeChild;
node.setAttributeNS;
node.getBoundingClientRect;External Libraries
Some external node.js polyfills are added as well.
text-encoding
global.TextEncoder
global.TextDecoderxmldom-qsa
window.DOMParserreact-native-console-time-polyfill
console.time(label);
console.timeEnd(label);
console.count(label);Debug flags
For debugging base64 image transformations toggle:
global.__debug_browser_polyfill_image = true;By default global.__debug_browser_polyfill_image is false.