http/http.ts

87 lines
2.7 KiB
TypeScript
Raw Normal View History

2024-10-15 10:45:04 +08:00
// just for develop
export default {
new: new_,
newH2C,
get,
head,
post,
put,
delete: delete_,
do: do_,
upload,
download,
connect
}
function new_(config?: Config): Client { return null as any }
function newH2C(config?: Config): Client { return null as any }
function get(url: string, headers?: Object): Result { return null as any }
function head(url: string, headers?: Object): Result { return null as any }
function post(url: string, data: any, headers?: Object): Result { return null as any }
function put(url: string, data: any, headers?: Object): Result { return null as any }
function delete_(url: string, data: any, headers?: Object): Result { return null as any }
function do_(method: string, url: string, data: any, callback?: (data: string) => void, headers?: Object): Result { return null as any }
function upload(url: string, form: Object, files: Object, headers?: Object): Result { return null as any }
function download(filename: string, url: string, callback?: (finished: number, total: number) => void, headers?: Object): Result { return null as any }
function connect(url: string, config?: WSConfig): WS { return null as any }
interface Client {
get(url: string, headers?: Object): Result
head(url: string, headers?: Object): Result
post(url: string, data: any, headers?: Object): Result
put(url: string, data: any, headers?: Object): Result
delete(url: string, data: any, headers?: Object): Result
do(method: string, url: string, data: any, callback?: (data: string) => void, headers?: Object): Result
upload(url: string, form: Object, files: Object, headers?: Object): Result
download(filename: string, url: string, callback?: (finished: number, total: number) => void, headers?: Object): Result
}
interface Result {
status: string
statusCode: number
headers: Object
bytes(): Uint8Array
string(): string
object(): Object
}
interface Config {
timeout: number
baseURL: string
globalHeaders: Map<string, string>
downloadPartSize: number
redirect: boolean
}
interface WSConfig {
headers: Object
compress: boolean
onOpen: () => void
onClose: (code: number, data: string) => void
2024-10-16 18:08:06 +08:00
onMessage: (type: string, data: any) => void
2024-10-15 10:45:04 +08:00
pingInterval: number
reconnectInterval: number
}
interface WS {
2024-10-16 18:08:06 +08:00
read: () => WSMessage
2024-10-15 10:45:04 +08:00
write(data: any): void
2024-10-16 18:08:06 +08:00
writeMessage(type: string, data: any): void
ping: () => void
pingCount: () => PingCount
2024-10-15 10:45:04 +08:00
close(): void
2024-10-16 18:08:06 +08:00
}
interface PingCount {
pingTimes: number
pongTimes: number
lastPingTime: number
lastPongTime: number
}
interface WSMessage {
type: string
data: string | Object
}