Skip to content

Commit 6f89008

Browse files
committed
update docs
Feat: Expose a way to pass in custom fetch (@W-21293162@) (#272) * expose a way to pass in custom fetch via client config * update changelog update docs lint
1 parent 78038b0 commit 6f89008

File tree

54 files changed

+4711
-1669
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+4711
-1669
lines changed

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,32 @@
11
# CHANGELOG
22

3+
## v5.1.0
4+
5+
### API Versions
6+
7+
| API Name | API Version |
8+
|----------|-------------|
9+
| shopper-login | 1.46.0 |
10+
| shopper-baskets | 1.11.0 |
11+
| shopper-baskets | 2.5.1 |
12+
| shopper-configurations | 1.2.0 |
13+
| shopper-consents | 1.1.4 |
14+
| shopper-context | 1.1.3 |
15+
| shopper-customers | 1.6.1 |
16+
| shopper-experience | 1.2.1 |
17+
| shopper-gift-certificates | 1.2.0 |
18+
| shopper-orders | 1.12.1 |
19+
| shopper-payments | 1.4.0 |
20+
| shopper-products | 1.3.0 |
21+
| shopper-promotions | 1.2.0 |
22+
| shopper-search | 1.8.0 |
23+
| shopper-seo | 1.0.17 |
24+
| shopper-stores | 1.2.0 |
25+
26+
### Enchancements
27+
28+
- Allow developers to pass in custom fetch implementation via `clientConfig` [#272](https://github.com/SalesforceCommerceCloud/commerce-sdk-isomorphic/pull/272)
29+
330
## v5.0.0
431

532
### API Versions

README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,45 @@ await helpers.callCustomEndpoint({
223223

224224
For more documentation about this helper function, please refer to the [commerce-sdk-isomorphic docs](https://salesforcecommercecloud.github.io/commerce-sdk-isomorphic/modules/helpers.html).
225225

226+
#### Custom Fetch function
227+
228+
You can provide your own custom fetch function to intercept, log, or modify all SDK requests. This is useful for:
229+
- **Request/Response Logging**: Track all API calls for debugging and monitoring
230+
- **Request Interception**: Add custom headers, modify request URLs, or implement custom retry logic
231+
- **Error Handling**: Add custom error processing or transformation before responses reach your application
232+
- **Performance Monitoring**: Measure request/response times and track API performance metrics
233+
234+
**Example with Logging:**
235+
```javascript
236+
// Custom fetch function with detailed logging
237+
const customFetch = async (url, options) => {
238+
console.log(`[SDK Request] ${options?.method || 'GET'} ${url}`);
239+
console.log('[SDK Request Headers]', options?.headers);
240+
if (options?.body) {
241+
console.log('[SDK Request Body]', options.body);
242+
}
243+
244+
const startTime = Date.now();
245+
const response = await fetch(url, options);
246+
const duration = Date.now() - startTime;
247+
248+
console.log(`[SDK Response] ${response.status} ${response.statusText} (${duration}ms)`);
249+
console.log('[SDK Response Headers]', Object.fromEntries(response.headers.entries()));
250+
251+
return response;
252+
};
253+
254+
const config = {
255+
parameters: {
256+
clientId: '<your-client-id>',
257+
organizationId: '<your-org-id>',
258+
shortCode: '<your-short-code>',
259+
siteId: '<your-site-id>',
260+
},
261+
fetch: customFetch,
262+
};
263+
```
264+
226265
#### Encoding special characters
227266
228267
The SDK currently single encodes special characters for query parameters in UTF-8 format based on SCAPI guidelines. However, the SDK does NOT encode path parameters, and will require the developer to encode any path parameters with special characters.

docs/assets/js/search.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

docs/classes/clientconfig.clientconfig-1.html

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ <h3>Constructors</h3>
112112
<h3>Properties</h3>
113113
<ul class="tsd-index-list">
114114
<li class="tsd-kind-property tsd-parent-kind-class"><a href="clientconfig.clientconfig-1.html#baseuri" class="tsd-kind-icon">base<wbr>Uri</a></li>
115+
<li class="tsd-kind-property tsd-parent-kind-class"><a href="clientconfig.clientconfig-1.html#fetch" class="tsd-kind-icon">fetch</a></li>
115116
<li class="tsd-kind-property tsd-parent-kind-class"><a href="clientconfig.clientconfig-1.html#fetchoptions" class="tsd-kind-icon">fetch<wbr>Options</a></li>
116117
<li class="tsd-kind-property tsd-parent-kind-class"><a href="clientconfig.clientconfig-1.html#headers" class="tsd-kind-icon">headers</a></li>
117118
<li class="tsd-kind-property tsd-parent-kind-class"><a href="clientconfig.clientconfig-1.html#parameters" class="tsd-kind-icon">parameters</a></li>
@@ -141,7 +142,7 @@ <h3>constructor</h3>
141142
<li class="tsd-description">
142143
<aside class="tsd-sources">
143144
<ul>
144-
<li>Defined in src/lib/clientConfig.ts:62</li>
145+
<li>Defined in src/lib/clientConfig.ts:68</li>
145146
</ul>
146147
</aside>
147148
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -164,7 +165,18 @@ <h3><span class="tsd-flag ts-flagOptional">Optional</span> base<wbr>Uri</h3>
164165
<aside class="tsd-sources">
165166
<p>Implementation of <a href="../interfaces/clientconfig.clientconfiginit.html">ClientConfigInit</a>.<a href="../interfaces/clientconfig.clientconfiginit.html#baseuri">baseUri</a></p>
166167
<ul>
167-
<li>Defined in src/lib/clientConfig.ts:48</li>
168+
<li>Defined in src/lib/clientConfig.ts:52</li>
169+
</ul>
170+
</aside>
171+
</section>
172+
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
173+
<a name="fetch" class="tsd-anchor"></a>
174+
<h3><span class="tsd-flag ts-flagOptional">Optional</span> fetch</h3>
175+
<div class="tsd-signature tsd-kind-icon">fetch<span class="tsd-signature-symbol">:</span> <a href="../modules/clientconfig.html#fetchfunction" class="tsd-signature-type">FetchFunction</a></div>
176+
<aside class="tsd-sources">
177+
<p>Implementation of <a href="../interfaces/clientconfig.clientconfiginit.html">ClientConfigInit</a>.<a href="../interfaces/clientconfig.clientconfiginit.html#fetch">fetch</a></p>
178+
<ul>
179+
<li>Defined in src/lib/clientConfig.ts:62</li>
168180
</ul>
169181
</aside>
170182
</section>
@@ -175,7 +187,7 @@ <h3>fetch<wbr>Options</h3>
175187
<aside class="tsd-sources">
176188
<p>Implementation of <a href="../interfaces/clientconfig.clientconfiginit.html">ClientConfigInit</a>.<a href="../interfaces/clientconfig.clientconfiginit.html#fetchoptions">fetchOptions</a></p>
177189
<ul>
178-
<li>Defined in src/lib/clientConfig.ts:56</li>
190+
<li>Defined in src/lib/clientConfig.ts:60</li>
179191
</ul>
180192
</aside>
181193
</section>
@@ -186,7 +198,7 @@ <h3>headers</h3>
186198
<aside class="tsd-sources">
187199
<p>Implementation of <a href="../interfaces/clientconfig.clientconfiginit.html">ClientConfigInit</a>.<a href="../interfaces/clientconfig.clientconfiginit.html#headers">headers</a></p>
188200
<ul>
189-
<li>Defined in src/lib/clientConfig.ts:52</li>
201+
<li>Defined in src/lib/clientConfig.ts:56</li>
190202
</ul>
191203
</aside>
192204
<div class="tsd-type-declaration">
@@ -205,7 +217,7 @@ <h3>parameters</h3>
205217
<aside class="tsd-sources">
206218
<p>Implementation of <a href="../interfaces/clientconfig.clientconfiginit.html">ClientConfigInit</a>.<a href="../interfaces/clientconfig.clientconfiginit.html#parameters">parameters</a></p>
207219
<ul>
208-
<li>Defined in src/lib/clientConfig.ts:54</li>
220+
<li>Defined in src/lib/clientConfig.ts:58</li>
209221
</ul>
210222
</aside>
211223
</section>
@@ -216,7 +228,7 @@ <h3><span class="tsd-flag ts-flagOptional">Optional</span> proxy</h3>
216228
<aside class="tsd-sources">
217229
<p>Implementation of <a href="../interfaces/clientconfig.clientconfiginit.html">ClientConfigInit</a>.<a href="../interfaces/clientconfig.clientconfiginit.html#proxy">proxy</a></p>
218230
<ul>
219-
<li>Defined in src/lib/clientConfig.ts:50</li>
231+
<li>Defined in src/lib/clientConfig.ts:54</li>
220232
</ul>
221233
</aside>
222234
</section>
@@ -227,7 +239,7 @@ <h3>throw<wbr>OnBad<wbr>Response</h3>
227239
<aside class="tsd-sources">
228240
<p>Implementation of <a href="../interfaces/clientconfig.clientconfiginit.html">ClientConfigInit</a>.<a href="../interfaces/clientconfig.clientconfiginit.html#throwonbadresponse">throwOnBadResponse</a></p>
229241
<ul>
230-
<li>Defined in src/lib/clientConfig.ts:62</li>
242+
<li>Defined in src/lib/clientConfig.ts:68</li>
231243
</ul>
232244
</aside>
233245
</section>
@@ -238,7 +250,7 @@ <h3>transform<wbr>Request</h3>
238250
<aside class="tsd-sources">
239251
<p>Implementation of <a href="../interfaces/clientconfig.clientconfiginit.html">ClientConfigInit</a>.<a href="../interfaces/clientconfig.clientconfiginit.html#transformrequest">transformRequest</a></p>
240252
<ul>
241-
<li>Defined in src/lib/clientConfig.ts:58</li>
253+
<li>Defined in src/lib/clientConfig.ts:64</li>
242254
</ul>
243255
</aside>
244256
</section>
@@ -251,7 +263,7 @@ <h3><span class="tsd-flag ts-flagStatic">Static</span> <span class="tsd-flag ts-
251263
<div class="tsd-signature tsd-kind-icon">defaults<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span></div>
252264
<aside class="tsd-sources">
253265
<ul>
254-
<li>Defined in src/lib/clientConfig.ts:88</li>
266+
<li>Defined in src/lib/clientConfig.ts:96</li>
255267
</ul>
256268
</aside>
257269
<section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-object-literal">
@@ -264,7 +276,7 @@ <h3>transform<wbr>Request</h3>
264276
<li class="tsd-description">
265277
<aside class="tsd-sources">
266278
<ul>
267-
<li>Defined in src/lib/clientConfig.ts:100</li>
279+
<li>Defined in src/lib/clientConfig.ts:108</li>
268280
</ul>
269281
</aside>
270282
<div class="tsd-comment tsd-typography">
@@ -387,6 +399,9 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</s
387399
<li class=" tsd-kind-property tsd-parent-kind-class">
388400
<a href="clientconfig.clientconfig-1.html#baseuri" class="tsd-kind-icon">base<wbr>Uri</a>
389401
</li>
402+
<li class=" tsd-kind-property tsd-parent-kind-class">
403+
<a href="clientconfig.clientconfig-1.html#fetch" class="tsd-kind-icon">fetch</a>
404+
</li>
390405
<li class=" tsd-kind-property tsd-parent-kind-class">
391406
<a href="clientconfig.clientconfig-1.html#fetchoptions" class="tsd-kind-icon">fetch<wbr>Options</a>
392407
</li>

docs/classes/shopperbaskets.shopperbaskets-3.html

Lines changed: 116 additions & 116 deletions
Large diffs are not rendered by default.

docs/classes/shopperbasketsv2.shopperbasketsv2-3.html

Lines changed: 129 additions & 129 deletions
Large diffs are not rendered by default.

docs/classes/shopperconfigurations.shopperconfigurations-3.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ <h3>constructor</h3>
211211
<li class="tsd-description">
212212
<aside class="tsd-sources">
213213
<ul>
214-
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:146</li>
214+
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:147</li>
215215
</ul>
216216
</aside>
217217
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -233,7 +233,7 @@ <h3>client<wbr>Config</h3>
233233
<div class="tsd-signature tsd-kind-icon">client<wbr>Config<span class="tsd-signature-symbol">:</span> <a href="clientconfig.clientconfig-1.html" class="tsd-signature-type">ClientConfig</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">ConfigParameters</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> &amp; </span><span class="tsd-signature-symbol">{ </span>baseUri<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> }</span></div>
234234
<aside class="tsd-sources">
235235
<ul>
236-
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:140</li>
236+
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:141</li>
237237
</ul>
238238
</aside>
239239
</section>
@@ -243,7 +243,7 @@ <h3><span class="tsd-flag ts-flagStatic">Static</span> <span class="tsd-flag ts-
243243
<div class="tsd-signature tsd-kind-icon">default<wbr>Base<wbr>Uri<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"https://{shortCode}.api.commercecloud.salesforce.com/configuration/shopper-configurations/v1"</span><span class="tsd-signature-symbol"> = currentBaseUri</span></div>
244244
<aside class="tsd-sources">
245245
<ul>
246-
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:142</li>
246+
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:143</li>
247247
</ul>
248248
</aside>
249249
</section>
@@ -253,7 +253,7 @@ <h3><span class="tsd-flag ts-flagStatic">Static</span> <span class="tsd-flag ts-
253253
<div class="tsd-signature tsd-kind-icon">param<wbr>Keys<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>getConfigurations<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">"organizationId"</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">"siteId"</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">; </span>getConfigurationsRequired<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">"organizationId"</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">"siteId"</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol"> = {getConfigurations: [&#x27;organizationId&#x27;,&#x27;siteId&#x27;,],getConfigurationsRequired: [&#x27;organizationId&#x27;,&#x27;siteId&#x27;,],} as const</span></div>
254254
<aside class="tsd-sources">
255255
<ul>
256-
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:155</li>
256+
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:156</li>
257257
</ul>
258258
</aside>
259259
<div class="tsd-type-declaration">
@@ -282,7 +282,7 @@ <h3>get<wbr>Configurations</h3>
282282
<li class="tsd-description">
283283
<aside class="tsd-sources">
284284
<ul>
285-
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:180</li>
285+
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:181</li>
286286
</ul>
287287
</aside>
288288
<div class="tsd-comment tsd-typography">
@@ -308,7 +308,7 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</
308308
<li class="tsd-description">
309309
<aside class="tsd-sources">
310310
<ul>
311-
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:202</li>
311+
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:203</li>
312312
</ul>
313313
</aside>
314314
<div class="tsd-comment tsd-typography">
@@ -355,7 +355,7 @@ <h3><span class="tsd-flag ts-flagStatic">Static</span> <span class="tsd-flag ts-
355355
<div class="tsd-signature tsd-kind-icon">api<wbr>Paths<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span></div>
356356
<aside class="tsd-sources">
357357
<ul>
358-
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:144</li>
358+
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:145</li>
359359
</ul>
360360
</aside>
361361
<section class="tsd-panel tsd-member tsd-kind-variable tsd-parent-kind-object-literal">
@@ -364,7 +364,7 @@ <h3>get<wbr>Configurations</h3>
364364
<div class="tsd-signature tsd-kind-icon">get<wbr>Configurations<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> = &quot;/organizations/{organizationId}/configurations&quot;</span></div>
365365
<aside class="tsd-sources">
366366
<ul>
367-
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:145</li>
367+
<li>Defined in src/lib/shopperConfigurations/apis/DefaultApi.ts:146</li>
368368
</ul>
369369
</aside>
370370
</section>

0 commit comments

Comments
 (0)