@molecule/app-http 1.5.5 → 1.5.7
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/README.md +15 -5
- package/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/unwrap.d.ts +4 -1
- package/dist/unwrap.d.ts.map +1 -1
- package/dist/unwrap.js +4 -1
- package/dist/unwrap.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@ AUTO-GENERATED — DO NOT EDIT THIS FILE.
|
|
|
3
3
|
Generated by `mlcl sync-docs` from the package's src/index.ts JSDoc + mlcl/registry.json.
|
|
4
4
|
Edits here are overwritten on the next commit (molecule's pre-commit hook regenerates).
|
|
5
5
|
To change this document, edit the module-level JSDoc in src/index.ts.
|
|
6
|
-
Generated: 2026-11-
|
|
6
|
+
Generated: 2026-11-07T19:13:01.570Z
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
9
|
# @molecule/app-http
|
|
@@ -23,6 +23,12 @@ key is `data`, finds none of the fields it validates, and answers
|
|
|
23
23
|
`skipAuthGate`) is the THIRD argument. Only `request({ method, url, data, … })` takes `data`
|
|
24
24
|
inside an options object, because there that object IS the config.
|
|
25
25
|
|
|
26
|
+
**Response helpers preserve API-specific field names.** `unwrapSingle<T>(response)` peels
|
|
27
|
+
transport and `data` envelopes. It does not select a named resource such as `{ record: T }`.
|
|
28
|
+
For that body, read `unwrapSingle<{ record: RecordType }>(response)?.record`, or
|
|
29
|
+
`response.data.record` with a typed client call. For a bare resource body, keep the resource
|
|
30
|
+
directly. The generic is a type assertion, not runtime validation of the server's schema.
|
|
31
|
+
|
|
26
32
|
> **Auto-generated, AI-first package reference** for the [molecule.dev](https://molecule.dev) ecosystem.
|
|
27
33
|
> It is written to be read by coding agents as much as by people, and is generated from this
|
|
28
34
|
> package's source — edit `src/index.ts` JSDoc, not this file.
|
|
@@ -873,7 +879,10 @@ function unwrapList<T>(res: unknown): T[]
|
|
|
873
879
|
|
|
874
880
|
#### `unwrapSingle(res)`
|
|
875
881
|
|
|
876
|
-
Normalize
|
|
882
|
+
Normalize a response's transport/data envelopes into a typed object.
|
|
883
|
+
Named API fields remain intact: `{ record: value }` stays `{ record: value }`.
|
|
884
|
+
Select that field explicitly, e.g. `unwrapSingle<{ record: Item }>(res)?.record`.
|
|
885
|
+
The generic asserts the body's type; it does not validate its schema at runtime.
|
|
877
886
|
|
|
878
887
|
Accepts:
|
|
879
888
|
|
|
@@ -1111,9 +1120,10 @@ Two mistakes that break in preview/production (seen in real imported apps):
|
|
|
1111
1120
|
stay in YOUR API; the browser calls your API and the API uses the secret server-side.
|
|
1112
1121
|
Only a publishable/public key may ever be client-side.
|
|
1113
1122
|
|
|
1114
|
-
Auth (the bearer token / session cookie) is attached by the client's
|
|
1115
|
-
|
|
1116
|
-
|
|
1123
|
+
Auth (the bearer token / session cookie) is attached by the bonded client's
|
|
1124
|
+
interceptors and token source. Keep persistence in `@molecule/app-auth`'s
|
|
1125
|
+
`AuthClientConfig.storage`; use the bonded client instead of reading storage
|
|
1126
|
+
or hand-attaching headers in each component.
|
|
1117
1127
|
An API that wants another scheme than `Bearer` (`Authorization: Token <jwt>`) passes
|
|
1118
1128
|
`authScheme: 'Token'` to the client's CONSTRUCTOR — `setClient(createFetchClient({ baseURL,
|
|
1119
1129
|
authScheme: 'Token' }))`, or the bonded provider's constructor
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,12 @@
|
|
|
14
14
|
* `skipAuthGate`) is the THIRD argument. Only `request({ method, url, data, … })` takes `data`
|
|
15
15
|
* inside an options object, because there that object IS the config.
|
|
16
16
|
*
|
|
17
|
+
* **Response helpers preserve API-specific field names.** `unwrapSingle<T>(response)` peels
|
|
18
|
+
* transport and `data` envelopes. It does not select a named resource such as `{ record: T }`.
|
|
19
|
+
* For that body, read `unwrapSingle<{ record: RecordType }>(response)?.record`, or
|
|
20
|
+
* `response.data.record` with a typed client call. For a bare resource body, keep the resource
|
|
21
|
+
* directly. The generic is a type assertion, not runtime validation of the server's schema.
|
|
22
|
+
*
|
|
17
23
|
* @example
|
|
18
24
|
* ```tsx
|
|
19
25
|
* // In a React component, get the configured client from context and call it.
|
|
@@ -56,9 +62,10 @@
|
|
|
56
62
|
* stay in YOUR API; the browser calls your API and the API uses the secret server-side.
|
|
57
63
|
* Only a publishable/public key may ever be client-side.
|
|
58
64
|
*
|
|
59
|
-
* Auth (the bearer token / session cookie) is attached by the client's
|
|
60
|
-
*
|
|
61
|
-
*
|
|
65
|
+
* Auth (the bearer token / session cookie) is attached by the bonded client's
|
|
66
|
+
* interceptors and token source. Keep persistence in `@molecule/app-auth`'s
|
|
67
|
+
* `AuthClientConfig.storage`; use the bonded client instead of reading storage
|
|
68
|
+
* or hand-attaching headers in each component.
|
|
62
69
|
* An API that wants another scheme than `Bearer` (`Authorization: Token <jwt>`) passes
|
|
63
70
|
* `authScheme: 'Token'` to the client's CONSTRUCTOR — `setClient(createFetchClient({ baseURL,
|
|
64
71
|
* authScheme: 'Token' }))`, or the bonded provider's constructor
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8HG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,12 @@
|
|
|
14
14
|
* `skipAuthGate`) is the THIRD argument. Only `request({ method, url, data, … })` takes `data`
|
|
15
15
|
* inside an options object, because there that object IS the config.
|
|
16
16
|
*
|
|
17
|
+
* **Response helpers preserve API-specific field names.** `unwrapSingle<T>(response)` peels
|
|
18
|
+
* transport and `data` envelopes. It does not select a named resource such as `{ record: T }`.
|
|
19
|
+
* For that body, read `unwrapSingle<{ record: RecordType }>(response)?.record`, or
|
|
20
|
+
* `response.data.record` with a typed client call. For a bare resource body, keep the resource
|
|
21
|
+
* directly. The generic is a type assertion, not runtime validation of the server's schema.
|
|
22
|
+
*
|
|
17
23
|
* @example
|
|
18
24
|
* ```tsx
|
|
19
25
|
* // In a React component, get the configured client from context and call it.
|
|
@@ -56,9 +62,10 @@
|
|
|
56
62
|
* stay in YOUR API; the browser calls your API and the API uses the secret server-side.
|
|
57
63
|
* Only a publishable/public key may ever be client-side.
|
|
58
64
|
*
|
|
59
|
-
* Auth (the bearer token / session cookie) is attached by the client's
|
|
60
|
-
*
|
|
61
|
-
*
|
|
65
|
+
* Auth (the bearer token / session cookie) is attached by the bonded client's
|
|
66
|
+
* interceptors and token source. Keep persistence in `@molecule/app-auth`'s
|
|
67
|
+
* `AuthClientConfig.storage`; use the bonded client instead of reading storage
|
|
68
|
+
* or hand-attaching headers in each component.
|
|
62
69
|
* An API that wants another scheme than `Bearer` (`Authorization: Token <jwt>`) passes
|
|
63
70
|
* `authScheme: 'Token'` to the client's CONSTRUCTOR — `setClient(createFetchClient({ baseURL,
|
|
64
71
|
* authScheme: 'Token' }))`, or the bonded provider's constructor
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8HG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA"}
|
package/dist/unwrap.d.ts
CHANGED
|
@@ -48,7 +48,10 @@
|
|
|
48
48
|
*/
|
|
49
49
|
export declare function unwrapList<T>(res: unknown): T[];
|
|
50
50
|
/**
|
|
51
|
-
* Normalize
|
|
51
|
+
* Normalize a response's transport/data envelopes into a typed object.
|
|
52
|
+
* Named API fields remain intact: `{ record: value }` stays `{ record: value }`.
|
|
53
|
+
* Select that field explicitly, e.g. `unwrapSingle<{ record: Item }>(res)?.record`.
|
|
54
|
+
* The generic asserts the body's type; it does not validate its schema at runtime.
|
|
52
55
|
*
|
|
53
56
|
* Accepts:
|
|
54
57
|
* - a non-empty plain object → returned as-is (cast)
|
package/dist/unwrap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unwrap.d.ts","sourceRoot":"","sources":["../src/unwrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC,EAAE,CAmC/C;AAyED
|
|
1
|
+
{"version":3,"file":"unwrap.d.ts","sourceRoot":"","sources":["../src/unwrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC,EAAE,CAmC/C;AAyED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC,GAAG,IAAI,CAmDtD"}
|
package/dist/unwrap.js
CHANGED
|
@@ -151,7 +151,10 @@ function isHttpResponseLike(res) {
|
|
|
151
151
|
typeof res.status === 'number');
|
|
152
152
|
}
|
|
153
153
|
/**
|
|
154
|
-
* Normalize
|
|
154
|
+
* Normalize a response's transport/data envelopes into a typed object.
|
|
155
|
+
* Named API fields remain intact: `{ record: value }` stays `{ record: value }`.
|
|
156
|
+
* Select that field explicitly, e.g. `unwrapSingle<{ record: Item }>(res)?.record`.
|
|
157
|
+
* The generic asserts the body's type; it does not validate its schema at runtime.
|
|
155
158
|
*
|
|
156
159
|
* Accepts:
|
|
157
160
|
* - a non-empty plain object → returned as-is (cast)
|
package/dist/unwrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unwrap.js","sourceRoot":"","sources":["../src/unwrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,UAAU,CAAI,GAAY;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAU,CAAA;IACzC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QACpD,MAAM,KAAK,GAAI,GAAyB,CAAC,IAAI,CAAA;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,KAAY,CAAA;QAC7C,0EAA0E;QAC1E,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,IACE,kBAAkB,CAAC,GAAG,CAAC;YACvB,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,4EAA4E;YAC5E,kEAAkE;YAClE,sEAAsE;YACtE,wDAAwD;YACxD,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC,MAAM,KAAK,CAAC;YACzC,MAAM,IAAI,KAAK;YACf,KAAK,CAAC,OAAO,CAAE,KAA2B,CAAC,IAAI,CAAC,EAChD,CAAC;YACD,OAAQ,KAAuB,CAAC,IAAI,CAAA;QACtC,CAAC;QACD,gFAAgF;QAChF,+EAA+E;QAC/E,iFAAiF;QACjF,+EAA+E;QAC/E,gFAAgF;QAChF,6DAA6D;QAC7D,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO,KAAK,CAAC,IAAW,CAAA;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,OAAO;IACP,OAAO;IACP,QAAQ;IACR,MAAM;IACN,UAAU;IACV,UAAU;IACV,SAAS;IACT,OAAO;IACP,4EAA4E;IAC5E,6EAA6E;IAC7E,8EAA8E;IAC9E,8EAA8E;IAC9E,2EAA2E;IAC3E,uBAAuB;IACvB,aAAa;IACb,cAAc;IACd,SAAS;IACT,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,MAAM;IACN,OAAO;CACR,CAAC,CAAA;AAEF;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,CAAU;IACtC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,CAAwB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IAChE,8EAA8E;IAC9E,8EAA8E;IAC9E,6EAA6E;IAC7E,2EAA2E;IAC3E,qEAAqE;IACrE,4DAA4D;IAC5D,EAAE;IACF,8EAA8E;IAC9E,4EAA4E;IAC5E,kEAAkE;IAClE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACtF,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,GAAY;IACtC,OAAO,CACL,CAAC,CAAC,GAAG;QACL,OAAO,GAAG,KAAK,QAAQ;QACvB,MAAM,IAAI,GAAG;QACb,QAAQ,IAAI,GAAG;QACf,OAAQ,GAA2B,CAAC,MAAM,KAAK,QAAQ,CACxD,CAAA;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"unwrap.js","sourceRoot":"","sources":["../src/unwrap.ts"],"names":[],"mappings":"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"}
|