/**
* Paginate a list of records for quick fixes with error logging.
*
* @param {Array} records - The array of records to paginate.
* @param {number} pageSize - The number of records to display per page.
* @param {number} pageNumber - The page number to display (1-based).
* @returns {object} An object containing the paginated records, total pages, and error (if any).
*/
function paginateRecords(records, pageSize, pageNumber) {
if (!Array.isArray(records)) {
console.error("Error: records must be an array.");
return { records: [], totalPages: 0, error: "Invalid records input." };
}
if (typeof pageSize !== 'number' || pageSize <= 0) {
console.error("Error: pageSize must be a positive number.");
return { records: [], totalPages: 0, error: "Invalid pageSize input." };
}
if (typeof pageNumber !== 'number' || pageNumber <= 0) {
console.error("Error: pageNumber must be a positive number.");
return { records: [], totalPages: 0, error: "Invalid pageNumber input." };
}
const startIndex = (pageNumber - 1) * pageSize;
const endIndex = startIndex + pageSize;
if (startIndex >= records.length) {
return { records: [], totalPages: 0, error: "Page number exceeds the number of records." };
}
const paginatedRecords = records.slice(startIndex, endIndex);
const totalRecords = records.length;
const totalPages = Math.ceil(totalRecords / pageSize);
return {
records: paginatedRecords,
totalPages: totalPages,
error: null,
};
}
Add your comment