This method was deprecated in v0.19.0 and was removed in v0.25.0. Use the getPages method to create a sitemap instead, see the documentation here.
A sitemap is a structured list of pages that enables web crawlers to find the pages of a site.

Options

limit
number
default:50
Number of sitemap entries to fetch.
after
string
Starting id cursor of the last sitemap entry fetched.
pathnamePrefix
string
default:"/"
Only sitemap entries beginning with this pathname will be returned.
locale
string
A valid locale string (ex. "en-US").

Return type

type Sitemap = {
  id: string;
  loc: string;
  lastmod?: string;
  changefreq?:
    | "always"
    | "hourly"
    | "daily"
    | "weekly"
    | "monthly"
    | "yearly"
    | "never";
  priority?: number;
  alternateRefs?: {
    hreflang: string;
    href: string;
  }[];
}[];

Examples

Using next-sitemap

The following example uses getSitemap with next-sitemap, a popular Next.js library for generating sitemaps.
pages/sitemap.xml.ts
import { Makeswift } from "@makeswift/runtime/next";
// Use `getServerSideSitemapLegacy` for sitemap entries in the pages directory.
import { getServerSideSitemapLegacy } from "next-sitemap";

import { client } from "makeswift/client";
import { runtime } from "makeswift/runtime";
import "makeswift/components";

export async function getServerSideProps(context) {
  const sitemap = await client.getSitemap();

  return getServerSideSitemapLegacy(context, sitemap);
}

export default function Sitemap() {}

Filtering by pathname

The following example uses the pathnamePrefix option to filter results to only include pages with a pathname beginning with /blog/.
pages/sitemap.xml.ts
import { Makeswift } from "@makeswift/runtime/next";
import { getServerSideSitemapLegacy } from "next-sitemap";

import { client } from "makeswift/client";
import { runtime } from "makeswift/runtime";
import "makeswift/components";

export async function getServerSideProps(context) {
  const blogSitemap = await client.getSitemap({ pathnamePrefix: "/blog/" });

  return getServerSideSitemapLegacy(context, blogSitemap);
}

export default function BlogSitemap() {}

Using pagination

The following example uses the limit and after field to paginate the results of getSitemap 10 entries at a time.
pages/sitemap.xml.ts
import { Makeswift, Sitemap } from "@makeswift/runtime/next";
import { getServerSideSitemapLegacy } from "next-sitemap";

import { client } from "makeswift/client";
import { runtime } from "makeswift/runtime";
import "makeswift/components";

export async function getServerSideProps(context) {
  const sitemap: Sitemap = [];
  let page: Sitemap = [];
  let after: string | undefined = undefined;

  do {
    page = await client.getSitemap({ limit: 10, after });

    sitemap.push(...page);
    after = page.at(-1)?.id;
  } while (page.length > 0);

  return getServerSideSitemapLegacy(context, sitemap);
}

export default function Sitemap() {}

Localization

The following example uses the locale option to fetch the sitemap for a specific locale.
pages/sitemap.xml.ts
import { Makeswift } from "@makeswift/runtime/next";
import { getServerSideSitemapLegacy } from "next-sitemap";

import { client } from "makeswift/client";
import { runtime } from "makeswift/runtime";
import "makeswift/components";

export async function getServerSideProps(context) {
  const sitemap = await client.getSitemap({ locale: "es" });

  return getServerSideSitemapLegacy(context, sitemap);
}

export default function Sitemap() {}
If a locale is using domain-based localization, passing the locale to getSitemap will return the sitemap for that particular domain. For example, if in the site settings there is an es locale with a domain of foo.es, then passing es to getSitemap will return the sitemap for foo.es.

Changelog

VersionChanges
v0.11.2Added locale option to getSitemap
v0.10.7Released getSitemap