UNPKG

react-application-core

Version:

A react-based application core for the business applications.

77 lines (76 loc) 2.67 kB
import { AnyT, IChannelWrapper, IConnectedWrapper, IDataWrapper, IIpWrapper, IMessagesWrapper, INameWrapper } from '../definitions.interface'; import { IFluxEntity } from './flux-definition.interface'; import { PayloadWrapper } from '../channel/protocol/payload.wrapper'; /** * @entity * @stable [12.06.2020] */ export interface IChannelMessageEntity<TData = AnyT> extends IDataWrapper<TData>, IIpWrapper, IMessagesWrapper<any>, INameWrapper { } /** * @flux-entity * @stable [06.11.2020] */ export interface IFluxChannelMessageEntity<TData = AnyT> extends IFluxEntity<IChannelMessageEntity<TData>> { } /** * @redux-entity * @stable [12.06.2020] */ export interface IReduxChannelMessageEntity<TMessage = AnyT> extends IIpWrapper, INameWrapper, IDataWrapper<TMessage> { uuid?: string; } /** * @redux-entity * @stable [12.06.2020] */ export interface IReduxChannelEntity extends IMessagesWrapper<IReduxChannelMessageEntity[]>, IConnectedWrapper { } /** * @redux-entity * @stable [12.06.2020] */ export interface IReduxChannelsEntity extends Record<string, IReduxChannelEntity> { } /** * @redux-holder-entity * @stable [12.06.2020] */ export interface IReduxChannelHolderEntity<TEntity = IReduxChannelsEntity> extends IChannelWrapper<TEntity> { } /** * @service * @stable [06.11.2020] */ export interface IChannelClient { close(): Promise<void>; emit(event: string, ...args: unknown[]): Promise<void>; on(event: string, callback: (...args: AnyT[]) => void): Promise<void>; } /** * @service * @stable [06.11.2020] */ export interface IChannel<TConfig = {}, TMessage = unknown> { connect(ip: string, config?: TConfig): Promise<void>; disconnect(ip: any): Promise<void>; emitChannelEvent(ip: string, ...args: TMessage[]): Promise<void>; emitEvent(ip: string, event: string, ...args: TMessage[]): Promise<void>; emitRequestPayload(ip: string, requestPayload: PayloadWrapper): Promise<void>; hasClient(ip: any): boolean; onConnect(ip: string, client: IChannelClient): void; onDisconnect(ip: string, client: IChannelClient): void; onMessage(ip: string, messageName?: string, payload?: string): void; } /** * @initial-redux-entity * @stable [31.07.2020] */ export declare const INITIAL_REDUX_CHANNELS_ENTITY: Readonly<IReduxChannelsEntity>; /** * @stable [06.11.2020] */ export declare const $CHANNEL_RECEIVE_MESSAGE_ACTION_TYPE: string; export declare const $CHANNEL_REPLACE_MESSAGES_ACTION_TYPE: string; export declare const CHANNEL_CONNECT_EVENT = "connect"; export declare const CHANNEL_DISCONNECT_EVENT = "disconnect";