UNPKG

@prezly/theme-kit-core

Version:

Data layer and utility library for developing Prezly themes with JavaScript

38 lines (37 loc) 1.54 kB
import { Category } from '@prezly/sdk'; import type { Newsroom, Story } from '@prezly/sdk'; import { Locale } from '@prezly/theme-kit-intl'; import { AsyncResolvable } from '../resolvable'; import type { AppUrlGenerator, ChangeFrequency, ChangeFrequencyFn, Priority, PriorityFn, SitemapFile, SitemapFileEntry } from './types'; type SitemapFileEntryWithLocale = SitemapFileEntry & { locale: Locale.Code; }; export interface Options { baseUrl: string; changeFrequency?: ChangeFrequencyFn; priority?: PriorityFn; } type Context = { locales: Locale.Code[]; newsroom: Newsroom; stories: Story[]; categories: Category[]; generateUrl: AppUrlGenerator; }; export type AsyncResolvableContext = { locales: AsyncResolvable<Context['locales']>; newsroom: AsyncResolvable<Context['newsroom']>; stories: AsyncResolvable<Context['stories']>; categories: AsyncResolvable<Context['categories']>; generateUrl: AppUrlGenerator; }; export declare function generate(context: AsyncResolvableContext, options: Options): Promise<SitemapFile>; export declare function guessChangeFrequency(routeName: 'index' | 'category' | 'story' | 'media'): ChangeFrequency; export declare function guessPriority(routeName: 'index' | 'category' | 'story' | 'media'): Priority; export declare function withAlternateLinks(entries: SitemapFileEntryWithLocale[]): SitemapFileEntry[]; export declare function isNonEmptyUrl<T extends { url?: string | undefined; }>(value: T): value is T & { url: string; }; export {};