@shopify/app-bridge
Version:
[](https://travis-ci.com/Shopify/app-bridge) [](https:
40 lines (39 loc) • 1.18 kB
TypeScript
/**
* @module client
*
*/
import { ActionCallback, AnyAction, Dispatch, ErrorSubscriber, Unsubscribe } from '../actions/types';
/**
* @todo Move `MessageTransport` into shared space.
*/
import { Handler, MessageTransport } from '../host';
export interface AppConfig {
apiKey: string;
shopOrigin?: string;
forceRedirect?: boolean;
}
export interface ClientApplication<S> {
dispatch: Dispatch<AnyAction>;
localOrigin: string;
error: ErrorSubscriber;
getState(query?: string): Promise<S>;
subscribe(callback: ActionCallback, id?: string): Unsubscribe;
subscribe(eventNameSpace: string, callback: ActionCallback, id?: string): Unsubscribe;
}
export interface ClientApplicationCreator {
<S>(config: AppConfig, initialState?: S): ClientApplication<S>;
}
/**
* @todo Generalize—pramaterize return type
*/
export interface ClientApplicationTransportInjector {
(transport: MessageTransport): ClientApplicationCreator;
}
export interface ActionListenersMap {
[index: string]: ActionListener[];
}
export interface ActionListener {
id?: string;
callback(data: any): void;
}
export { AnyAction, Dispatch, Handler, Unsubscribe };