One line API call from Javascript

This will pass a method name and a list of arguments to a web-url, passing the classname of the calling javascript. My intent is to allow this to call a same-named class on the server, regardless of the remote language. I've made a working version with PHP, but it was crumb, so I... don't really know where that code is right now.

This also depends on JS Autowire... uhh. Actually, I don't think it really does, but... that's how I wrote it?.

Needless to say, this post needs many improvements. I have a more robust version I'm sorta working on, and I think I'll update this when it's done.

To make it a one-liner, you'd have to do result = await fancyServerObject.fetch(method, ...args);

class FancyServer extends RB.Autowire {  
  
    __attach(){  
        this.func = function(){  
                alert('with timeout');  
            }  
    }  
    showSpinnerWheelDelayed(ms){  
        setTimeout(this.func,ms);  
    }  
    cancelSpinnerWheel(){  
        clearTimeout(this.func);  
    }  
    async fetch(method,...args){  
  
        const uploadMethod = "POST";  
        const url = '/call_api/';  
        const params = {  
            "method": method,  
            "class":this.class ?? this.constructor.name  
        };  
        for (const index in args){  
            params[index] = args[index];  
        }  
        // console.log(args);  
        // console.log(params);  
        var formData = new FormData();  
        for(var key in params){  
            const param = params[key];  
            if (param!=null  
                &&typeof param == typeof []){  
                for(const val of param){  
                    formData.append(key,val);  
                }  
            } else formData.append(key,params[key]);  
        }  
        const submitData = {method: uploadMethod, mode: "cors"};  
        if (uploadMethod=='POST')submitData['body'] = formData;  
  
        const res = await fetch(url, submitData);  
        const json = await res.json();  
        console.log(json);  
        return json.methods[method];  
    }  
}