This commit is contained in:
2024-03-22 03:47:51 +05:30
parent 8bcf3d211e
commit 89819f6fe2
28440 changed files with 3211033 additions and 2 deletions

View File

@@ -0,0 +1,19 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _crypto = _interopRequireDefault(require("crypto"));
function computeIntegrity(algorithms, source) {
return Array.isArray(algorithms) ? algorithms.map(function (algorithm) {
var hash = _crypto["default"].createHash(algorithm).update(source, 'utf8').digest('base64');
return algorithm + "-" + hash;
}).join(' ') : '';
}
var _default = computeIntegrity;
exports["default"] = _default;

View File

@@ -0,0 +1,18 @@
"use strict";
exports.__esModule = true;
exports["default"] = void 0;
function getFileExtension(filename) {
if (!filename || typeof filename !== 'string') {
return '';
}
var fileExtRegex = /\.\w{2,4}\.(?:map|gz)$|\.\w+$/i;
var name = filename.split(/[?#]/)[0];
var ext = name.match(fileExtRegex);
return ext && ext.length ? ext[0] : '';
}
var _default = getFileExtension;
exports["default"] = _default;

View File

@@ -0,0 +1,32 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _ava = _interopRequireDefault(require("ava"));
var _getFileExtension = _interopRequireDefault(require("./getFileExtension"));
(0, _ava["default"])('returns the correct file extension', function (t) {
var extensions = ['.jpeg', '.js', '.css', '.json', '.xml'];
var filePath = 'source/static/images/hello-world';
extensions.forEach(function (ext) {
t["true"]((0, _getFileExtension["default"])("" + filePath + ext) === ext);
});
});
(0, _ava["default"])('sanitize file hash', function (t) {
var hashes = ['?', '#'];
var filePath = 'source/static/images/hello-world.jpeg';
hashes.forEach(function (hash) {
t["true"]((0, _getFileExtension["default"])("" + filePath + hash + "d587bbd6e38337f5accd") === '.jpeg');
});
});
(0, _ava["default"])('returns empty string when there is no file extension', function (t) {
var filePath = 'source/static/resource';
t["true"]((0, _getFileExtension["default"])(filePath) === '');
});
(0, _ava["default"])('should work even with null/undefined arg', function (t) {
var filePaths = ['', null, undefined];
filePaths.forEach(function (path) {
t["true"]((0, _getFileExtension["default"])(path) === '');
});
});

View File

@@ -0,0 +1,20 @@
"use strict";
exports.__esModule = true;
exports["default"] = hasEntry;
function hasEntry(target, targetKey, searchFor) {
if (!target) {
return false;
}
for (var i = 0; i < target.length; i += 1) {
var file = target[i][targetKey];
if (file === searchFor) {
return true;
}
}
return false;
}

View File

@@ -0,0 +1,38 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _ava = _interopRequireDefault(require("ava"));
var _hasEntry = _interopRequireDefault(require("./hasEntry"));
var assets = [{
file: 'content.chunk.js',
hash: 'd41d8cd98f00b204e9800998ecf8427e',
publicPath: './',
integrity: null
}, {
file: 'header.chunk.js',
hash: '699f4bd49870f2b90e1d1596d362efcb',
publicPath: './',
integrity: null
}, {
file: 'shared-multilevel.chunk.js',
hash: 'ab7b8b1c1d5083c17a39ccd2962202e1',
publicPath: './',
integrity: null
}];
(0, _ava["default"])('should flag as has entry', function (t) {
var fileName = 'header.chunk.js';
t["true"]((0, _hasEntry["default"])(assets, 'file', fileName));
});
(0, _ava["default"])('should flag as has no entry', function (t) {
var fileName = 'footer.chunk.js';
t["false"]((0, _hasEntry["default"])(assets, 'file', fileName));
});
(0, _ava["default"])('should work even with null/undefined target', function (t) {
var targets = [[], null, undefined];
targets.forEach(function (target) {
t["false"]((0, _hasEntry["default"])(target, 'file', 'foo.js'));
});
});

View File

@@ -0,0 +1,22 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.hasEntry = exports.unique = exports.getFileExtension = exports.computeIntegrity = void 0;
var _computeIntegrity = _interopRequireDefault(require("./computeIntegrity"));
exports.computeIntegrity = _computeIntegrity["default"];
var _getFileExtension = _interopRequireDefault(require("./getFileExtension"));
exports.getFileExtension = _getFileExtension["default"];
var _unique = _interopRequireDefault(require("./unique"));
exports.unique = _unique["default"];
var _hasEntry = _interopRequireDefault(require("./hasEntry"));
exports.hasEntry = _hasEntry["default"];

View File

@@ -0,0 +1,10 @@
"use strict";
exports.__esModule = true;
exports["default"] = unique;
function unique(array) {
return array.filter(function (elem, pos, arr) {
return arr.indexOf(elem) === pos;
});
}

View File

@@ -0,0 +1,26 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _ava = _interopRequireDefault(require("ava"));
var _unique = _interopRequireDefault(require("./unique"));
(0, _ava["default"])('it filters duplicated entries', function (t) {
var duplicated = ['two', 'four'];
var raw = ['one', 'two', 'three', 'four'];
var filtered = (0, _unique["default"])([].concat(raw, duplicated));
duplicated.forEach(function (dup) {
t["true"](filtered.filter(function (item) {
return item === dup;
}).length === 1);
});
});
(0, _ava["default"])('should work with null/undefined values', function (t) {
var falsy = [null, undefined];
var raw = ['one', 'two', 'three', 'four'];
var filtered = (0, _unique["default"])([].concat(raw, falsy));
falsy.forEach(function (value) {
t["true"](filtered.includes(value));
});
});