declare global {
  interface Window {
    __MINSTREL__?: { appName: string };
  }
}

const DEFAULT_APP_NAME = 'Minstrel';

const isRenderedToken = (v: string | undefined): v is string =>
  typeof v === 'string' && v.length > 0 && !v.includes('{{');

export const appName = (): string => {
  if (typeof window === 'undefined') return DEFAULT_APP_NAME;
  return isRenderedToken(window.__MINSTREL__?.appName)
    ? window.__MINSTREL__!.appName
    : DEFAULT_APP_NAME;
};

export const pageTitle = (section?: string): string =>
  section ? `${appName()} · ${section}` : appName();

// Ensure this file is treated as a module (the global declaration above
// otherwise turns it into a global script).
export {};
