///
declare namespace my {
interface IHttpRequestSuccessResult {
readonly data?: any;
readonly status?: 1 | 2 | 11 | 12 | 13 | 14 | 15 | 19 | 20 | 23;
readonly headers?: Readonly>;
}
interface IRequestTask extends Promise {
abort: () => void;
}
interface IHttpRequestOptions {
/**
* Đường dẫn muốn gọi tới.
*/
url: string;
/**
* Cấu hình headers khi thực hiện gọi network.
*/
headers?: Record;
/**
* Phương thức gọi network. Mặc định sẽ là GET.
*/
method?: 'GET' | 'POST';
/**
* Data kèm theo trong request.。
*/
data?: Record;
/**
* Request sẽ bị cancel sau khoảng thời gian timeout. Đơn vị là ms và mặc định là 30,000 (30s)
*/
timeout?: number;
/**
* Quy định format trả về sau request. Mặc định là JSON. Bạn có thể truyền text nếu muốn nhận raw data.
*/
dataType?: 'json' | 'text' | 'base64';
/**
* Callback function khi việc gọi network thành công.
*/
success?(res: IHttpRequestSuccessResult): void;
/**
* Callback function khi việc gọi network thất bại.
*/
fail?(res: any): void;
/**
* Callback function khi việc gọi network kết thúc cho dù thành công hay thất bại.
*/
complete?(res: any): void;
}
/**
* my.request là API dùng để thực hiện các network request.
*/
function request(options: IHttpRequestOptions): IRequestTask;
interface IUploadFileSuccessResult {
readonly data: string;
readonly statusCode: number;
readonly header: Readonly>;
}
interface IUploadFileOptions {
/**
* Đường dẫn của server muốn upload
*/
url: string;
/**
* Đường dẫn tạm thời của file
*/
filePath: string;
/**
* Tên file của như sử dụng làm key trong form data, server sẽ lấy ra file từ field này
*/
fileName: string;
/**
* Mime của file ví dụ image/png. Hiện chỉ support imag, videos, và audio (image / video / audio)
*/
fileType?: 'image' | 'video' | 'audio';
/**
* HTTP 请求 Header , header 中不能设置 Referer
*/
header?: Record;
/**
* Cấu hình headers khi thực hiện gọi network.
*/
formData?: Record;
/**
* Callback function khi việc upload file thành công.
*/
success?: (res?: IUploadFileSuccessResult) => void;
// Callback function khi việc upload file thất bại.
fail?(res: {error: 11 | 12 | 13}): void;
// Callback function khi việc upload file kết thúc cho dù thành công hay thất bại.
complete?(): void;
}
/**
* my.uploadFile là API dùng để upload file từ máy lên server.
* `Lưu ý:`
* Chỉ thực hiện được việc upload các đường dẫn tạm thời của file ví dụ đường dẫn từ api chooseImage, downloadFile
* https://developers.tiki.vn/docs/api/network/upload
*/
function uploadFile(options: IUploadFileOptions): void;
interface IDownloadFileSuccessResult {
readonly apFilePath: string;
}
interface IDownloadFileFailResult {
error: 12 | 13;
}
interface IDownloadFileOptions {
url: string;
header?: Record;
success?: (res?: IDownloadFileSuccessResult) => void;
fail?(res: IDownloadFileFailResult): void;
complete?(res: IDownloadFileFailResult | IDownloadFileSuccessResult): void;
}
/**
* my.downloadFile là API dùng để dowload file về máy. File sẽ được lưu trữ tạm ở device.
* `Lưu ý:`
* Bạn vẫn có thể sử dụng my.request để download dữ liệu tuy nhiên api my.request chỉ trả về raw data của file.
* Khác với my.request, api downloadFile sẽ thực hiện download về lưu file.
* Sau đó trả về đường dẫn tạm thời có thể truy cập lại file bất cứ lúc nào.
* https://developers.tiki.vn/docs/api/network/down-load
*/
function downloadFile(options: IDownloadFileOptions): void;
interface IConnectFailResult {
readonly error: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
}
interface IConnectSocketOptions {
url: string;
data?: string;
header?: Record;
method?:
| 'OPTIONS'
| 'GET'
| 'HEAD'
| 'POST'
| 'PUT'
| 'DELETE'
| 'TRACE'
| 'CONNECT';
success?(): void;
fail?(res: IConnectFailResult): void;
complete?(res?: IConnectFailResult): void;
}
/**
* `my.connectSocket` được dùng để mở websocket connection tr trên ứng dụng.
* Một ứng dụng chỉ có thể duy trì một WebSocket connection ở cùng một thời điểm.
* Nếu api này được gọi khi có connection được mở trước đó, thì connection trước đó sẽ tự động bị đóng và mở connection mới.
* https://developers.tiki.vn/docs/api/network/connect-socket
*/
function connectSocket(options: IConnectSocketOptions): void;
// my.onSocketOpen là API giúp lắng nghe sự kiện mở connection của WebSocket.
// https://developers.tiki.vn/docs/api/network/on-socket-open
function onSocketOpen(callback: (res?: any) => void): void;
//
function onSocketError(callback: (res?: any) => void): void;
interface ISendSocketMessageOptions {
data: string;
isBuffer?: boolean;
success?(): void;
fail?(): void;
complete?(): void;
}
function sendSocketMessage(options: ISendSocketMessageOptions): void;
interface ISocketMessageResponse {
readonly data: string;
readonly isBuffer: boolean;
}
function onSocketMessage(
callback: (res?: ISocketMessageResponse) => void,
): void;
interface ICloseSocketOptions {
success?(): void;
fail?(): void;
complete?(): void;
}
function closeSocket(options: ICloseSocketOptions): void;
function onSocketClose(callback: (res?: any) => void): void;
function offSocketClose(): void;
}