Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
{
"image": "ubuntu:jammy",
"remoteEnv": {
"PATH": "${containerEnv:PATH}:/usr/local/lib/wasi-sdk-20.0/bin"
"PATH": "${containerEnv:PATH}:/usr/local/lib/wasi-sdk-20.0/bin:/usr/local/lib"
},
"features": {
"devwasm.azurecr.io/dev-wasm/dev-wasm-feature/wasmtime-wasi:0.0.8": {
"version": "20"
"devwasm.azurecr.io/dev-wasm/dev-wasm-feature/wasmtime-wasi:0.0.9": {
"version": "20",
"wasmtime_version": "v11.0.1",
"wit_version": "0.8.0"
},
"ghcr.io/devcontainers/features/node:1": {},
"ghcr.io/devcontainers/features/common-utils": {}
Expand Down
80 changes: 0 additions & 80 deletions http/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 14 additions & 12 deletions http/raw.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,36 @@ export type WasiPtr<T> = usize;
type WasiMutPtr<T> = usize;
type WasiStringBytesPtr = WasiPtr<Char8>;

@external("types", "new-outgoing-request")
@external("wasi:http/types", "new-outgoing-request")
export declare function new_outgoing_request(
method: WasiHandle,
method_ptr: WasiPtr<Char8>,
method_len: usize,
path_is_some: usize,
path_ptr: WasiPtr<Char8>,
path_len: usize,
query_ptr: WasiPtr<Char8>,
query_len: usize,
// query_ptr: WasiPtr<Char8>,
// query_len: usize,
scheme_is_some: usize,
scheme: usize,
scheme_ptr: WasiPtr<Char8>,
scheme_len: usize,
authority_is_some: usize,
authority_ptr: WasiPtr<Char8>,
authority_len: usize,
headers: usize,
): WasiHandle;

@external("types", "outgoing-request-write")
@external("wasi:http/types", "outgoing-request-write")
export declare function outgoing_request_write(request: WasiHandle, stream_ptr: WasiPtr<WasiHandle>): void;

@external("types", "new-fields")
@external("wasi:http/types", "new-fields")
export declare function new_fields(
fields_ptr: WasiPtr<usize>,
fields_len: usize,
): WasiHandle;

@external("default-outgoing-HTTP", "handle")
@external("wasi:http/outgoing-handler", "handle")
export declare function handle(
request: WasiHandle,
a: usize,
Expand All @@ -44,22 +46,22 @@ export declare function handle(
g: usize,
): WasiHandle;

@external("types", "future-incoming-response-get")
@external("wasi:http/types", "future-incoming-response-get")
export declare function future_incoming_response_get(handle: WasiHandle, ptr: WasiPtr<WasiHandle>): void;

@external("types", "incoming-response-status")
@external("wasi:http/types", "incoming-response-status")
export declare function incoming_response_status(handle: WasiHandle): usize;

@external("types", "incoming-response-headers")
@external("wasi:http/types", "incoming-response-headers")
export declare function incoming_response_headers(handle: WasiHandle): WasiHandle;

@external("types", "incoming-response-consume")
@external("wasi:http/types", "incoming-response-consume")
export declare function incoming_response_consume(handle: WasiHandle, ptr: WasiPtr<u8>): void;

@external("streams", "read")
@external("wasi:io/streams", "read")
export declare function streams_read(handle: WasiHandle, len: i64, ptr: WasiPtr<Char8>): void;

@external("streams", "write")
@external("wasi:io/streams", "write")
export declare function streams_write(handle: WasiHandle, ptr: WasiPtr<Char8>, len: usize, result: WasiPtr<WasiHandle>): void;


Expand Down
5 changes: 2 additions & 3 deletions http/request.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,10 @@ export function request(method: string, url: string, body: string | null, header
}
let header_handle = raw.new_fields(header_ptr, header_length);

let path = new raw.WasiString(u.path);
let path = new raw.WasiString(u.path + (u.query.length > 0 ? (u.query) : ""));
let authority = new raw.WasiString(u.authority);
let query = new raw.WasiString(u.query);
let m = getMethod(method);
let req = raw.new_outgoing_request(m, 0, 0, path.ptr, path.length, query.ptr, query.length, 0, 0, 0, 0, authority.ptr, authority.length, header_handle);
let req = raw.new_outgoing_request(m, 0, 0, 1, path.ptr, path.length, 0, 0, 0, 0, 1, authority.ptr, authority.length, header_handle);

let res: raw.WasiPtr<raw.WasiHandle>;

Expand Down