UNPKG

@prismicio/client

Version:

The official JavaScript + TypeScript client library for Prismic

51 lines (48 loc) 1.42 kB
import { PrismicError } from "./errors/PrismicError" import { isRepositoryName } from "./isRepositoryName" /** * Returns the URL for a Prismic repository's Prismic Toolbar script. Use the * URL to inject the script into your app. * * @example * * ```typescriptreact * // In Next.js apps, use `next/script` in your `app/layout.tsx` file. * * import Script from "next/script"; * import * as prismic from "@prismicio/client"; * * export default function RootLayout({ * children, * }: { * children: React.ReactNode, * }) { * const toolbarSrc = prismic.getToolbarSrc("my-repo"); * * return ( * <html lang="en"> * <body>{children}</body> * <Script src={toolbarSrc} /> * </html> * ); * } * ``` * * @param repositoryName - The name of the Prismic repository. For example, * `"my-repo"` if the repository URL is `my-repo.prismic.io`. * * @returns The URL for the given Prismic repository's Prismic Toolbar script. */ export const getToolbarSrc = <TRepositoryName extends string>( repositoryName: TRepositoryName, ): `https://static.cdn.prismic.io/prismic.js?new=true&repo=${TRepositoryName}` => { if (isRepositoryName(repositoryName)) { return `https://static.cdn.prismic.io/prismic.js?new=true&repo=${repositoryName}` as const } else { throw new PrismicError( `An invalid Prismic repository name was given: ${repositoryName}`, undefined, undefined, ) } }