Socket
Socket
Sign inDemoInstall

preload-webpack-plugin

Package Overview
Dependencies
Maintainers
2
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

preload-webpack-plugin - npm Package Compare versions

Comparing version 3.0.0-beta.1 to 3.0.0-beta.2

22

build/index.js
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _getIterator2 = _interopRequireDefault(require("@babel/runtime/core-js/get-iterator"));
var _set = _interopRequireDefault(require("@babel/runtime/core-js/set"));
var _values = _interopRequireDefault(require("@babel/runtime/core-js/object/values"));
var _keys = _interopRequireDefault(require("@babel/runtime/core-js/object/keys"));
var _assign = _interopRequireDefault(require("@babel/runtime/core-js/object/assign"));
/**

@@ -47,7 +35,7 @@ * @license

constructor(options) {
this.options = (0, _assign.default)({}, defaultOptions, options);
this.options = Object.assign({}, defaultOptions, options);
}
addLinks(webpackVersion, compilation, htmlPluginData) {
assert(webpackVersion in doesChunkBelongToHTML, `An invalid webpackVersion was supplied. Supported values: ${(0, _keys.default)(doesChunkBelongToHTML)}.`);
assert(webpackVersion in doesChunkBelongToHTML, `An invalid webpackVersion was supplied. Supported values: ${Object.keys(doesChunkBelongToHTML)}.`);
const options = this.options; // Bail out early if we're configured to exclude this HTML file.

@@ -68,3 +56,3 @@

compilation,
htmlAssetsChunks: (0, _values.default)(htmlPluginData.assets.chunks)
htmlAssetsChunks: Object.values(htmlPluginData.assets.chunks)
})); // Flatten the list of files.

@@ -75,3 +63,3 @@

}, []);
const uniqueFiles = new _set.default(allFiles);
const uniqueFiles = new Set(allFiles);
const filteredFiles = [...uniqueFiles].filter(file => {

@@ -91,3 +79,3 @@ return !this.options.fileWhitelist || this.options.fileWhitelist.some(regex => regex.test(file));

try {
for (var _iterator = (0, _getIterator2.default)(sortedFilteredFiles), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
for (var _iterator = sortedFilteredFiles[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
const file = _step.value;

@@ -94,0 +82,0 @@ const href = `${publicPath}${file}`;

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
var _stringify = _interopRequireDefault(require("@babel/runtime/core-js/json/stringify"));
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
var _entries = _interopRequireDefault(require("@babel/runtime/core-js/object/entries"));
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var _getIterator2 = _interopRequireDefault(require("@babel/runtime/core-js/get-iterator"));
/**

@@ -44,4 +42,4 @@ * @license

try {
for (var _iterator = (0, _getIterator2.default)((0, _entries.default)(attributes).sort()), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
const _step$value = (0, _slicedToArray2.default)(_step.value, 2),
for (var _iterator = Object.entries(attributes).sort()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
const _step$value = _slicedToArray(_step.value, 2),
attributeName = _step$value[0],

@@ -53,3 +51,3 @@ attributeValue = _step$value[1];

} else {
attributeStrings.push(`${attributeName}=${(0, _stringify.default)(attributeValue)}`);
attributeStrings.push(`${attributeName}=${JSON.stringify(attributeValue)}`);
}

@@ -56,0 +54,0 @@ }

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _from = _interopRequireDefault(require("@babel/runtime/core-js/array/from"));
var _set = _interopRequireDefault(require("@babel/runtime/core-js/set"));
var _values = _interopRequireDefault(require("@babel/runtime/core-js/object/values"));
var _getIterator2 = _interopRequireDefault(require("@babel/runtime/core-js/get-iterator"));
/**

@@ -46,3 +36,3 @@ * @license

try {
for (var _iterator = (0, _getIterator2.default)(htmlAssetsChunks), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
for (var _iterator = htmlAssetsChunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
const htmlAssetChunk = _step.value;

@@ -74,3 +64,3 @@

try {
for (var _iterator2 = (0, _getIterator2.default)(chunk.parents), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
for (var _iterator2 = chunk.parents[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
const parent = _step2.value;

@@ -110,3 +100,3 @@

// Get all the hashes of the HTML assets.
const rootHashes = (0, _values.default)(htmlAssetsChunks).map(({
const rootHashes = Object.values(htmlAssetsChunks).map(({
hash

@@ -119,3 +109,3 @@ }) => hash); // Get a list of chunk groups that contain one of those hashes.

const rootChunkGroupsIds = new _set.default(rootChunkGroups.map(({
const rootChunkGroupsIds = new Set(rootChunkGroups.map(({
id

@@ -125,3 +115,3 @@ }) => id)); // Return true iff the chunk we're passed belongs to a group whose id is in

return (0, _from.default)(chunk.groupsIterable).some(({
return Array.from(chunk.groupsIterable).some(({
id

@@ -128,0 +118,0 @@ }) => rootChunkGroupsIds.has(id));

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _keys = _interopRequireDefault(require("@babel/runtime/core-js/object/keys"));
/**

@@ -61,3 +57,3 @@ * @license

return [{
files: (0, _keys.default)(compilation.assets)
files: Object.keys(compilation.assets)
}];

@@ -64,0 +60,0 @@ }

{
"name": "preload-webpack-plugin",
"version": "3.0.0-beta.1",
"version": "3.0.0-beta.2",
"description": "A webpack plugin for injecting <link rel='preload|prefecth'> into HtmlWebpackPlugin pages, with async chunk support",

@@ -40,10 +40,9 @@ "author": "Addy Osmani <addy.osmani@gmail.com> (https://github.com/addyosmani)",

"devDependencies": {
"@babel/cli": "^7.0.0-beta.49",
"@babel/core": "^7.0.0-beta.49",
"@babel/plugin-transform-runtime": "^7.0.0-beta.49",
"@babel/preset-env": "^7.0.0-beta.49",
"eslint": "^4.19.1",
"@babel/cli": "^7.0.0-rc.1",
"@babel/core": "^7.0.0-rc.1",
"@babel/preset-env": "^7.0.0-rc.1",
"eslint": "^5.3.0",
"eslint-config-google": "^0.9.1",
"jasmine": "^3.1.0",
"jsdom": "^11.11.0",
"jasmine": "^3.2.0",
"jsdom": "^11.12.0",
"memory-fs": "^0.4.1",

@@ -58,5 +57,4 @@ "nyc": "^12.0.2",

"dependencies": {
"@babel/runtime": "^7.0.0-beta.49",
"url-parse": "^1.4.1"
"url-parse": "^1.4.3"
}
}

@@ -177,4 +177,27 @@ # preload-webpack-plugin

### Resource Hints
## Filtering HTML
You may not want to preload resources in some of your HTML files. You can use `excludeHtmlNames` to
tell this plugin to ignore one or more files.
```javascript
plugins: [
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'src/index.html',
chunks: ['main']
}),
new HtmlWebpackPlugin({
filename: 'example.html',
template: 'src/example.html',
chunks: ['exampleEntry']
}),
// Only apply the plugin to index.html, not example.html.
new PreloadWebpackPlugin({
excludeHtmlNames: ['example.html'],
})
```
### Resource hints
Should you wish to use Resource Hints (such as `prefetch`) instead of `preload`, this plugin also supports wiring those up.

@@ -181,0 +204,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc