@j2inn/app
Version:
J2 Innovations core application framework
30 lines (29 loc) • 1.16 kB
TypeScript
import type { AppStore } from './AppStore';
import type { AppView } from './AppView';
/**
* Defines an application that has views associated with it.
*/
export interface App<AppStoreType extends AppStore = AppStore> {
/**
* @returns a unique identifier for an application. This id must be unique as it's
* used in loading and maintaining the state of an application.
*/
id: string;
/**
* @returns An instance of a new store for the application.
*/
store?: AppStoreType;
/**
* The messages the application is listening for.
*/
messages?: string[];
/**
* @returns the app views associated with this application. Each application
* view has a unique key that's combined with the application id to form
* a unique key. For example, if the application id is `finUi.myApp` and id is `myView` then
* the computed id is `finUi.myApp.myView`. Any localized name for the view will
* be computed from the overall id for view with a name postfix. Therefore the
* name for this view would be looked up as `finUi.myApp.myView.name`.
*/
views?: Record<string, AppView>;
}