diff --git a/cloudflare/dostub.go b/cloudflare/dostub.go index 104920b..9f733e2 100644 --- a/cloudflare/dostub.go +++ b/cloudflare/dostub.go @@ -9,6 +9,7 @@ import ( "strings" "syscall/js" + "github.com/syumai/workers/internal/jshttp" "github.com/syumai/workers/internal/jsutil" ) @@ -92,7 +93,7 @@ func toHeader(headers js.Value) http.Header { func toJSRequest(req *http.Request) js.Value { jsReqOptions := jsutil.NewObject() jsReqOptions.Set("method", req.Method) - jsReqOptions.Set("headers", jsutil.ToJSHeader(req.Header)) + jsReqOptions.Set("headers", jshttp.ToJSHeader(req.Header)) jsReqBody := js.Undefined() if req.Body != nil { jsReqBody = jsutil.ConvertReaderToReadableStream(req.Body) diff --git a/handler.go b/handler.go index 5bfb84d..ba114c5 100644 --- a/handler.go +++ b/handler.go @@ -7,6 +7,7 @@ import ( "net/http" "syscall/js" + "github.com/syumai/workers/internal/jshttp" "github.com/syumai/workers/internal/jsutil" "github.com/syumai/workers/internal/runtimecontext" ) @@ -47,14 +48,14 @@ func handleRequest(reqObj js.Value, runtimeCtxObj js.Value) (js.Value, error) { if httpHandler == nil { return js.Value{}, fmt.Errorf("Serve must be called before handleRequest.") } - req, err := jsutil.ToRequest(reqObj) + req, err := jshttp.ToRequest(reqObj) if err != nil { panic(err) } ctx := runtimecontext.New(context.Background(), runtimeCtxObj) req = req.WithContext(ctx) reader, writer := io.Pipe() - w := &jsutil.ResponseWriterBuffer{ + w := &jshttp.ResponseWriterBuffer{ HeaderValue: http.Header{}, StatusCode: http.StatusOK, Reader: reader, @@ -66,7 +67,7 @@ func handleRequest(reqObj js.Value, runtimeCtxObj js.Value) (js.Value, error) { defer writer.Close() httpHandler.ServeHTTP(w, req) }() - return jsutil.ToJSResponse(w) + return jshttp.ToJSResponse(w) } // Server serves http.Handler on Cloudflare Workers. diff --git a/internal/jsutil/request.go b/internal/jshttp/request.go similarity index 89% rename from internal/jsutil/request.go rename to internal/jshttp/request.go index 6c44b9f..655a0d3 100644 --- a/internal/jsutil/request.go +++ b/internal/jshttp/request.go @@ -1,4 +1,4 @@ -package jsutil +package jshttp import ( "io" @@ -7,6 +7,8 @@ import ( "strconv" "strings" "syscall/js" + + "github.com/syumai/workers/internal/jsutil" ) // ToBody converts JavaScripts sides ReadableStream (can be null) to io.ReadCloser. @@ -16,13 +18,13 @@ func ToBody(streamOrNull js.Value) io.ReadCloser { return nil } sr := streamOrNull.Call("getReader") - return io.NopCloser(ConvertStreamReaderToReader(sr)) + return io.NopCloser(jsutil.ConvertStreamReaderToReader(sr)) } // ToHeader converts JavaScript sides Headers to http.Header. // - Headers: https://developer.mozilla.org/ja/docs/Web/API/Headers func ToHeader(headers js.Value) http.Header { - entries := ArrayFrom(headers.Call("entries")) + entries := jsutil.ArrayFrom(headers.Call("entries")) headerLen := entries.Length() h := http.Header{} for i := 0; i < headerLen; i++ { diff --git a/internal/jsutil/response.go b/internal/jshttp/response.go similarity index 66% rename from internal/jsutil/response.go rename to internal/jshttp/response.go index d114af7..5205c57 100644 --- a/internal/jsutil/response.go +++ b/internal/jshttp/response.go @@ -1,12 +1,14 @@ -package jsutil +package jshttp import ( "net/http" "syscall/js" + + "github.com/syumai/workers/internal/jsutil" ) func ToJSHeader(header http.Header) js.Value { - h := HeadersClass.New() + h := jsutil.HeadersClass.New() for key, values := range header { for _, value := range values { h.Call("append", key, value) @@ -21,10 +23,10 @@ func ToJSResponse(w *ResponseWriterBuffer) (js.Value, error) { if status == 0 { status = http.StatusOK } - respInit := NewObject() + respInit := jsutil.NewObject() respInit.Set("status", status) respInit.Set("statusText", http.StatusText(status)) respInit.Set("headers", ToJSHeader(w.Header())) - readableStream := ConvertReaderToReadableStream(w.Reader) - return ResponseClass.New(readableStream, respInit), nil + readableStream := jsutil.ConvertReaderToReadableStream(w.Reader) + return jsutil.ResponseClass.New(readableStream, respInit), nil } diff --git a/internal/jsutil/responsewriter.go b/internal/jshttp/responsewriter.go similarity index 97% rename from internal/jsutil/responsewriter.go rename to internal/jshttp/responsewriter.go index 62327b4..b58e0f6 100644 --- a/internal/jsutil/responsewriter.go +++ b/internal/jshttp/responsewriter.go @@ -1,4 +1,4 @@ -package jsutil +package jshttp import ( "io"