@polyengine/wasi 0.2.0-pre.g20030fc → 0.2.0-pre.g2125a06
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/http.js +2 -17
- package/package.json +3 -3
- package/types/http.d.ts +0 -26
package/esm/http.js
CHANGED
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
// A10: case names are data, kebab-case as written, including capitals).
|
|
66
66
|
// Fetch failures are TypeErrors with prose; a small sniff table maps the
|
|
67
67
|
// recognizable ones and everything else is `internal-error(message)`.
|
|
68
|
-
import { ComponentException
|
|
68
|
+
import { ComponentException } from "@polyengine/runtime/embedder";
|
|
69
69
|
/**
|
|
70
70
|
* The compatibility track the fragment registers on by default.
|
|
71
71
|
*
|
|
@@ -679,10 +679,7 @@ export function http(options = {}) {
|
|
|
679
679
|
}
|
|
680
680
|
let resp;
|
|
681
681
|
try {
|
|
682
|
-
|
|
683
|
-
// (e.g. a GET with a body) maps through mapFetchError exactly as a
|
|
684
|
-
// fetch throw does, per the same catch below.
|
|
685
|
-
const req = new globalThis.Request(url, {
|
|
682
|
+
resp = await fetch(url, {
|
|
686
683
|
method,
|
|
687
684
|
headers,
|
|
688
685
|
body: body === undefined || body.length === 0 ? undefined : body,
|
|
@@ -690,20 +687,8 @@ export function http(options = {}) {
|
|
|
690
687
|
cache: "no-store",
|
|
691
688
|
credentials: "omit",
|
|
692
689
|
});
|
|
693
|
-
// Resolved at call time (not captured at http() construction), so
|
|
694
|
-
// a test stubbing globalThis.fetch after the fragment exists still
|
|
695
|
-
// takes effect.
|
|
696
|
-
const transport = options.fetch ?? ((r) => globalThis.fetch(r));
|
|
697
|
-
resp = await transport(req);
|
|
698
690
|
}
|
|
699
691
|
catch (e) {
|
|
700
|
-
if (isComponentException(e)) {
|
|
701
|
-
// Branded exception passthrough: the transport named the
|
|
702
|
-
// guest-visible WIT error-code itself; do not run it through
|
|
703
|
-
// mapFetchError's prose sniffing, and rethrow unchanged.
|
|
704
|
-
request.settleTransmission({ kind: "err", value: e.payload });
|
|
705
|
-
throw e;
|
|
706
|
-
}
|
|
707
692
|
const code = mapFetchError(e);
|
|
708
693
|
request.settleTransmission({ kind: "err", value: code });
|
|
709
694
|
throw httpError(code, `client.send: ${e instanceof Error ? e.message : String(e)}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polyengine/wasi",
|
|
3
|
-
"version": "0.2.0-pre.
|
|
3
|
+
"version": "0.2.0-pre.g2125a06",
|
|
4
4
|
"description": "WASI providers for polyengine hosts: the p2 baseline and p3 clocks, one module per semver track.",
|
|
5
5
|
"homepage": "https://github.com/polymorph-components/polyengine#readme",
|
|
6
6
|
"repository": {
|
|
@@ -91,8 +91,8 @@
|
|
|
91
91
|
"access": "public"
|
|
92
92
|
},
|
|
93
93
|
"dependencies": {
|
|
94
|
-
"@polyengine/protocol": "0.2.0-pre.
|
|
95
|
-
"@polyengine/runtime": "0.2.0-pre.
|
|
94
|
+
"@polyengine/protocol": "0.2.0-pre.g2125a06",
|
|
95
|
+
"@polyengine/runtime": "0.2.0-pre.g2125a06"
|
|
96
96
|
},
|
|
97
97
|
"_generatedBy": "dnt@0.43.2"
|
|
98
98
|
}
|
package/types/http.d.ts
CHANGED
|
@@ -131,32 +131,6 @@ export interface HttpOptions {
|
|
|
131
131
|
method: string;
|
|
132
132
|
headers: Headers;
|
|
133
133
|
}) => boolean | Promise<boolean>);
|
|
134
|
-
/**
|
|
135
|
-
* Injectable transport: replaces the `fetch(request)` call `client.send`
|
|
136
|
-
* otherwise makes directly. Default (when omitted): `globalThis.fetch`,
|
|
137
|
-
* resolved AT CALL TIME — not captured when `http()` constructs the
|
|
138
|
-
* fragment — so stubbing `globalThis.fetch` after the fragment exists
|
|
139
|
-
* still takes effect.
|
|
140
|
-
*
|
|
141
|
-
* The `Request` handed to the transport already carries this
|
|
142
|
-
* fragment's hardening (`redirect: "manual"`, `cache: "no-store"`,
|
|
143
|
-
* `credentials: "omit"`). A transport that forwards to the real
|
|
144
|
-
* `fetch` with its own `init` can override these — re-enabling
|
|
145
|
-
* redirect-following in particular would break the property that every
|
|
146
|
-
* redirect hop re-enters `send` and is re-checked by `allowRequest`.
|
|
147
|
-
* The transport is trusted embedder code; this is a caution, not a
|
|
148
|
-
* hole.
|
|
149
|
-
*
|
|
150
|
-
* `request.clone()` is how to inspect the body without consuming it,
|
|
151
|
-
* so a transport can peek (e.g. for logging) and still forward the
|
|
152
|
-
* original request.
|
|
153
|
-
*
|
|
154
|
-
* A transport that throws a branded `ComponentException` names the
|
|
155
|
-
* guest-visible WIT error-code exactly (the fragment rethrows it
|
|
156
|
-
* unchanged); anything else it throws is mapped by this fragment's
|
|
157
|
-
* `mapFetchError` sniffing, which usually lands on `internal-error`.
|
|
158
|
-
*/
|
|
159
|
-
fetch?: (request: globalThis.Request) => Promise<globalThis.Response>;
|
|
160
134
|
}
|
|
161
135
|
/** What `http()` returns: the imports fragment plus the fragment's classes. */
|
|
162
136
|
export interface HttpFragment {
|