All files / scripts/generate-news-indexes types.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100                                                                                                                                                                                                       
/**
 * @module generate-news-indexes/types
 * @description Type definitions for the news index generation system.
 *
 * @author Hack23 AB
 * @license Apache-2.0
 */
 
export interface FilterLabels {
  type: string;
  allTypes: string;
  prospective: string;
  retrospective: string;
  analysis: string;
  breaking: string;
  topic: string;
  allTopics: string;
  parliament: string;
  government: string;
  defense: string;
  environment: string;
  committees: string;
  legislation: string;
  sort: string;
  newest: string;
  oldest: string;
  titleSort: string;
}
 
export interface I18nStrings {
  noArticles: string;
  loading: string;
  articleCount: string;
}
 
export interface BreadcrumbLabels {
  home: string;
  news: string;
}
 
export interface LanguageConfig {
  name: string;
  code: string;
  locale: string;
  rtl?: boolean;
  title: string;
  subtitle: string;
  keywords: string;
  breadcrumbs: BreadcrumbLabels;
  backLink: string;
  filters: FilterLabels;
  noResults: string;
  i18n: I18nStrings;
  schemaDescription: string;
}
 
export type LanguageCode =
  | 'en' | 'sv' | 'da' | 'no' | 'fi'
  | 'de' | 'fr' | 'es' | 'nl'
  | 'ar' | 'he' | 'ja' | 'ko' | 'zh';
 
export type ArticleTypeValue = 'prospective' | 'retrospective' | 'analysis' | 'breaking';
 
export interface NewsArticleMetadata {
  slug: string;
  lang: string;
  title: string;
  description: string;
  date: string;
  type: ArticleTypeValue;
  topics: string[];
  tags: string[];
  availableLanguages?: string[];
  baseSlug?: string;
}
 
export interface ArticleDisplayData {
  title: string;
  date: string;
  type: ArticleTypeValue;
  slug: string;
  lang: string;
  availableLanguages: string[];
  excerpt: string;
  topics: string[];
  tags: string[];
}
 
export interface GenerationResult {
  success: boolean;
  successCount: number;
  errorCount: number;
  articles: Record<string, NewsArticleMetadata[]>;
}
 
export interface LanguageNoticeMessage {
  title: string;
  text: string;
}