UNPKG

tify

Version:

A slim and mobile-friendly IIIF document viewer

35 lines (28 loc) 784 B
export function isValidPagesArray(pages, pageCount) { if (!(pages instanceof Array) || !pageCount) { return false; } // Check for duplicates if (new Set(pages).size !== pages.length) { return false; } // Check if all pages exist for (let i = 0, len = pages.length; i < len; i += 1) { if (!Number.isInteger(pages[i]) // Are there pages out of order? || (i > 0 && pages[i] > 0 && pages[i] <= pages[i - 1]) // Are there pages out of range? 0 and -1 serve as placeholder values. || pages[i] < -1 || pages[i] > pageCount ) return false; } return true; } export function isValidUrl(string, allowedProtocols = ['https:', 'http:']) { let url; try { url = new URL(string); } catch { return false; } return allowedProtocols.includes(url.protocol); }