UNPKG

bundlewatch

Version:
87 lines (72 loc) 2.52 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _bytes = require('bytes'); var _bytes2 = _interopRequireDefault(_bytes); var _analyzeFiles = require('./analyzeFiles'); var _analyzeFiles2 = _interopRequireDefault(_analyzeFiles); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const getOverallStatus = fileResults => { return fileResults.reduce((status, fileResult) => { if (status === _analyzeFiles.STATUSES.FAIL || fileResult.status === _analyzeFiles.STATUSES.FAIL) { return _analyzeFiles.STATUSES.FAIL; } if (status === _analyzeFiles.STATUSES.WARN || fileResult.status === _analyzeFiles.STATUSES.WARN) { return _analyzeFiles.STATUSES.WARN; } return _analyzeFiles.STATUSES.PASS; }, _analyzeFiles.STATUSES.PASS); }; const getOverallDifference = fullResults => { let totalAdded = 0; let totalRemoved = 0; fullResults.forEach(fileResult => { if (fileResult.size < fileResult.baseBranchSize) { totalRemoved += fileResult.baseBranchSize - fileResult.size; } else { totalAdded += fileResult.size - fileResult.baseBranchSize; } }); return { totalAdded, totalRemoved }; }; const getSummary = ({ overallStatus, fullResults, baseBranchName }) => { if (overallStatus === _analyzeFiles.STATUSES.FAIL) { return `maxSize check failed`; } let differenceSummary = ''; if (baseBranchName) { const { totalAdded, totalRemoved } = getOverallDifference(fullResults); differenceSummary = `(+${(0, _bytes2.default)(totalAdded)}, -${(0, _bytes2.default)(totalRemoved)})`; } if (overallStatus === _analyzeFiles.STATUSES.WARN) { return `File(s) have passed tolerance thresholds ${differenceSummary}`; } return `Everything is in check ${differenceSummary}`; }; const analyze = ({ currentBranchFileDetails, baseBranchFileDetails, baseBranchName }) => { const fileResults = (0, _analyzeFiles2.default)({ currentBranchFileDetails, baseBranchFileDetails, baseBranchName }); const overallStatus = getOverallStatus(fileResults); const summary = getSummary({ overallStatus, fullResults: fileResults, baseBranchName }); return { status: overallStatus, fullResults: fileResults, summary }; }; exports.default = analyze;