@finn-no/polyfills

Global polyfills for FINN webapps

Usage no npm install needed!

<script type="module">
  import finnNoPolyfills from 'https://cdn.skypack.dev/@finn-no/polyfills';
</script>

README

Polyfills

Build Status FinnCDN Deployed

Global polyfills for webapps on FINN.

Deprecation notice!

Please do not add new polyfills to this package. In the future, when we no longer support IE11 and the browsers are evergreen, we want to get rid of this polyfill.

We recommend that this script is loaded from the CDN using the nomodule attribute. This prevents modern browsers from needlessly downloading the polyfill.

If you need to polyfill features beyond what this package currently offers, please do so in your own application.

Purpose

The purpose of the polyfill package is to offer a predictable JavaScript environment while developing webapps on FINN.

Included polyfills

The following features and polyfills are bundled in polyfills.js.

How to use

Recommended

Include the scripts via CDN prior to loading your own script(s). The async attribute must not be used as the order of scripts will not be guaranteed.

<!-- The nomodule attribute indicates that this script should not be downloaded in browsers that support ES2015 modules -->
<script
    nomodule
    src="https://static.finncdn.no/_c/polyfill/v2.0.0/polyfills.js"
></script>

Protip: If you are using the FINN Podium abstractions, such as express-layout, the polyfill is automatically loaded from the CDN.

Alternatively, to bundle the script with your app (e.g with Webpack, Browserify or Rollup).

Install the package

npm install --save-dev @finn-no/polyfills

Import in your app (prior to using any of the polyfilled APIs).

import '@finn-no/polyfills';

Why is only a subset of all features included?

Ideally, we'd like to include the whole set of polyfills for ES6 and ES7. However, each polyfill contributes to increased load and execution time, which is unfortunate since we cannot async the polyfill bundle and the main scripts on the page will have to wait for the polyfills to run. Therefore, only the polyfills we believe are most frequently used are included. If you're missing a polyfill, perhaps it should be included in this package. Please tell us about it on Slack#finn-framsie.

Release

Pushing a release-tag triggers a cdn-upload of the files.

npm version

git push origin master --follow-tags

npm publish