libcurl.js/client/javascript/ftp.js

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() {
}
}