@qiwi/create-polyfill-service-url
v2.0.7
Published
Analyse your JavaScript file and generate a polyfill.io URL based on all the features that are being used from within the JavaScript file.
Downloads
7
Readme
@qiwi/polyfill-service-url-builder
Financial-Times/polyfill-service-url-builder fork to bring pull/283 changes
Usage
CLI
This project requires Node.js 10.x and npm. You can run it with:
> npx create-polyfill-service-url analyse --file bundle.js [--cwd "/custom/pwd" --omit "Array.prototype.includes" --hostname "polyfill.io"]
You can pass multiple files as argument if you split your bundle files:
npx create-polyfill-service-url analyse --file app.js vendor.js
| Option | Description | Default |
|-------------------------------|-------------------------------------------------------------------------------------------------------------|-----------------|
| --file | The path to the JavaScript file(s) to analyse | |
| --cwd | The current working directory | process.cwd()
|
| --omit | A list of features to omit. Example: Array.prototype.map
| |
| --hostname | The hostname of the polyfill service to use. | polyfill.io
|
| --use-compute-at-edge-backend | Defines the compute-at-edge-backend usage policy: yes
or no
. If empty the server will decide. | |
| --flags | Configuration settings for every polyfill being requested. Possible values are always
and gated
or both | |
| --unknown | Defines the policy for unsupported browsers: polyfill
or ignore
| polyfill
|
JS API
const analyze = require('create-polyfill-service-url');
const result = await analyze({
file: ['bundle.js'],
cwd: '/foo/bar', // Defaults to process.cwd()
omit: ['Array.prototype.includes'], // Defaults to []
hostname: 'example.com', // Defaults to 'polyfill.io'
unknown: 'polyfill', // Defaults to null. Accepts 'polyfill' or 'ignore'
useComputeAtEdgeBackend: 'yes', // Defaults to null. Accepts 'yes' or 'no'
flags: 'gated', // Defaults to null. Accepts 'always', 'gated' or both ['always', 'gated']
});
Diff
- introduce
omit
option to suppress false-positive matches in case some custom polyfill is already present in the bundle or provided another way. - add
cwd
option to avoidcd
(monorepo build case) - provide
hostname
customization - introduce flags,
useComputeAtEdgeBackend
andunknown
options - expose
analyse
JS API - add some tests for the CLI
Licence
This project is licensed under the MIT License - see the LICENSE.md file for details