mirror of
https://github.com/flarum/core.git
synced 2025-02-24 03:05:12 +01:00
- Use Mithril.Attributes as base for ComponentAttrs, remove =any from class signature for Component - Convert Alert to TypeScript, introduce AlertAttrs interface - Convert AlertManagerState to TypeScript, add overload signatures for `show`, introduce AlertState interface for stored Alerts. - Set ComponentAttrs as default T for Component - Make attrs in AlertAttrs optional - Add AlertIdentifier interface, simplify show type signature - Remove mithril patch shim, as all patches onto m are now deprecated - Use Mithril.Static for shim
41 lines
908 B
TypeScript
41 lines
908 B
TypeScript
// Mithril
|
|
import Mithril from 'mithril';
|
|
|
|
// Other third-party libs
|
|
import * as _dayjs from 'dayjs';
|
|
import * as _$ from 'jquery';
|
|
|
|
// Globals from flarum/core
|
|
import Application from './src/common/Application';
|
|
|
|
/**
|
|
* Export Mithril typings globally.
|
|
*
|
|
* This lets us use these typings without an extra import everywhere we use
|
|
* Mithril in a TypeScript file.
|
|
*/
|
|
export as namespace Mithril;
|
|
|
|
/**
|
|
* flarum/core exposes several extensions globally:
|
|
*
|
|
* - jQuery for convenient DOM manipulation
|
|
* - Mithril for VDOM and components
|
|
* - dayjs for date/time operations
|
|
*
|
|
* Since these are already part of the global namespace, extensions won't need
|
|
* to (and should not) bundle these themselves.
|
|
*/
|
|
declare global {
|
|
const $: typeof _$;
|
|
const m: Mithril.Static;
|
|
const dayjs: typeof _dayjs;
|
|
}
|
|
|
|
/**
|
|
* All global variables owned by flarum/core.
|
|
*/
|
|
declare global {
|
|
const app: Application;
|
|
}
|