# @carv/polyfills

> Browser polyfills

Latest version **1.1.3** (published 2020-08-25) · MIT license · 0 weekly downloads

## Install

```sh
npm install @carv/polyfills
pnpm add @carv/polyfills
yarn add @carv/polyfills
bun add @carv/polyfills
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.3 |
| Published | 2020-08-25 |
| First published | 2020-08-24 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 622.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Sascha Tandel |
| Maintainers | sastan |

## Links

- npm: https://www.npmjs.com/package/@carv/polyfills
- Repository: https://github.com/carvjs/polyfills
- Homepage: https:/github.com/carvjs/polyfills#readme
- Issues: https://github.com/carvjs/polyfills/issues
- npm.io page: https://npm.io/package/@carv/polyfills

## Dependencies (1)

- [browserslist-useragent](https://npm.io/package/browserslist-useragent.md) ^3.0.3

## Recent versions

- 1.1.3 (latest) — 2020-08-25
- 1.1.2 — 2020-08-24
- 1.1.1 — 2020-08-24
- 1.1.0 — 2020-08-24
- 1.0.3 — 2020-08-24
- 1.0.2 — 2020-08-24
- 1.0.1 — 2020-08-24
- 1.0.0 — 2020-08-24

## README

# @carv/polyfills

> Browser polyfills

<!-- prettier-ignore-start -->
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->


- [Usage](#usage)
- [Polyfills](#polyfills)
- [Available Scripts](#available-scripts)
- [Create a release](#create-a-release)
- [Folder Structure](#folder-structure)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<!-- prettier-ignore-end -->

## Usage

```html
<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](https://caniuse.com/) 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"](https://docs.npmjs.com/cli/version)

## 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.

---
_Source: https://npm.io/package/@carv/polyfills · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
