Next.jsとmicroCMSでのJamstack環境やSSG環境において、以下のようなシーンが案外少なくないかと思います。

microCMSで管理している全ての投稿記事を静的ファイル生成しておいて、ページによって投稿記事数を変更したい

この場合、API取得を管理しているtsファイル内で、必要記事数分だけ記事データを取得する関数とは別に、下記のように再帰的に数十件ずつ全記事データを取得する関数を用意する方法がオススメです。例では、10件ずつ全記事データを取得するまで繰り返します。

下記コードはご自由にお使いください!

※ご質問にはお答えできませんので予めご承知おきくださいませ。

コード

 // built時にキャッシュを無効化するためにユニーク値を追加
const uniqueQueryParam = { timestamp: Date.now().toString() };

// infoの型定義は省略
<中略>

// 全記事データを10件ずつ再帰的に取得する関数
export const getAllInfoList = async (
  queries?: MicroCMSQueries,
  offset = 0
): Promise<Info[]> => {
  const response = await client
    .getList<Info>({
      endpoint: "info",
      queries: {
        ...queries,
        ...uniqueQueryParam,
        limit: 10,
        offset: offset,
        orders: "-publishedAt",
      },
    })
    .catch(notFound);

  const listData = response.contents;

  if (listData.length < 10) {
    return listData;
  } else {
    return [...listData, ...(await getAllInfoList(queries, offset + 10))];
  }
};