2.0.7 • Published 2 years ago

@qiwi/create-polyfill-service-url v2.0.7

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

@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
OptionDescriptionDefault
--fileThe path to the JavaScript file(s) to analyse
--cwdThe current working directoryprocess.cwd()
--omitA list of features to omit. Example: Array.prototype.map
--hostnameThe hostname of the polyfill service to use.polyfill.io
--use-compute-at-edge-backendDefines the compute-at-edge-backend usage policy: yes or no. If empty the server will decide.
--flagsConfiguration settings for every polyfill being requested. Possible values are always and gated or both
--unknownDefines the policy for unsupported browsers: polyfill or ignorepolyfill

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 avoid cd (monorepo build case)
  • provide hostname customization
  • introduce flags, useComputeAtEdgeBackend and unknown 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