UNPKG

lupine.web

Version:

lupine.web is a extremely fast, small size and lightweight frontend framework, using React TSX syntax.

45 lines (34 loc) 1.5 kB
import { CssProps } from '../jsx'; import { ThemesProps } from '../models'; import { ISimpleStorage } from './simple-storage-props'; export type SiteLangProps = { code: string; text: string }; export type LangProps = { [key: string]: string }; export type LangsProps = { [key: string]: LangProps }; export type StylesProps = Map<string, { topUniqueClassName: string; noTopClassName: boolean; style: CssProps }>; // this is called at generatePage & initializePage, a chance to set data for each session // export type SetDataEventProps = () => void; // those data should be set once at index.tsx and never change, because they are same for all sessions export type AppDataProps = { defaultPageTitle: string; siteDefaultLang: string; siteLangs: SiteLangProps[]; // defaultLang is be getting from user settings // defaultLang: string; langs: LangsProps; defaultTheme: string; themes: ThemesProps; appGlobalStyles: StylesProps; // setDataEvent: SetDataEventProps | null; }; // those data is for each request export interface IRequestContextProps { pageTitle: string; metaData: { [key: string]: string }; themeName: string; langName: string; globalStyles: StylesProps; globalStyleIds: Map<CssProps, string>; coreData: { [key: string]: any }; // for core development devData: { [key: string]: any }; // for secondary development serverCookies?: ISimpleStorage; // per-request cookies for SSR (concurrency safe) }