UNPKG

2.09 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.usePersistedOperations = exports.defaultExtractPersistedOperationId = void 0;
4const graphql_yoga_1 = require("graphql-yoga");
5const defaultExtractPersistedOperationId = (params) => {
6 if (params.extensions != null &&
7 typeof params.extensions === 'object' &&
8 params.extensions?.persistedQuery != null &&
9 typeof params.extensions?.persistedQuery === 'object' &&
10 params.extensions?.persistedQuery.version === 1 &&
11 typeof params.extensions?.persistedQuery.sha256Hash === 'string') {
12 return params.extensions?.persistedQuery.sha256Hash;
13 }
14 return null;
15};
16exports.defaultExtractPersistedOperationId = defaultExtractPersistedOperationId;
17function usePersistedOperations({ getPersistedOperation, allowArbitraryOperations = false, extractPersistedOperationId = exports.defaultExtractPersistedOperationId, }) {
18 return {
19 async onParams({ request, params, setParams }) {
20 if (params.query) {
21 if ((typeof allowArbitraryOperations === 'boolean'
22 ? allowArbitraryOperations
23 : await allowArbitraryOperations(request)) === false) {
24 throw (0, graphql_yoga_1.createGraphQLError)('PersistedQueryOnly');
25 }
26 return;
27 }
28 const persistedOperationKey = extractPersistedOperationId(params);
29 if (persistedOperationKey == null) {
30 throw (0, graphql_yoga_1.createGraphQLError)('PersistedQueryNotFound');
31 }
32 const persistedQuery = await getPersistedOperation(persistedOperationKey);
33 if (persistedQuery == null) {
34 throw (0, graphql_yoga_1.createGraphQLError)('PersistedQueryNotFound');
35 }
36 setParams({
37 query: persistedQuery,
38 variables: params.variables,
39 extensions: params.extensions,
40 });
41 },
42 };
43}
44exports.usePersistedOperations = usePersistedOperations;