mirror of
https://github.com/ading2210/libcurl.js.git
synced 2025-05-13 14:30:02 -04:00
44 lines
No EOL
1,018 B
JavaScript
44 lines
No EOL
1,018 B
JavaScript
//unfinished!
|
|
|
|
class FTPSession {
|
|
constructor(url, options={}) {
|
|
if (!url.startsWith("ftp://") || !url.startsWith("ftps://")) {
|
|
throw "invalid url protocol";
|
|
}
|
|
|
|
this.url = url;
|
|
this.cwd = new URL(url).pathname;
|
|
this.options = options;
|
|
this.http_handle = null;
|
|
}
|
|
|
|
do_request(url) {
|
|
return new Promise((resolve, reject) => {
|
|
let http_handle;
|
|
let data_callback = (data) => {this.data_callback(data)};
|
|
let finish_callback = (error) => {
|
|
_cleanup_handle(http_handle);
|
|
if (error) {
|
|
reject();
|
|
}
|
|
else {
|
|
resolve();
|
|
}
|
|
};
|
|
let headers_callback = () => {this.headers_callback()};
|
|
|
|
http_handle = create_request(url, data_callback, finish_callback, headers_callback);
|
|
_ftp_set_options(http_handle, url, 1);
|
|
start_request(http_handle);
|
|
});
|
|
}
|
|
|
|
async download(path) {
|
|
let url = new URL(path, this.url);
|
|
_ftp_set_options(this.http_handle, url, 0);
|
|
}
|
|
|
|
cleanup() {
|
|
|
|
}
|
|
} |