domain/converters/home.converter.ts

domain/converters/home.converter.ts is a file in Bane's Lab Site. 19 lines of code and 4 definitions.

import { INFORMATION_PAGE, LICENSE_PAGE, PRIVACY_PAGE, TERMS_PAGE } from "#core/ids/page.ids";
import { INFORMATION_TITLE, LICENSE_TITLE, PRIVACY_TITLE, TERMS_TITLE } from "#configuration/strings/page.strings";
import type { HomeTag } from "#types/home.types";
import { PAGE_TABS } from "#core/generated/tab.generated";
import { pagePath } from "#core/assets/link.assets";

const PLATFORM_PAGES: readonly (readonly [string, string])[] = [
    [LICENSE_PAGE, LICENSE_TITLE],
    [INFORMATION_PAGE, INFORMATION_TITLE],
    [TERMS_PAGE, TERMS_TITLE],
    [PRIVACY_PAGE, PRIVACY_TITLE],
];

const PLATFORM_TAGS: readonly HomeTag[] = PLATFORM_PAGES.map(([page, label]) => ({ label, path: pagePath(page) }));

export const tagsFor = function tagsFor(page: string): readonly HomeTag[] {
    const held = PAGE_TABS.find((entry) => entry.page === page);
    if (held === undefined) {
        return PLATFORM_TAGS;
    }
    return held.tabs.map((tab) => ({ label: tab.label, path: tab.path }));
};