@nestia/fetcher
Version:
Fetcher library of Nestia SDK
61 lines (54 loc) • 1.52 kB
text/typescript
/**
* Properties of remote API route.
*
* @author Jeongho Nam - https://github.com/samchon
*/
export interface IFetchRoute<
Method extends "HEAD" | "GET" | "POST" | "PUT" | "PATCH" | "DELETE",
> {
/** Method of the HTTP request. */
method: Method;
/** Path of the HTTP request. */
path: string;
/**
* Path template.
*
* Filled since 3.2.2 version.
*/
template?: string;
/** Request body data info. */
request: Method extends "DELETE" | "POST" | "PUT" | "PATCH"
? IFetchRoute.IBody | null
: null;
/** Response body data info. */
response: Method extends "HEAD" ? null : IFetchRoute.IBody;
/** When special status code being used. */
status: number | null;
/**
* Parser of the query string.
*
* If content type of response body is `application/x-www-form-urlencoded`,
* then this `parseQuery` function would be called.
*
* If you've forgotten to configuring this `parseQuery` property about the
* `application/x-www-form-urlencoded` typed response body data, then only the
* `URLSearchParams` typed instance would be returned instead.
*/
parseQuery?(input: URLSearchParams): any;
}
export namespace IFetchRoute {
/**
* Metadata of body.
*
* Describes how content-type being used in body, and whether encrypted or
* not.
*/
export interface IBody {
type:
| "application/json"
| "application/x-www-form-urlencoded"
| "multipart/form-data"
| "text/plain";
encrypted?: boolean;
}
}