@commercetools-frontend/sdk
Version:
Tools for declarative fetching
39 lines (38 loc) • 1.08 kB
TypeScript
import type { Dispatch } from 'redux';
import type { TSdkAction, Json } from '../types';
/**
* START -->
* Remove once `@commercetools/sdk-client` exposes proper types.
*/
export type Headers = {
[key: string]: string;
};
export type MethodType = 'GET' | 'POST' | 'DELETE' | 'HEAD' | 'OPTIONS' | 'PUT' | 'PATCH' | 'TRACE';
export type ClientRequest = {
uri: string;
method: MethodType;
body?: unknown;
headers?: Headers;
};
export type HttpErrorType = {
name: string;
message: string;
code: number;
status: number;
statusCode: number;
originalRequest: ClientRequest;
body?: Json;
headers?: Headers;
};
interface TSdkMockBase {
action: TSdkAction;
}
interface TSdkMockSuccess extends TSdkMockBase {
response: Json;
}
interface TSdkMockFailure extends TSdkMockBase {
error: HttpErrorType;
}
export type TSdkMock = TSdkMockSuccess | TSdkMockFailure;
declare const createTestMiddleware: (mocks: TSdkMock[]) => () => (next: Dispatch<TSdkAction>) => (action: TSdkAction) => Promise<Json>;
export { createTestMiddleware };