| 123456789101112131415161718192021222324252627282930313233343536373839 |
- /**
- * Normalizes HeadersInit to a plain Record<string, string> for manipulation.
- * Handles Headers objects, arrays of tuples, and plain objects.
- */
- export function normalizeHeaders(headers) {
- if (!headers)
- return {};
- if (headers instanceof Headers) {
- return Object.fromEntries(headers.entries());
- }
- if (Array.isArray(headers)) {
- return Object.fromEntries(headers);
- }
- return { ...headers };
- }
- /**
- * Creates a fetch function that includes base RequestInit options.
- * This ensures requests inherit settings like credentials, mode, headers, etc. from the base init.
- *
- * @param baseFetch - The base fetch function to wrap (defaults to global fetch)
- * @param baseInit - The base RequestInit to merge with each request
- * @returns A wrapped fetch function that merges base options with call-specific options
- */
- export function createFetchWithInit(baseFetch = fetch, baseInit) {
- if (!baseInit) {
- return baseFetch;
- }
- // Return a wrapped fetch that merges base RequestInit with call-specific init
- return async (url, init) => {
- const mergedInit = {
- ...baseInit,
- ...init,
- // Headers need special handling - merge instead of replace
- headers: init?.headers ? { ...normalizeHeaders(baseInit.headers), ...normalizeHeaders(init.headers) } : baseInit.headers
- };
- return baseFetch(url, mergedInit);
- };
- }
- //# sourceMappingURL=transport.js.map
|