@wide/polyfiller v2.1.1
Polyfiller
Load polyfills on demand.
Install
npm install @wide/polyfiller --saveUsage
This exemple will load assets/polyfills/object-assign.js on IE 11 only:
import polyfiller from '@wide/polyfiller'
polyfiller({
path: 'assets/polyfills/',
load: {
'object-assign.js': {
ie: '<=11'
}
}
})pathpublic folder of compiled polyfillsloadcollection of polyfills to load, accept a key/value combinationkey: filename or url of the polyfillvalue: criteria to satisfies (see bowser.satisfied)
Built-in polyfills
@wide/polyfiller comes with a set of well-known polyfills:
babel.js:core-js/stableandregenerator-runtime/runtimeclosest.js:element-closest-polyfillobject-fit.js:object-fit-imagesandobject-fit-videospicture-fill.js:picturefillobject-assign.js:es6-object-assignfetch:whatwg-fetchsvg.js:svg4everybody
These polyfills can be loaded in two steps, first import the needed ones using the presets collection:
import polyfiller from '@wide/polyfiller'
import presets from '@wide/polyfiller/lib/presets'
polyfiller({
path: 'assets/polyfills/',
load: {
...preset.babel,
...preset.fetch,
}
})Then, you need to compile them into the assets/polyfills:
// assets/polyfills/babel.js
import '@wide/polyfiller/lib/presets/babel'// assets/polyfills/fetch.js
import '@wide/polyfiller/lib/presets/fetch'Capabilities
To resolve which polyfill must be loaded, @wide/polyfiller makes use of the bowser lib and expose the main feature of the browser:
import capabilities from '@wide/polyfiller/lib/capabilities'
capabilities.touch // true | false
capabilities.platform // desktop | mobile
capabilities.os // linux | macos | windows
capabilities.engine // trident | gecko
capabilities.name // ie | chrome | firefox
capabilities.version // number
capabilities.chrome // true | false
capabilities.opera // true | false
capabilities.firefox // true | false
capabilities.safari // true | false
capabilities.edge // true | false
capabilities.ie // true | false
capabilities.webp // true | falseThese capabilities can be exposed as window.capabilities and body css classes:
import { expose } from '@wide/polyfiller/lib/capabilities'
expose()Libraries
This package uses :
Authors
- Aymeric Assier - github.com/myeti
- Julien Martins Da Costa - github.com/jdacosta
License
This project is licensed under the MIT License - see the licence file for details
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago