Licence
MIT
Version
2.0.7
Deps
8
Size
19 kB
Vulns
0
Weekly
0
@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
omitoption to suppress false-positive matches in case some custom polyfill is already present in the bundle or provided another way. - add
cwdoption to avoidcd(monorepo build case) - provide
hostnamecustomization - introduce flags,
useComputeAtEdgeBackendandunknownoptions - expose
analyseJS API - add some tests for the CLI
Licence
This project is licensed under the MIT License - see the LICENSE.md file for details