1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.usePersistedOperations = exports.defaultExtractPersistedOperationId = void 0;
|
4 | const graphql_yoga_1 = require("graphql-yoga");
|
5 | const 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 | };
|
16 | exports.defaultExtractPersistedOperationId = defaultExtractPersistedOperationId;
|
17 | function 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 | }
|
44 | exports.usePersistedOperations = usePersistedOperations;
|