@helpwave/hightide
Version:
helpwave's component and theming library
102 lines (99 loc) • 2.71 kB
text/typescript
import { z } from 'zod';
import { Language } from '../localization/util.mjs';
type News = {
title: string;
date: Date;
description: (string | URL)[];
externalResource?: URL;
keys: string[];
};
type LocalizedNews = Record<Language, News[]>;
declare const newsSchema: z.ZodEffects<z.ZodObject<{
title: z.ZodString;
description: z.ZodString;
date: z.ZodString;
image: z.ZodOptional<z.ZodString>;
externalResource: z.ZodOptional<z.ZodString>;
keys: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
title?: string;
description?: string;
date?: string;
image?: string;
keys?: string[];
externalResource?: string;
}, {
title?: string;
description?: string;
date?: string;
image?: string;
keys?: string[];
externalResource?: string;
}>, News, {
title?: string;
description?: string;
date?: string;
image?: string;
keys?: string[];
externalResource?: string;
}>;
declare const newsListSchema: z.ZodArray<z.ZodEffects<z.ZodObject<{
title: z.ZodString;
description: z.ZodString;
date: z.ZodString;
image: z.ZodOptional<z.ZodString>;
externalResource: z.ZodOptional<z.ZodString>;
keys: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
title?: string;
description?: string;
date?: string;
image?: string;
keys?: string[];
externalResource?: string;
}, {
title?: string;
description?: string;
date?: string;
image?: string;
keys?: string[];
externalResource?: string;
}>, News, {
title?: string;
description?: string;
date?: string;
image?: string;
keys?: string[];
externalResource?: string;
}>, "many">;
declare const localizedNewsSchema: z.ZodRecord<z.ZodEnum<["en", "de"]>, z.ZodArray<z.ZodEffects<z.ZodObject<{
title: z.ZodString;
description: z.ZodString;
date: z.ZodString;
image: z.ZodOptional<z.ZodString>;
externalResource: z.ZodOptional<z.ZodString>;
keys: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
title?: string;
description?: string;
date?: string;
image?: string;
keys?: string[];
externalResource?: string;
}, {
title?: string;
description?: string;
date?: string;
image?: string;
keys?: string[];
externalResource?: string;
}>, News, {
title?: string;
description?: string;
date?: string;
image?: string;
keys?: string[];
externalResource?: string;
}>, "many">>;
declare const filterNews: (localizedNews: News[], requiredKeys: string[]) => News[];
export { type LocalizedNews, type News, filterNews, localizedNewsSchema, newsListSchema, newsSchema };