hotstaq 0.9.1 → 0.9.3
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/build/src/HotStaq.d.ts +111 -0
- package/build/src/HotStaq.d.ts.map +1 -1
- package/build/src/HotStaq.js +186 -1
- package/build/src/HotStaq.js.map +1 -1
- package/build/src/HotStaqWebStart.d.ts.map +1 -1
- package/build/src/HotStaqWebStart.js +31 -2
- package/build/src/HotStaqWebStart.js.map +1 -1
- package/build-web/HotStaq.js +2 -2
- package/build-web/HotStaq.min.js +345 -341
- package/package.json +1 -1
- package/src/HotStaq.ts +241 -1
- package/src/HotStaqWebStart.ts +39 -1
package/build/src/HotStaq.d.ts
CHANGED
|
@@ -111,6 +111,31 @@ export interface IHotValidReturn {
|
|
|
111
111
|
*/
|
|
112
112
|
value?: any;
|
|
113
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Options for `HotStaq.installFetchInterceptors`. All fields are optional —
|
|
116
|
+
* the bare-minimum install (with no options) just gives you the per-nav
|
|
117
|
+
* AbortController, which is the universally-useful piece. The 401 hook is
|
|
118
|
+
* opinionated session-out UX and is left to each app to wire up.
|
|
119
|
+
*/
|
|
120
|
+
export interface IHotFetchInterceptorOptions {
|
|
121
|
+
/**
|
|
122
|
+
* Request URLs that should bypass both the per-nav AbortController and
|
|
123
|
+
* the 401 hook. A request is skipped if its URL starts with any string
|
|
124
|
+
* here. Use this for endpoints that must survive SPA navigation (the
|
|
125
|
+
* canonical case is OIDC's `/token` — silent token refresh shouldn't
|
|
126
|
+
* die just because the user clicked a sidebar link mid-flight).
|
|
127
|
+
*/
|
|
128
|
+
skipUrls?: string[];
|
|
129
|
+
/**
|
|
130
|
+
* Called when an authenticated `fetch(...)` returns a 401 response.
|
|
131
|
+
* The handler runs after the response resolves; the response itself is
|
|
132
|
+
* still returned to the original caller, so existing error-handling
|
|
133
|
+
* paths in app code keep working. Use this to clear local credentials
|
|
134
|
+
* and surface "your session expired" UX. Skipped for URLs in
|
|
135
|
+
* `skipUrls` (those 401s are the responsibility of the refresh path).
|
|
136
|
+
*/
|
|
137
|
+
on401?: (response: Response, request: RequestInfo, init: RequestInit) => void;
|
|
138
|
+
}
|
|
114
139
|
export interface ParsedInterface {
|
|
115
140
|
type: string;
|
|
116
141
|
typeName?: string;
|
|
@@ -252,6 +277,51 @@ export declare class HotStaq implements IHotStaq {
|
|
|
252
277
|
* Event fired after SPA navigation completes.
|
|
253
278
|
*/
|
|
254
279
|
static onAfterNavigate: (path: string) => void | Promise<void>;
|
|
280
|
+
/**
|
|
281
|
+
* Override the framework's default 404 rendering.
|
|
282
|
+
*
|
|
283
|
+
* Called from `HotStaqWebStart` when the current URL doesn't match
|
|
284
|
+
* any registered `<route>`, no `path="404"` or `path="*"` fallback
|
|
285
|
+
* exists in the router, and the page boot would otherwise throw
|
|
286
|
+
* "The hotstaq tag must have a src, HTML contents inside it, or a
|
|
287
|
+
* router set."
|
|
288
|
+
*
|
|
289
|
+
* Set this to render a custom 404 (e.g. redirect to a branded page,
|
|
290
|
+
* or call `HotStaq.useOutput` with your own HTML). When set, the
|
|
291
|
+
* default fallback in `HotStaq.displayDefault404` is suppressed.
|
|
292
|
+
*
|
|
293
|
+
* Most apps should prefer registering a `path="404"` route in their
|
|
294
|
+
* `<hotstaq-router>` instead — this hook is for cases where you
|
|
295
|
+
* need to make a runtime decision (e.g. dispatch on the path).
|
|
296
|
+
*/
|
|
297
|
+
static onRouteNotFound: (path: string) => void;
|
|
298
|
+
/**
|
|
299
|
+
* If true (the default), `enableSPA` automatically wires up fetch
|
|
300
|
+
* interceptors that abort the previous page's pending requests when
|
|
301
|
+
* the user navigates between SPA routes. Set this to false BEFORE the
|
|
302
|
+
* `<hotstaq>` element runs (e.g. in a <script> earlier in <head>) to
|
|
303
|
+
* opt out — useful if your frontend already wraps `window.fetch` and
|
|
304
|
+
* doesn't want HotStaq to compose with it.
|
|
305
|
+
*/
|
|
306
|
+
static autoInstallFetchInterceptors: boolean;
|
|
307
|
+
/**
|
|
308
|
+
* The current page's AbortController. Aborted on every SPA navigation
|
|
309
|
+
* so previous-page fetches die before the new page's requests go out.
|
|
310
|
+
* `installFetchInterceptors` populates this.
|
|
311
|
+
*/
|
|
312
|
+
static navAbort: AbortController;
|
|
313
|
+
/**
|
|
314
|
+
* Internal: tracks whether `installFetchInterceptors` has wrapped
|
|
315
|
+
* `window.fetch` and `onBeforeNavigate`. Exposed for tests; do not
|
|
316
|
+
* toggle from app code.
|
|
317
|
+
*/
|
|
318
|
+
protected static fetchInterceptorsInstalled: boolean;
|
|
319
|
+
/**
|
|
320
|
+
* Internal: most recent options passed to `installFetchInterceptors`,
|
|
321
|
+
* read by the wrapped fetch on every call so apps can update
|
|
322
|
+
* `skipUrls` / `on401` after install without re-wrapping.
|
|
323
|
+
*/
|
|
324
|
+
protected static fetchInterceptorOptions: IHotFetchInterceptorOptions;
|
|
255
325
|
/**
|
|
256
326
|
* Errors to execute when something goes wrong.
|
|
257
327
|
*/
|
|
@@ -629,6 +699,18 @@ export declare class HotStaq implements IHotStaq {
|
|
|
629
699
|
* This is meant for web browser use only.
|
|
630
700
|
*/
|
|
631
701
|
static onReady(readyFunc: (output: string) => void): void;
|
|
702
|
+
/**
|
|
703
|
+
* Render a minimal "Page not found" page when no registered route
|
|
704
|
+
* matches the current URL and no `path="404"` / `path="*"` fallback
|
|
705
|
+
* is configured. Called by HotStaqWebStart's boot path; can also be
|
|
706
|
+
* invoked directly.
|
|
707
|
+
*
|
|
708
|
+
* Apps that want a branded 404 should register a `<route path="404"
|
|
709
|
+
* src="./404.hott">` (or `path="*"`) in their `<hotstaq-router>` —
|
|
710
|
+
* the framework picks it up before falling back to this. For
|
|
711
|
+
* runtime-decision 404 logic, set `HotStaq.onRouteNotFound`.
|
|
712
|
+
*/
|
|
713
|
+
static displayDefault404(path: string): void;
|
|
632
714
|
/**
|
|
633
715
|
* Replace the current HTML page with the output.
|
|
634
716
|
* This is meant for web browser use only.
|
|
@@ -658,6 +740,35 @@ export declare class HotStaq implements IHotStaq {
|
|
|
658
740
|
* @param processor The HotStaq processor instance to use for processing pages.
|
|
659
741
|
*/
|
|
660
742
|
static enableSPA(target: string, processor?: HotStaq): void;
|
|
743
|
+
/**
|
|
744
|
+
* Install fetch interceptors for SPA-mode frontends. Two pieces:
|
|
745
|
+
*
|
|
746
|
+
* (a) Per-navigation `AbortController`. Every `window.fetch(...)`
|
|
747
|
+
* that doesn't already pass its own `signal` gets attached to
|
|
748
|
+
* `HotStaq.navAbort.signal`. On every SPA navigation the
|
|
749
|
+
* controller is aborted and replaced, so the previous page's
|
|
750
|
+
* in-flight requests die cleanly before the new page makes its
|
|
751
|
+
* own. Without this, rapid clicks accumulate abandoned fetches
|
|
752
|
+
* that occupy the browser's 6-per-origin connection cap and
|
|
753
|
+
* block subsequent page loads.
|
|
754
|
+
*
|
|
755
|
+
* (b) Optional 401 hook. If `options.on401` is provided, any 401
|
|
756
|
+
* response from a non-skipped URL invokes the hook so the app
|
|
757
|
+
* can clear local credentials and surface "session expired"
|
|
758
|
+
* UX. The response is still returned to the original caller —
|
|
759
|
+
* the hook is purely additive.
|
|
760
|
+
*
|
|
761
|
+
* Idempotent: re-calling updates `skipUrls` / `on401` in place
|
|
762
|
+
* without re-wrapping `window.fetch` or `onBeforeNavigate`. Called
|
|
763
|
+
* automatically by `enableSPA` when
|
|
764
|
+
* `HotStaq.autoInstallFetchInterceptors === true` (the default); set
|
|
765
|
+
* that flag to `false` before the `<hotstaq>` element processes if
|
|
766
|
+
* your app needs to manage fetch wrapping itself.
|
|
767
|
+
*
|
|
768
|
+
* @param options Skip-list and 401 hook. May be re-passed later to
|
|
769
|
+
* update either field.
|
|
770
|
+
*/
|
|
771
|
+
static installFetchInterceptors(options?: IHotFetchInterceptorOptions): void;
|
|
661
772
|
/**
|
|
662
773
|
* Prefetch all .hott files from the routerManager in the background.
|
|
663
774
|
* This preloads route content into the processor's file cache so that
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HotStaq.d.ts","sourceRoot":"","sources":["../../src/HotStaq.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HotStaq.d.ts","sourceRoot":"","sources":["../../src/HotStaq.ts"],"names":[],"mappings":"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"}
|
package/build/src/HotStaq.js
CHANGED
|
@@ -1799,6 +1799,49 @@ class HotStaq {
|
|
|
1799
1799
|
static onReady(readyFunc) {
|
|
1800
1800
|
HotStaq.onReadyEvent = readyFunc;
|
|
1801
1801
|
}
|
|
1802
|
+
/**
|
|
1803
|
+
* Render a minimal "Page not found" page when no registered route
|
|
1804
|
+
* matches the current URL and no `path="404"` / `path="*"` fallback
|
|
1805
|
+
* is configured. Called by HotStaqWebStart's boot path; can also be
|
|
1806
|
+
* invoked directly.
|
|
1807
|
+
*
|
|
1808
|
+
* Apps that want a branded 404 should register a `<route path="404"
|
|
1809
|
+
* src="./404.hott">` (or `path="*"`) in their `<hotstaq-router>` —
|
|
1810
|
+
* the framework picks it up before falling back to this. For
|
|
1811
|
+
* runtime-decision 404 logic, set `HotStaq.onRouteNotFound`.
|
|
1812
|
+
*/
|
|
1813
|
+
static displayDefault404(path) {
|
|
1814
|
+
const safePath = String(path || "")
|
|
1815
|
+
.replace(/&/g, "&")
|
|
1816
|
+
.replace(/</g, "<")
|
|
1817
|
+
.replace(/>/g, ">")
|
|
1818
|
+
.replace(/"/g, """);
|
|
1819
|
+
const html = "<!DOCTYPE html><html lang=\"en\"><head>" +
|
|
1820
|
+
"<meta charset=\"UTF-8\">" +
|
|
1821
|
+
"<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">" +
|
|
1822
|
+
"<title>Page not found</title>" +
|
|
1823
|
+
"<style>" +
|
|
1824
|
+
"html,body{height:100%;margin:0;}" +
|
|
1825
|
+
"body{display:flex;align-items:center;justify-content:center;" +
|
|
1826
|
+
"font-family:system-ui,-apple-system,sans-serif;" +
|
|
1827
|
+
"color:#1f2937;background:#f9fafb;}" +
|
|
1828
|
+
".fl-404{text-align:center;padding:2rem;}" +
|
|
1829
|
+
".fl-404 h1{font-size:4rem;margin:0 0 0.5rem;color:#4f46e5;}" +
|
|
1830
|
+
".fl-404 p{margin:0.25rem 0;color:#6b7280;}" +
|
|
1831
|
+
".fl-404 code{background:#e5e7eb;padding:0.125rem 0.375rem;" +
|
|
1832
|
+
"border-radius:0.25rem;font-size:0.875rem;}" +
|
|
1833
|
+
".fl-404 a{color:#4f46e5;text-decoration:none;font-weight:500;" +
|
|
1834
|
+
"display:inline-block;margin-top:1rem;}" +
|
|
1835
|
+
".fl-404 a:hover{text-decoration:underline;}" +
|
|
1836
|
+
"</style></head><body>" +
|
|
1837
|
+
"<div class=\"fl-404\">" +
|
|
1838
|
+
"<h1>404</h1>" +
|
|
1839
|
+
"<p>Page not found.</p>" +
|
|
1840
|
+
"<p><code>" + safePath + "</code> doesn't match any registered route.</p>" +
|
|
1841
|
+
"<a href=\"/\">← Go home</a>" +
|
|
1842
|
+
"</div></body></html>";
|
|
1843
|
+
HotStaq.useOutput(html);
|
|
1844
|
+
}
|
|
1802
1845
|
/**
|
|
1803
1846
|
* Replace the current HTML page with the output.
|
|
1804
1847
|
* This is meant for web browser use only.
|
|
@@ -2054,6 +2097,15 @@ class HotStaq {
|
|
|
2054
2097
|
HotStaq.spaProcessor = processor;
|
|
2055
2098
|
// Restore SPA data from window backup if class properties were reset.
|
|
2056
2099
|
HotStaq.restoreSpaData();
|
|
2100
|
+
// Wire up the per-nav AbortController unless the app opted out.
|
|
2101
|
+
// Without this, rapid SPA clicks leave each old page's fetches
|
|
2102
|
+
// running against an already-swapped target, and saturate the
|
|
2103
|
+
// browser's per-origin connection cap so the new page's requests
|
|
2104
|
+
// queue indefinitely behind abandoned ones. Apps can re-call
|
|
2105
|
+
// installFetchInterceptors later with `on401` / `skipUrls` to
|
|
2106
|
+
// layer in session-out UX without re-wrapping fetch.
|
|
2107
|
+
if (HotStaq.autoInstallFetchInterceptors === true)
|
|
2108
|
+
HotStaq.installFetchInterceptors();
|
|
2057
2109
|
// Set up link interception.
|
|
2058
2110
|
document.addEventListener("click", (e) => {
|
|
2059
2111
|
// Find the closest <a> ancestor.
|
|
@@ -2100,6 +2152,94 @@ class HotStaq {
|
|
|
2100
2152
|
// Prefetch all route .hott files in the background for instant SPA navigation.
|
|
2101
2153
|
HotStaq.prefetchRoutes();
|
|
2102
2154
|
}
|
|
2155
|
+
/**
|
|
2156
|
+
* Install fetch interceptors for SPA-mode frontends. Two pieces:
|
|
2157
|
+
*
|
|
2158
|
+
* (a) Per-navigation `AbortController`. Every `window.fetch(...)`
|
|
2159
|
+
* that doesn't already pass its own `signal` gets attached to
|
|
2160
|
+
* `HotStaq.navAbort.signal`. On every SPA navigation the
|
|
2161
|
+
* controller is aborted and replaced, so the previous page's
|
|
2162
|
+
* in-flight requests die cleanly before the new page makes its
|
|
2163
|
+
* own. Without this, rapid clicks accumulate abandoned fetches
|
|
2164
|
+
* that occupy the browser's 6-per-origin connection cap and
|
|
2165
|
+
* block subsequent page loads.
|
|
2166
|
+
*
|
|
2167
|
+
* (b) Optional 401 hook. If `options.on401` is provided, any 401
|
|
2168
|
+
* response from a non-skipped URL invokes the hook so the app
|
|
2169
|
+
* can clear local credentials and surface "session expired"
|
|
2170
|
+
* UX. The response is still returned to the original caller —
|
|
2171
|
+
* the hook is purely additive.
|
|
2172
|
+
*
|
|
2173
|
+
* Idempotent: re-calling updates `skipUrls` / `on401` in place
|
|
2174
|
+
* without re-wrapping `window.fetch` or `onBeforeNavigate`. Called
|
|
2175
|
+
* automatically by `enableSPA` when
|
|
2176
|
+
* `HotStaq.autoInstallFetchInterceptors === true` (the default); set
|
|
2177
|
+
* that flag to `false` before the `<hotstaq>` element processes if
|
|
2178
|
+
* your app needs to manage fetch wrapping itself.
|
|
2179
|
+
*
|
|
2180
|
+
* @param options Skip-list and 401 hook. May be re-passed later to
|
|
2181
|
+
* update either field.
|
|
2182
|
+
*/
|
|
2183
|
+
static installFetchInterceptors(options = {}) {
|
|
2184
|
+
// Merge so multiple callers can each contribute (e.g. one app
|
|
2185
|
+
// adds a skipUrl, another wires up on401).
|
|
2186
|
+
HotStaq.fetchInterceptorOptions = Object.assign(Object.assign(Object.assign({}, HotStaq.fetchInterceptorOptions), options), { skipUrls: [
|
|
2187
|
+
...((HotStaq.fetchInterceptorOptions || {}).skipUrls || []),
|
|
2188
|
+
...(options.skipUrls || [])
|
|
2189
|
+
] });
|
|
2190
|
+
if (HotStaq.fetchInterceptorsInstalled === true)
|
|
2191
|
+
return;
|
|
2192
|
+
HotStaq.fetchInterceptorsInstalled = true;
|
|
2193
|
+
if (typeof window === "undefined" || typeof window.fetch !== "function")
|
|
2194
|
+
return;
|
|
2195
|
+
HotStaq.navAbort = new AbortController();
|
|
2196
|
+
const origFetch = window.fetch.bind(window);
|
|
2197
|
+
window.fetch = function (input, init) {
|
|
2198
|
+
const opts = HotStaq.fetchInterceptorOptions || {};
|
|
2199
|
+
const url = (typeof input === "string")
|
|
2200
|
+
? input
|
|
2201
|
+
: ((input && input.url) || "");
|
|
2202
|
+
let isSkipUrl = false;
|
|
2203
|
+
const skipUrls = opts.skipUrls || [];
|
|
2204
|
+
for (let iIdx = 0; iIdx < skipUrls.length; iIdx++) {
|
|
2205
|
+
if (url.indexOf(skipUrls[iIdx]) === 0) {
|
|
2206
|
+
isSkipUrl = true;
|
|
2207
|
+
break;
|
|
2208
|
+
}
|
|
2209
|
+
}
|
|
2210
|
+
let finalInit = init;
|
|
2211
|
+
// (a) Attach the per-nav signal when the caller didn't supply one.
|
|
2212
|
+
if (!isSkipUrl) {
|
|
2213
|
+
finalInit = init || {};
|
|
2214
|
+
if (finalInit.signal == null)
|
|
2215
|
+
finalInit = Object.assign({}, finalInit, { signal: HotStaq.navAbort.signal });
|
|
2216
|
+
}
|
|
2217
|
+
return origFetch(input, finalInit).then((resp) => {
|
|
2218
|
+
// (b) 401 hook.
|
|
2219
|
+
if (resp.status === 401 && !isSkipUrl && typeof opts.on401 === "function") {
|
|
2220
|
+
try {
|
|
2221
|
+
opts.on401(resp, input, finalInit);
|
|
2222
|
+
}
|
|
2223
|
+
catch (ex) { /* don't let app errors break the response chain */ }
|
|
2224
|
+
}
|
|
2225
|
+
return (resp);
|
|
2226
|
+
});
|
|
2227
|
+
};
|
|
2228
|
+
// Wrap onBeforeNavigate so the previous page's pending fetches
|
|
2229
|
+
// die before the new page renders. Compose with any existing
|
|
2230
|
+
// hook the app may have set — we don't own that global.
|
|
2231
|
+
const prevHook = HotStaq.onBeforeNavigate;
|
|
2232
|
+
HotStaq.onBeforeNavigate = (path) => {
|
|
2233
|
+
try {
|
|
2234
|
+
HotStaq.navAbort.abort();
|
|
2235
|
+
}
|
|
2236
|
+
catch (ex) { /* nothing in flight */ }
|
|
2237
|
+
HotStaq.navAbort = new AbortController();
|
|
2238
|
+
if (typeof prevHook === "function")
|
|
2239
|
+
return (prevHook(path));
|
|
2240
|
+
return (true);
|
|
2241
|
+
};
|
|
2242
|
+
}
|
|
2103
2243
|
/**
|
|
2104
2244
|
* Prefetch all .hott files from the routerManager in the background.
|
|
2105
2245
|
* This preloads route content into the processor's file cache so that
|
|
@@ -2362,7 +2502,7 @@ exports.HotStaq = HotStaq;
|
|
|
2362
2502
|
/**
|
|
2363
2503
|
* The current version of HotStaq.
|
|
2364
2504
|
*/
|
|
2365
|
-
HotStaq.version = "0.9.
|
|
2505
|
+
HotStaq.version = "0.9.3";
|
|
2366
2506
|
/**
|
|
2367
2507
|
* Indicates if this is a web build.
|
|
2368
2508
|
*/
|
|
@@ -2424,6 +2564,51 @@ HotStaq.onBeforeNavigate = null;
|
|
|
2424
2564
|
* Event fired after SPA navigation completes.
|
|
2425
2565
|
*/
|
|
2426
2566
|
HotStaq.onAfterNavigate = null;
|
|
2567
|
+
/**
|
|
2568
|
+
* Override the framework's default 404 rendering.
|
|
2569
|
+
*
|
|
2570
|
+
* Called from `HotStaqWebStart` when the current URL doesn't match
|
|
2571
|
+
* any registered `<route>`, no `path="404"` or `path="*"` fallback
|
|
2572
|
+
* exists in the router, and the page boot would otherwise throw
|
|
2573
|
+
* "The hotstaq tag must have a src, HTML contents inside it, or a
|
|
2574
|
+
* router set."
|
|
2575
|
+
*
|
|
2576
|
+
* Set this to render a custom 404 (e.g. redirect to a branded page,
|
|
2577
|
+
* or call `HotStaq.useOutput` with your own HTML). When set, the
|
|
2578
|
+
* default fallback in `HotStaq.displayDefault404` is suppressed.
|
|
2579
|
+
*
|
|
2580
|
+
* Most apps should prefer registering a `path="404"` route in their
|
|
2581
|
+
* `<hotstaq-router>` instead — this hook is for cases where you
|
|
2582
|
+
* need to make a runtime decision (e.g. dispatch on the path).
|
|
2583
|
+
*/
|
|
2584
|
+
HotStaq.onRouteNotFound = null;
|
|
2585
|
+
/**
|
|
2586
|
+
* If true (the default), `enableSPA` automatically wires up fetch
|
|
2587
|
+
* interceptors that abort the previous page's pending requests when
|
|
2588
|
+
* the user navigates between SPA routes. Set this to false BEFORE the
|
|
2589
|
+
* `<hotstaq>` element runs (e.g. in a <script> earlier in <head>) to
|
|
2590
|
+
* opt out — useful if your frontend already wraps `window.fetch` and
|
|
2591
|
+
* doesn't want HotStaq to compose with it.
|
|
2592
|
+
*/
|
|
2593
|
+
HotStaq.autoInstallFetchInterceptors = true;
|
|
2594
|
+
/**
|
|
2595
|
+
* The current page's AbortController. Aborted on every SPA navigation
|
|
2596
|
+
* so previous-page fetches die before the new page's requests go out.
|
|
2597
|
+
* `installFetchInterceptors` populates this.
|
|
2598
|
+
*/
|
|
2599
|
+
HotStaq.navAbort = null;
|
|
2600
|
+
/**
|
|
2601
|
+
* Internal: tracks whether `installFetchInterceptors` has wrapped
|
|
2602
|
+
* `window.fetch` and `onBeforeNavigate`. Exposed for tests; do not
|
|
2603
|
+
* toggle from app code.
|
|
2604
|
+
*/
|
|
2605
|
+
HotStaq.fetchInterceptorsInstalled = false;
|
|
2606
|
+
/**
|
|
2607
|
+
* Internal: most recent options passed to `installFetchInterceptors`,
|
|
2608
|
+
* read by the wrapped fetch on every call so apps can update
|
|
2609
|
+
* `skipUrls` / `on401` after install without re-wrapping.
|
|
2610
|
+
*/
|
|
2611
|
+
HotStaq.fetchInterceptorOptions = {};
|
|
2427
2612
|
/**
|
|
2428
2613
|
* Errors to execute when something goes wrong.
|
|
2429
2614
|
*/
|