/**
* Paginate environment variables for isolated environments.
* @param {Array<string>} envVars Array of environment variable names.
* @param {number} pageSize Number of environment variables to display per page.
* @param {number} page Number of the page to display (1-based).
* @returns {object} An object containing the paginated results, total pages, and error messages.
*/
function paginateEnvVars(envVars, pageSize, page) {
if (!Array.isArray(envVars)) {
return { error: "Error: envVars must be an array." };
}
if (typeof pageSize !== 'number' || pageSize <= 0) {
return { error: "Error: pageSize must be a positive number." };
}
if (typeof page !== 'number' || page < 1) {
return { error: "Error: page must be a positive integer." };
}
const totalItems = envVars.length;
const totalPages = Math.ceil(totalItems / pageSize);
if (page > totalPages) {
return { error: "Error: page number exceeds the total number of pages." };
}
const startIndex = (page - 1) * pageSize;
const endIndex = startIndex + pageSize;
const pageResults = envVars.slice(startIndex, endIndex);
return {
pageResults: pageResults,
totalPages: totalPages,
currentPage: page,
error: null,
};
}
Add your comment