spiderlightning
                                
                                 spiderlightning copied to clipboard
                                
                                    spiderlightning copied to clipboard
                            
                            
                            
                        Expose fetch's Response class to JavaScript land
Describe the solution you'd like
As a JavaScript developer, I'd usually need to compose content (grab data from a provider) and return static HTML to clients (aka. Server Side Rendering). In order to accomplish this, JavaScript's engines expose a Response() class, part of fetch Web API.
It'd be great if the following example just works with Slight:
const html = `<!DOCTYPE html><h1>Hello World</h1>`;
const options = {
    headers: {
      "content-type": "text/html",
    },
  };
return new Response(html, options);
See specs: https://fetch.spec.whatwg.org/#response-class
Additional context
I'd also recommend considering exposing Request and Headers, also part of the fetch Web API.
cc @devigned @squillace
Currently, the js HTTP server example looks like: https://github.com/danbugs/slightjs/blob/4fe13b0107c800aeeeaca423cd68d6612b61ae57/examples/http-server/index.js
function handle_get(req) {
    console.log("I just got a request @ uri: ", req.uri, ", w/ method: ", req.method);
    switch (req.uri) {
        case "/get/hello":
            console.log("hello!");
            break;
        default:
            break;
    }
    return JSON.stringify({ headers: null, body: "Hello, JS Wasm!", status: 200 });
}
The previous code snippet shows a route handler func which takes a request structure, logs some messages, and returns a string of JSON.
To clarify:
- the route handler should return a Responsetype matching the fetch spec
- consider exposing the fetch API
Is that accurate?
That's correct.