@carv/polyfills
TypeScript icon, indicating that this package has built-in type declarations

1.1.3 • Public • Published

@carv/polyfills

Browser polyfills

Usage

<head>
  <link rel="preload" href="/path/to/cdn/@carv/polyfills@1.x/es2020/bootstrap.js" as="script" />
  <link rel="preload" href="/path/to/cdn/@carv/polyfills@1.x/es2020/polyfills.js" as="script" />
  <link rel="preload" href="/path/to/cdn/<package>" as="script" />
</head>
<body>
  <main></main>
  <script
    src="/path/to/cdn/-/bootstrap"
    data-main="<package>"
    data-state="encodeURIComponent(<state>)"
    data-token="encodeURIComponent(<token>)"
    nonce="${request.id}"
  ></script>
</body>

Polyfills

We provide the most common APIs in a target specific bundle. APIs that are detectable globals are replaced per usage with an import to the poylfill.

If a feature is not listed here check if it is already supported by IE 11.

Bootstrapped

  • Promise
  • SystemJS

Polyfilled

  • Array.isArray
  • Array.prototype.*
  • DOMTokenList*
  • DocumentFragment*
  • Element*
  • Event*
  • Function*
  • HTMLTemplateElement
  • Node.prototype.* (including baseURI)
  • NodeList.prototype.*
  • Object.* except Object.fromEntries
  • Promise
  • Promise.allSettled
  • Promise.prototype.finally
  • RegExp.prototype.flags
  • Reflect
  • Reflect.*
  • String.prototype.*
  • Symbol
  • Symbol.*
  • console.*
  • fetch

Dynamic

  • AbortController
  • Array.from
  • Array.of
  • ArrayBuffer
  • Blob
  • CSS.supports
  • CustomEvent
  • DataView
  • IntersectionObserver & IntersectionObserverEntry
  • Intl
  • Map
  • Math.*
  • MutationObserver
  • Number
  • Object.fromEntries
  • ResizeObserver
  • Set
  • String.fromCodePoint
  • String.raw
  • URL
  • URLSearchParams
  • TextEncoder
  • UserTiming (self.performance)
  • WeakMap
  • WeakSet
  • globalThis
  • navigator.sendBeacon
  • queueMicrotask
  • requestIdleCallback
  • setImmediate

Available Scripts

npm test

Two sub scripts will came in handy from time to time:

  • npm start test.watch: re-run tests on change
  • npm start test.coverage: creates a coverage report at coverage/lcov-report/index.html

npm run format

Formats all sources using prettier.

Create a release

  1. Update changelog
  2. npm run format
  3. npm test
  4. git commit -a -m "chore: prepare release`
  5. npm version [<newversion> | major | minor | patch] -m "chore: release"

Folder Structure

src/

Put all your source code including your test files here. Test files are matched using the following regexp:

  • src/**/__tests__/*.{js,jsx,ts,tsx}: matches every file within a __tests__ directory but not in child directories
  • src/**/*.{spec,test}.{js,jsx,ts,tsx}: matches *.test.js and *.spec.js files; some for the other extensions

src/__preview__/

This directory is used by snowpack on npm start to render a preview of your code. Modify src/__preview__/app.svelte to match your needs.

Readme

Keywords

none

Package Sidebar

Install

npm i @carv/polyfills

Weekly Downloads

0

Version

1.1.3

License

MIT

Unpacked Size

638 kB

Total Files

129

Last publish

Collaborators

  • sastan