Skip to content
This repository has been archived by the owner on Nov 15, 2024. It is now read-only.

Commit

Permalink
Merge pull request #418 from grafbase/fix-compatibility-with-graphql-sse
Browse files Browse the repository at this point in the history
Fix compatibility with graphql sse
  • Loading branch information
jonathanawesome authored Nov 4, 2024
2 parents 8f375cb + ca0042d commit 001030d
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 7 deletions.
5 changes: 5 additions & 0 deletions .changeset/long-cobras-peel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@pathfinder-ide/react': patch
---

Fix compatibility issue with `graphql-sse`
4 changes: 2 additions & 2 deletions packages/stores/src/schema-store/actions/http-fetcher.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { getEnabledTTPHeaderValues } from '../../session-store';
import { getEnabledHTTPHeaderValues } from '../../session-store';
import type { SchemaStoreActions } from '../schema-store.types';
import { useSchemaStore } from '../use-schema-store';

Expand All @@ -11,7 +11,7 @@ export const httpFetcher: SchemaStoreActions['httpFetcher'] = async ({
const fetchResponse = await fetch(fetchOptions.endpoint, {
method: 'POST',
headers: fetchOptions.headers
? getEnabledTTPHeaderValues({ headers: fetchOptions.headers })
? getEnabledHTTPHeaderValues({ headers: fetchOptions.headers })
: undefined,
credentials: 'same-origin',
body,
Expand Down
2 changes: 1 addition & 1 deletion packages/stores/src/session-store/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export { clearHistory, deleteFromHistory } from './slices/history/actions';

export {
addEmptyHeader,
getEnabledTTPHeaderValues,
getEnabledHTTPHeaderValues,
getEnabledHTTPHeaderValueRecord,
removeHeader,
updateHeader,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { HTTPHeadersActions } from '../http-headers.types';

export const getEnabledTTPHeaderValues: HTTPHeadersActions['getEnabledTTPHeaderValues'] =
export const getEnabledHTTPHeaderValues: HTTPHeadersActions['getEnabledHTTPHeaderValues'] =
({ headers }) => {
return headers
.filter((header) => header.enabled)
Expand All @@ -9,12 +9,14 @@ export const getEnabledTTPHeaderValues: HTTPHeadersActions['getEnabledTTPHeaderV

export const getEnabledHTTPHeaderValueRecord: HTTPHeadersActions['getEnabledHTTPHeaderValueRecord'] =
({ headers }) => {
// we use this function to prepare headers for the graphql-sse client
// we're calling lowercase here to ensure that graphql-sse correctly merges headers ("Content-Type"): https://github.com/enisdenjo/graphql-sse/commit/0084de7c7f55c77c9b9156b98c264b90f49bf2b2
return headers
.filter((header) => header.enabled)
.reduce(
(accumulator, currentValue) => ({
...accumulator,
[currentValue.key]: currentValue.value,
[currentValue.key.toLowerCase()]: currentValue.value,
}),
{} as Record<string, string>,
);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export { addEmptyHeader } from './add-empty-header';

export {
getEnabledTTPHeaderValues,
getEnabledHTTPHeaderValues,
getEnabledHTTPHeaderValueRecord,
} from './get-enabled-http-header-values';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@ export type UpdateHeaderStatus = {

export type HTTPHeadersActions = {
addEmptyHeader: ({ enabled }: { enabled?: boolean }) => void;
getEnabledTTPHeaderValues: ({ headers }: { headers: HTTPHeaderValue[] }) => HeadersInit;
getEnabledHTTPHeaderValues: ({
headers,
}: {
headers: HTTPHeaderValue[];
}) => HeadersInit;
getEnabledHTTPHeaderValueRecord: ({
headers,
}: {
Expand Down

0 comments on commit 001030d

Please sign in to comment.