nestedreact
Version:
Advanced models, state management, and data binding solution for React
23 lines (18 loc) • 1.17 kB
text/typescript
import { ComponentClass } from './common'
import { Messenger } from 'type-r'
import onDefineStore, { StoreDefinition, StoreProto } from './store'
import onDefineState, { StateDefinition, StateProto } from './state'
import onDefineContext, { ContextDefinition, ContextProto } from './context'
import onDefineProps, { PropsDefinition, PropsProto } from './props'
export interface ComponentDefinition extends StoreDefinition, StateDefinition, ContextDefinition, PropsDefinition {}
export interface ComponentProto extends StoreProto, StateProto, ContextProto, PropsProto {}
export default function onDefine( this : ComponentClass<ComponentProto>, definition : ComponentDefinition, BaseClass : ComponentClass<ComponentProto> ){
// Initialize mixins placeholder...
onDefineStore.call( this, definition, BaseClass );
onDefineState.call( this, definition, BaseClass );
onDefineContext.call( this, definition, BaseClass );
onDefineProps.call( this, definition, BaseClass );
Messenger.onDefine.call( this, definition, BaseClass );
};
export { Node, Element, TypeSpecs } from './typeSpecs'
export { EmptyPropsChangeTokensCtor } from './pureRender'