UNPKG

@a11ywatch/core

Version:
74 lines 4 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateWebsiteScore = void 0; const analytics_1 = require("../../../analytics"); const utils_1 = require("../../../../utils"); const PAGE_LIMIT = 10; const getDataUntil = (baseProps, offset, prevIssuesInfo) => __awaiter(void 0, void 0, void 0, function* () { const { domain, perfectScore, userId, all, resolve } = baseProps; const pages = (yield (0, analytics_1.getAnalyticsPaging)({ domain, userId, offset, all, limit: PAGE_LIMIT, }, false)); let websiteErrors = (prevIssuesInfo === null || prevIssuesInfo === void 0 ? void 0 : prevIssuesInfo.errorCount) || 0; let websiteWarnings = (prevIssuesInfo === null || prevIssuesInfo === void 0 ? void 0 : prevIssuesInfo.warningCount) || 0; let websiteNotices = (prevIssuesInfo === null || prevIssuesInfo === void 0 ? void 0 : prevIssuesInfo.noticeCount) || 0; let websiteIssuesFixedByCdn = (prevIssuesInfo === null || prevIssuesInfo === void 0 ? void 0 : prevIssuesInfo.issuesFixedByCdn) || 0; let websitePossibleIssuesFixedByCdn = (prevIssuesInfo === null || prevIssuesInfo === void 0 ? void 0 : prevIssuesInfo.possibleIssuesFixedByCdn) || 0; const accessScores = []; const pageCounter = (pages === null || pages === void 0 ? void 0 : pages.length) || 0; const pageCount = ((prevIssuesInfo === null || prevIssuesInfo === void 0 ? void 0 : prevIssuesInfo.pageCount) || 0) + pageCounter; for (const page of pages) { const { warningCount, errorCount, noticeCount, accessScore, issuesFixedByCdn, possibleIssuesFixedByCdn, } = page !== null && page !== void 0 ? page : { warningCount: 0, errorCount: 0, noticeCount: 0, accessScoreAverage: 0, issuesFixedByCdn: 0, possibleIssuesFixedByCdn: 0, }; accessScores.push(Number(accessScore)); websiteErrors += Number(errorCount || 0); websiteWarnings += Number(warningCount || 0); websiteNotices += Number(noticeCount || 0); websiteIssuesFixedByCdn += Number(issuesFixedByCdn || 0); websiteIssuesFixedByCdn += Number(possibleIssuesFixedByCdn || 0); } const averageItems = (0, utils_1.arrayAverage)(accessScores); const avgScore = Math.round(isNaN(averageItems) || perfectScore ? 100 : averageItems); const issuesInfo = { accessScoreAverage: avgScore, possibleIssuesFixedByCdn: websitePossibleIssuesFixedByCdn, totalIssues: websiteErrors + websiteWarnings + websiteNotices, issuesFixedByCdn: websiteIssuesFixedByCdn, errorCount: websiteErrors, warningCount: websiteWarnings, noticeCount: websiteNotices, pageCount, }; if (pageCounter === PAGE_LIMIT) { yield getDataUntil(baseProps, pageCount, issuesInfo); } else { resolve({ issuesInfo }); } }); const generateWebsiteScore = (props) => __awaiter(void 0, void 0, void 0, function* () { return new Promise((resolve) => __awaiter(void 0, void 0, void 0, function* () { return yield getDataUntil(Object.assign(Object.assign({}, props), { resolve })); })); }); exports.generateWebsiteScore = generateWebsiteScore; //# sourceMappingURL=domain.js.map