n8n-nodes-instantly-dev
Version:
n8n community node for Instantly API v2
45 lines • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.paginateInstantlyApi = paginateInstantlyApi;
const generic_functions_1 = require("../../generic.functions");
/**
* Pagination utilities for Instantly API
*/
/**
* Helper function for pagination
*/
async function paginateInstantlyApi(context, endpoint, resourceName) {
let allItems = [];
let startingAfter;
let hasMore = true;
let pageCount = 0;
console.log(`Starting pagination for ${resourceName}...`);
while (hasMore) {
pageCount++;
const queryParams = { limit: 100 }; // Use max limit for efficiency
if (startingAfter) {
queryParams.starting_after = startingAfter;
}
const response = await generic_functions_1.instantlyApiRequest.call(context, 'GET', endpoint, {}, queryParams);
if (response.items && Array.isArray(response.items)) {
allItems = allItems.concat(response.items);
}
// Check if there are more pages
if (response.next_starting_after) {
startingAfter = response.next_starting_after;
console.log(`More pages available. Next starting_after: ${startingAfter}`);
}
else {
hasMore = false;
console.log('No more pages available.');
}
// Safety check to prevent infinite loops
if (pageCount > 1000) {
console.warn('Pagination safety limit reached (1000 pages). Stopping.');
break;
}
}
console.log(`Pagination complete. Total items retrieved: ${allItems.length}`);
return allItems;
}
//# sourceMappingURL=paginationHelpers.js.map