123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- "use strict";
- const { getAbbreviatedMimeType,
- getUriNameWithQuery,
- getUriHostPort,
- loadCauseString } = require("./request-utils");
- /**
- * Predicates used when sorting items.
- *
- * @param object first
- * The first item used in the comparison.
- * @param object second
- * The second item used in the comparison.
- * @return number
- * <0 to sort first to a lower index than second
- * =0 to leave first and second unchanged with respect to each other
- * >0 to sort second to a lower index than first
- */
- function waterfall(first, second) {
- return first.startedMillis - second.startedMillis;
- }
- function status(first, second) {
- return first.status == second.status
- ? first.startedMillis - second.startedMillis
- : first.status - second.status;
- }
- function method(first, second) {
- if (first.method == second.method) {
- return first.startedMillis - second.startedMillis;
- }
- return first.method > second.method ? 1 : -1;
- }
- function file(first, second) {
- let firstUrl = getUriNameWithQuery(first.url).toLowerCase();
- let secondUrl = getUriNameWithQuery(second.url).toLowerCase();
- if (firstUrl == secondUrl) {
- return first.startedMillis - second.startedMillis;
- }
- return firstUrl > secondUrl ? 1 : -1;
- }
- function domain(first, second) {
- let firstDomain = getUriHostPort(first.url).toLowerCase();
- let secondDomain = getUriHostPort(second.url).toLowerCase();
- if (firstDomain == secondDomain) {
- return first.startedMillis - second.startedMillis;
- }
- return firstDomain > secondDomain ? 1 : -1;
- }
- function cause(first, second) {
- let firstCause = loadCauseString(first.cause.type);
- let secondCause = loadCauseString(second.cause.type);
- if (firstCause == secondCause) {
- return first.startedMillis - second.startedMillis;
- }
- return firstCause > secondCause ? 1 : -1;
- }
- function type(first, second) {
- let firstType = getAbbreviatedMimeType(first.mimeType).toLowerCase();
- let secondType = getAbbreviatedMimeType(second.mimeType).toLowerCase();
- if (firstType == secondType) {
- return first.startedMillis - second.startedMillis;
- }
- return firstType > secondType ? 1 : -1;
- }
- function transferred(first, second) {
- return first.transferredSize - second.transferredSize;
- }
- function size(first, second) {
- return first.contentSize - second.contentSize;
- }
- exports.Sorters = {
- status,
- method,
- file,
- domain,
- cause,
- type,
- transferred,
- size,
- waterfall,
- };
|