UNPKG

gravitlauncher-remotecontrol-js

Version:
51 lines (50 loc) 2.48 kB
export interface RequestParams<LogEnabled extends boolean> { rawUrl: string; token: string; command: string; log?: LogEnabled; } export interface ExtractDataOptions<LogEnabled extends boolean> { onException: (exception: string, lines: Line<LogEnabled>[]) => void; onError: (error: ApiErrorResponse['error']) => void; removeColors?: true; filter?: { dev?: true; debug?: true; info?: true; error?: true; }; } export type ExtractedData<LogEnabled extends boolean> = { lines: Line<LogEnabled>[]; data: string; }; export default request; export declare function request<L extends boolean = true>(params: RequestParams<L>, extractData: ExtractDataOptions<L>): Promise<ExtractedData<L>>; export declare function request<L extends boolean = false>(params: RequestParams<L>, extractData: ExtractDataOptions<L>): Promise<ExtractedData<L>>; export declare function request<L extends boolean = true>(params: RequestParams<L>, extractData?: undefined): Promise<ApiResponse<L>>; export declare function request<L extends boolean = false>(params: RequestParams<L>, extractData?: undefined): Promise<ApiResponse<L>>; export declare const isError: (response: ApiResponse<boolean>) => response is ApiErrorResponse; export declare const getSuccess: <LogEnabled extends boolean>(response: ApiResponse<LogEnabled>) => ApiSuccessResponse<LogEnabled>; export declare const isException: <LogEnabled extends boolean>(response: ApiResponse<LogEnabled>) => response is ApiExceptionResponse<LogEnabled>; export type ApiResponse<LogEnabled extends boolean> = Readonly<ApiSuccessResponse<LogEnabled> | ApiExceptionResponse<LogEnabled> | ApiErrorResponse>; export type Line<LogEnabled extends boolean> = LogEnabled extends true ? { level: 'DEV' | 'DEBUG' | 'INFO' | 'ERROR'; message: string; } : undefined; export interface ApiSuccessResponse<LogEnabled extends boolean> { data: { lines: Line<LogEnabled>[]; success: true; }; } export interface ApiExceptionResponse<LogEnabled extends boolean> { data: { lines: Line<LogEnabled>[]; exception: string; success: false; }; } export interface ApiErrorResponse { error: 'RemoteControl disabled' | 'You can used only GET and POST requests' | 'Missing required parameter: token' | 'Token not valid' | 'Missing required parameter: command' | 'You cannot execute this command'; }