JakeChampion / polyfill-library

NodeJS module to create polyfill bundles tailored to individual user-agents.
MIT License
657 stars 134 forks source link

[feature-request] New alias: evergreen/evergreen.~locale.XX #823

Open CheloXL opened 4 years ago

CheloXL commented 4 years ago

It would be great to have a new alias (proposed: evergreen or something similar) that serves all the polyfills, but of course always depending on target browser. Similar to what I can get by checking everything on the web interface.

As a plus, I also suggested evergreen.~locale.XX so I can also include everything under Intl for the selected locale.

So, https://polyfill.io/v3/polyfill.min.js?features=evergreen,evergreen.~locale.en should serve every available/required polyfill and Intl.* resources to the target browser (if needed, of course).

JakeChampion commented 4 years ago

@CheloXL Would that be the same as the all alias we have? https://polyfill.io/v3/polyfill.min.js?features=all

CheloXL commented 4 years ago

Mmm.. I just tried all in Chrome 80 and I've got a lot of "_ESAbstract.*", plus _Iterator, _ArrayIterator, _StringIterator, _TypedArray, etc. I could be wrong, but I'm pretty sure chrome supports all those features. The only ones that I know are needed (that are also included) are console.exception, Element.prototype.inert and setImmediate.

Also, with all, it is not possible to include all the Intl.* based on a specific locale...

CheloXL commented 3 years ago

I was using "all" to try to get all the polyfills needed by the latest standards (so I don't have to play a Whac-A-Mole, adding features as they are added to the standards).

As I mentioned above, I've found that the service not only serves missing features, but also a lot of _XXX files that are really not needed at all. For example, in Chrome 87, only setImmediate, console.exception and Element.prototype.inert should be served, but I get a lot of the _XXX files.

In Firefox I should get setImmediate and Element.prototype.inert, but again, I'm getting the _XXX polyfills and a HUGE list of Intl.XXX (Intl.DisplayNames, Intl.ListFormat, Intl.NumberFormat). It is a whooping 34mb files that of course, it is not suitable to deliver to any device.

So I had to go back to using "default" plus start adding features manually.

I think there are two issues here:

  1. The bug regarding the _XXX polyfills.
  2. The feature request (mostly related to the Intl.*).

What do you think? Are those items solvable without having to add a new alias?