@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
4 years ago
4 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