ui/helpers/sort.js (23 lines of code) (raw):

// eslint-disable-next-line import/prefer-default-export export const sortAlphaNum = (a, b) => { // Implement a better alphanumeric sort so that mochitest-10 // is sorted after mochitest 9, not mochitest-1 const reA = /[^a-zA-Z]/g; const reN = /[^0-9]/g; if (a.name) { a = a.name; b = b.name; } const aA = a.replace(reA, ''); const bA = b.replace(reA, ''); if (aA === bA) { const aN = parseInt(a.replace(reN, ''), 10); const bN = parseInt(b.replace(reN, ''), 10); let rv; if (aN === bN) { rv = 0; } else if (aN > bN) { rv = 1; } else { rv = -1; } return rv; } };