Node.js

Paginação

Todo método list() devolve um auto-paginador (AutoPager): você pode aguardar só a primeira página ou iterar todos os itens de todas as páginas sem gerenciar offset na mão.

Todo método list() devolve um auto-paginador (AutoPager): você pode aguardar só a primeira página ou iterar todos os itens de todas as páginas sem gerenciar offset na mão.

Iterar todos os itens

for await percorre item a item, buscando as próximas páginas automaticamente:

for await (const tx of sw.transactions.list({ limit: 100 })) {
  console.log(tx.id, tx.status);
}

Só a primeira página

await no resultado devolve a primeira página como objeto — útil para telas com "carregar mais":

const page = await sw.transactions.list({ limit: 20 });
// { data, hasMore, offset, limit, total }
console.log(page.data.length, page.hasMore);

O limit padrão é 20 quando não informado.

Iterar páginas ou coletar em array

// página a página (ex.: processar em lotes)
for await (const page of sw.customers.list({ limit: 100 }).pages()) {
  await processBatch(page.data);
}

// coletar itens num array, com teto de segurança
const primeiros500 = await sw.customers.list().toArray(500);

Endpoints sem auto-pager

Para listagens aninhadas que não expõem um list() de topo, use o gerador paginate sobre o método .raw:

import { paginate } from '@selectwin/sdk';

for await (const item of paginate(
  (p) => sw.subscriptions.raw.listSubscriptionItems({ subscriptionId: 'subs_…', ...p }),
  { limit: 100 },
)) {
  console.log(item.id);
}

Próximos passos

How is this guide?

On this page