add relay environment
This commit is contained in:
40
app/javascript/relay/environment.ts
Normal file
40
app/javascript/relay/environment.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import type { Variables, RequestParameters, CacheConfig } from "relay-runtime";
|
||||
import { Environment, Network, RecordSource, Store } from "relay-runtime";
|
||||
|
||||
async function fetchRelay(
|
||||
params: RequestParameters,
|
||||
variables: Variables,
|
||||
_cacheConfig: CacheConfig
|
||||
) {
|
||||
const response = await fetch("/graphql", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
query: params.text,
|
||||
variables,
|
||||
}),
|
||||
});
|
||||
|
||||
const json = await response.json();
|
||||
|
||||
if (Array.isArray(json.errors)) {
|
||||
throw new Error(
|
||||
`Error fetching GraphQL query '${
|
||||
params.name
|
||||
}' with variables '${JSON.stringify(variables)}': ${JSON.stringify(
|
||||
json.errors
|
||||
)}`
|
||||
);
|
||||
}
|
||||
|
||||
return json;
|
||||
}
|
||||
|
||||
export const environment = new Environment({
|
||||
network: Network.create(fetchRelay),
|
||||
store: new Store(new RecordSource(), {
|
||||
gcReleaseBufferSize: 10,
|
||||
}),
|
||||
});
|
||||
Reference in New Issue
Block a user