@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