@prezly/theme-kit-core
Version:
Data layer and utility library for developing Prezly themes with JavaScript
38 lines (37 loc) • 1.54 kB
TypeScript
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 {};