A set of polyfills and shims for working with DOM and ECMAScript.
npm install polyshim
The library offers two use cases:
Just connect the necessary polyfills, and use the functionality as if the functionality was supported by browsers:
import 'polyshim/polyfill/closest';
let item = document.querySelector('.component .component__item');
let component = item.closest('.component');
The use of shims allows you to "not touch" the native methods, thus without overwriting perhaps another implementation of polyfills. This is especially useful for writing redistributable libraries.
import closest from 'polyshim/shim/closest';
let item = document.querySelector('.component .component__item');
let component = closest.call(item, '.component');
- Object.assign
- Element.prototype.matches
- Element.prototype.closest
- DOMTokenList.prototype.toggle (force parameter)
- Event (constructor)
- CustomEvent (constructor)
To run tests, use:
npm test
If necessary, you can install launchers for other browsers and activate them in karma.conf.js
:
npm i --save-dev karma-ie-launcher
- Internet Explorer 11+
- Other modern browsers