next.js/examples/cms-sitecore-xmcloud/src/lib/site-resolver/index.ts
index.ts29 lines800 B
import {
  SiteInfo,
  SiteResolver,
} from "@sitecore-jss/sitecore-jss-nextjs/middleware";
import * as plugins from "temp/site-resolver-plugins";

/*
  The site resolver stores site information and is used in the app
  whenever site lookup is required (e.g. by name in page props factory
  or by host in Next.js middleware).

  By default, the app is single-site (one JSS app per Sitecore site).
  However, multi-site is available with the `nextjs-multisite` add-on.
*/

export interface SiteResolverPlugin {
  /**
   * A function which will be called during sites collection
   */
  exec(sites: SiteInfo[]): SiteInfo[];
}

const sites = (Object.values(plugins) as SiteResolverPlugin[]).reduce(
  (sites, plugin) => plugin.exec(sites),
  [],
);

export const siteResolver = new SiteResolver(sites);
Quest for Codev2.0.0
/
SIGN IN