UNPKG

6.15 kBMarkdownView Raw
1![logo](https://user-images.githubusercontent.com/2213682/146607186-8e13ddef-26a4-4ebf-befd-5aac9d77c090.png)
2
3<div align="center">
4
5[![fundraising](https://opencollective.com/core-js/all/badge.svg?label=fundraising)](https://opencollective.com/core-js) [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/zloirock/core-js/blob/master/CONTRIBUTING.md) [![version](https://img.shields.io/npm/v/core-js.svg)](https://www.npmjs.com/package/core-js) [![core-js downloads](https://img.shields.io/npm/dm/core-js.svg?label=npm%20i%20core-js)](https://npm-stat.com/charts.html?package=core-js&package=core-js-pure&package=core-js-compat&from=2014-11-18)
6
7</div>
8
9**I highly recommend reading this: [So, what's next?](https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md)**
10---
11
12> Modular standard library for JavaScript. Includes polyfills for [ECMAScript up to 2023](https://github.com/zloirock/core-js#ecmascript): [promises](https://github.com/zloirock/core-js#ecmascript-promise), [symbols](https://github.com/zloirock/core-js#ecmascript-symbol), [collections](https://github.com/zloirock/core-js#ecmascript-collections), iterators, [typed arrays](https://github.com/zloirock/core-js#ecmascript-typed-arrays), many other features, [ECMAScript proposals](https://github.com/zloirock/core-js#ecmascript-proposals), [some cross-platform WHATWG / W3C features and proposals](#web-standards) like [`URL`](https://github.com/zloirock/core-js#url-and-urlsearchparams). You can load only required features or use it without global namespace pollution.
13
14## Raising funds
15
16`core-js` isn't backed by a company, so the future of this project depends on you. Become a sponsor or a backer if you are interested in `core-js`: [**Open Collective**](https://opencollective.com/core-js), [**Patreon**](https://patreon.com/zloirock), [**Boosty**](https://boosty.to/zloirock), **Bitcoin ( bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz )**, [**Alipay**](https://user-images.githubusercontent.com/2213682/219464783-c17ad329-17ce-4795-82a7-f609493345ed.png).
17
18---
19
20<a href="https://opencollective.com/core-js/sponsor/0/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/0/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/1/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/1/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/2/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/2/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/3/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/3/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/4/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/4/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/5/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/5/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/6/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/6/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/7/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/7/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/8/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/8/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/9/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/9/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/10/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/10/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/11/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/11/avatar.svg"></a>
21
22---
23
24<a href="https://opencollective.com/core-js#backers" target="_blank"><img src="https://opencollective.com/core-js/backers.svg?width=890"></a>
25
26---
27
28[*Example of usage*](https://tinyurl.com/2mknex43):
29```js
30import 'core-js/actual';
31
32Promise.resolve(42).then(it => console.log(it)); // => 42
33
34Array.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]
35
36[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]
37
38(function * (i) { while (true) yield i++; })(1)
39 .drop(1).take(5)
40 .filter(it => it % 2)
41 .map(it => it ** 2)
42 .toArray(); // => [9, 25]
43
44structuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])
45```
46
47*You can load only required features*:
48```js
49import 'core-js/actual/promise';
50import 'core-js/actual/set';
51import 'core-js/actual/iterator';
52import 'core-js/actual/array/from';
53import 'core-js/actual/array/flat-map';
54import 'core-js/actual/structured-clone';
55
56Promise.resolve(42).then(it => console.log(it)); // => 42
57
58Array.from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]
59
60[1, 2].flatMap(it => [it, it]); // => [1, 1, 2, 2]
61
62(function * (i) { while (true) yield i++; })(1)
63 .drop(1).take(5)
64 .filter(it => it % 2)
65 .map(it => it ** 2)
66 .toArray(); // => [9, 25]
67
68structuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])
69```
70
71*Or use it without global namespace pollution*:
72```js
73import Promise from 'core-js-pure/actual/promise';
74import Set from 'core-js-pure/actual/set';
75import Iterator from 'core-js-pure/actual/iterator';
76import from from 'core-js-pure/actual/array/from';
77import flatMap from 'core-js-pure/actual/array/flat-map';
78import structuredClone from 'core-js-pure/actual/structured-clone';
79
80Promise.resolve(42).then(it => console.log(it)); // => 42
81
82from(new Set([1, 2, 3]).union(new Set([3, 4, 5]))); // => [1, 2, 3, 4, 5]
83
84flatMap([1, 2], it => [it, it]); // => [1, 1, 2, 2]
85
86Iterator.from(function * (i) { while (true) yield i++; }(1))
87 .drop(1).take(5)
88 .filter(it => it % 2)
89 .map(it => it ** 2)
90 .toArray(); // => [9, 25]
91
92structuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])
93```
94
95**It's a global version (first 2 examples), for more info see [`core-js` documentation](https://github.com/zloirock/core-js/blob/master/README.md).**