@prismicio/client
Version:
The official JavaScript + TypeScript client library for Prismic
36 lines (33 loc) • 961 B
text/typescript
import { PrismicError } from "./errors/PrismicError"
import { isRepositoryName } from "./isRepositoryName"
/**
* Get a repository's Prismic Content API endpoint.
*
* @example
*
* ```ts
* getRepositoryEndpoint("my-repo")
* // => "https://my-repo.cdn.prismic.io/api/v2"
* ```
*
* @typeParam RepositoryName - Name of the Prismic repository.
*
* @param repositoryName - Name of the repository.
*
* @returns The repository's Prismic Content API endpoint.
*
* @throws {@link Error} Thrown if an invalid repository name is provided.
*/
export const getRepositoryEndpoint = <RepositoryName extends string>(
repositoryName: RepositoryName,
): `https://${RepositoryName}.cdn.prismic.io/api/v2` => {
if (isRepositoryName(repositoryName)) {
return `https://${repositoryName}.cdn.prismic.io/api/v2` as const
} else {
throw new PrismicError(
`An invalid Prismic repository name was given: ${repositoryName}`,
undefined,
undefined,
)
}
}