2025-02-15 14:27:00 +01:00

27 lines
1.2 KiB
TypeScript

import localeEventImports from '#virtual/calendar/events.ts';
import type { PronounExamplesData } from '~/locale/data.ts';
import { rootDir } from '~/server/paths.ts';
import { parsePronounGroups, parsePronouns } from '~/src/buildPronoun.ts';
import { buildCalendar } from '~/src/calendar/calendar.ts';
import type { Calendar } from '~/src/calendar/helpers.ts';
import { PronounLibrary } from '~/src/classes.ts';
import { loadTsv } from '~/src/tsv.ts';
const dataDir = `${rootDir}/locale/${global.config.locale}`;
export const pronouns = parsePronouns(global.config, loadTsv(`${dataDir}/pronouns/pronouns.tsv`));
const pronounGroups = parsePronounGroups(loadTsv(`${dataDir}/pronouns/pronounGroups.tsv`));
export const pronounLibrary = new PronounLibrary(global.config, pronounGroups, pronouns);
export const pronounExamples = loadTsv(`${dataDir}/pronouns/examples.tsv`) as PronounExamplesData[];
let calendar: Calendar | null = null;
export const loadCalendar = async () => {
if (calendar === null) {
const runtimeConfig = useRuntimeConfig();
const localEvents = await localeEventImports[config.locale]();
calendar = buildCalendar(localEvents, runtimeConfig.public.baseUrl);
}
return calendar;
};