payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
132 lines (131 loc) • 12.1 kB
JavaScript
/* eslint-disable no-param-reassign */ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return registerGraphQLSchema;
}
});
const _graphql = /*#__PURE__*/ _interop_require_wildcard(require("graphql"));
const _graphqlquerycomplexity = /*#__PURE__*/ _interop_require_wildcard(require("graphql-query-complexity"));
const _access = /*#__PURE__*/ _interop_require_default(require("../auth/graphql/resolvers/access"));
const _init = /*#__PURE__*/ _interop_require_default(require("../collections/graphql/init"));
const _init1 = /*#__PURE__*/ _interop_require_default(require("../globals/graphql/init"));
const _buildFallbackLocaleInputType = /*#__PURE__*/ _interop_require_default(require("./schema/buildFallbackLocaleInputType"));
const _buildLocaleInputType = /*#__PURE__*/ _interop_require_default(require("./schema/buildLocaleInputType"));
const _buildPoliciesType = /*#__PURE__*/ _interop_require_default(require("./schema/buildPoliciesType"));
const _wrapCustomResolver = require("./utilities/wrapCustomResolver");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function _getRequireWildcardCache(nodeInterop) {
if (typeof WeakMap !== "function") return null;
var cacheBabelInterop = new WeakMap();
var cacheNodeInterop = new WeakMap();
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
})(nodeInterop);
}
function _interop_require_wildcard(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) {
return obj;
}
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
return {
default: obj
};
}
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) {
return cache.get(obj);
}
var newObj = {
__proto__: null
};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for(var key in obj){
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj);
}
return newObj;
}
function registerGraphQLSchema(payload) {
payload.types = {
arrayTypes: {},
blockInputTypes: {},
blockTypes: {},
groupTypes: {}
};
if (payload.config.localization) {
payload.types.localeInputType = (0, _buildLocaleInputType.default)(payload.config.localization);
payload.types.fallbackLocaleInputType = (0, _buildFallbackLocaleInputType.default)(payload.config.localization);
}
payload.Query = {
name: 'Query',
fields: {}
};
payload.Mutation = {
name: 'Mutation',
fields: {}
};
(0, _init.default)(payload);
(0, _init1.default)(payload);
payload.Query.fields.Access = {
resolve: (0, _access.default)(payload),
type: (0, _buildPoliciesType.default)(payload)
};
if (typeof payload.config.graphQL.queries === 'function') {
const customQueries = payload.config.graphQL.queries(_graphql, payload);
payload.Query = {
...payload.Query,
fields: {
...payload.Query.fields,
...(0, _wrapCustomResolver.wrapCustomFields)(customQueries || {})
}
};
}
if (typeof payload.config.graphQL.mutations === 'function') {
const customMutations = payload.config.graphQL.mutations(_graphql, payload);
payload.Mutation = {
...payload.Mutation,
fields: {
...payload.Mutation.fields,
...(0, _wrapCustomResolver.wrapCustomFields)(customMutations || {})
}
};
}
const query = new _graphql.GraphQLObjectType(payload.Query);
const mutation = new _graphql.GraphQLObjectType(payload.Mutation);
const schema = {
mutation,
query
};
payload.schema = new _graphql.GraphQLSchema(schema);
payload.validationRules = ({ variableValues })=>[
(0, _graphqlquerycomplexity.default)({
estimators: [
(0, _graphqlquerycomplexity.fieldExtensionsEstimator)(),
(0, _graphqlquerycomplexity.simpleEstimator)({
defaultComplexity: 1
})
],
maximumComplexity: payload.config.graphQL.maxComplexity,
variables: variableValues
})
];
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ncmFwaHFsL3JlZ2lzdGVyU2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG5pbXBvcnQgKiBhcyBHcmFwaFFMIGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgeyBHcmFwaFFMT2JqZWN0VHlwZSwgR3JhcGhRTFNjaGVtYSB9IGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgcXVlcnlDb21wbGV4aXR5LCB7XG4gIGZpZWxkRXh0ZW5zaW9uc0VzdGltYXRvcixcbiAgc2ltcGxlRXN0aW1hdG9yLFxufSBmcm9tICdncmFwaHFsLXF1ZXJ5LWNvbXBsZXhpdHknXG5cbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uL3BheWxvYWQnXG5cbmltcG9ydCBhY2Nlc3NSZXNvbHZlciBmcm9tICcuLi9hdXRoL2dyYXBocWwvcmVzb2x2ZXJzL2FjY2VzcydcbmltcG9ydCBpbml0Q29sbGVjdGlvbnMgZnJvbSAnLi4vY29sbGVjdGlvbnMvZ3JhcGhxbC9pbml0J1xuaW1wb3J0IGluaXRHbG9iYWxzIGZyb20gJy4uL2dsb2JhbHMvZ3JhcGhxbC9pbml0J1xuaW1wb3J0IGJ1aWxkRmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUgZnJvbSAnLi9zY2hlbWEvYnVpbGRGYWxsYmFja0xvY2FsZUlucHV0VHlwZSdcbmltcG9ydCBidWlsZExvY2FsZUlucHV0VHlwZSBmcm9tICcuL3NjaGVtYS9idWlsZExvY2FsZUlucHV0VHlwZSdcbmltcG9ydCBidWlsZFBvbGljaWVzVHlwZSBmcm9tICcuL3NjaGVtYS9idWlsZFBvbGljaWVzVHlwZSdcbmltcG9ydCB7IHdyYXBDdXN0b21GaWVsZHMgfSBmcm9tICcuL3V0aWxpdGllcy93cmFwQ3VzdG9tUmVzb2x2ZXInXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlZ2lzdGVyR3JhcGhRTFNjaGVtYShwYXlsb2FkOiBQYXlsb2FkKTogdm9pZCB7XG4gIHBheWxvYWQudHlwZXMgPSB7XG4gICAgYXJyYXlUeXBlczoge30sXG4gICAgYmxvY2tJbnB1dFR5cGVzOiB7fSxcbiAgICBibG9ja1R5cGVzOiB7fSxcbiAgICBncm91cFR5cGVzOiB7fSxcbiAgfVxuXG4gIGlmIChwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSA9IGJ1aWxkTG9jYWxlSW5wdXRUeXBlKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbilcbiAgICBwYXlsb2FkLnR5cGVzLmZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlID0gYnVpbGRGYWxsYmFja0xvY2FsZUlucHV0VHlwZShcbiAgICAgIHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbixcbiAgICApXG4gIH1cblxuICBwYXlsb2FkLlF1ZXJ5ID0ge1xuICAgIG5hbWU6ICdRdWVyeScsXG4gICAgZmllbGRzOiB7fSxcbiAgfVxuXG4gIHBheWxvYWQuTXV0YXRpb24gPSB7XG4gICAgbmFtZTogJ011dGF0aW9uJyxcbiAgICBmaWVsZHM6IHt9LFxuICB9XG5cbiAgaW5pdENvbGxlY3Rpb25zKHBheWxvYWQpXG4gIGluaXRHbG9iYWxzKHBheWxvYWQpXG5cbiAgcGF5bG9hZC5RdWVyeS5maWVsZHMuQWNjZXNzID0ge1xuICAgIHJlc29sdmU6IGFjY2Vzc1Jlc29sdmVyKHBheWxvYWQpLFxuICAgIHR5cGU6IGJ1aWxkUG9saWNpZXNUeXBlKHBheWxvYWQpLFxuICB9XG5cbiAgaWYgKHR5cGVvZiBwYXlsb2FkLmNvbmZpZy5ncmFwaFFMLnF1ZXJpZXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjb25zdCBjdXN0b21RdWVyaWVzID0gcGF5bG9hZC5jb25maWcuZ3JhcGhRTC5xdWVyaWVzKEdyYXBoUUwsIHBheWxvYWQpXG4gICAgcGF5bG9hZC5RdWVyeSA9IHtcbiAgICAgIC4uLnBheWxvYWQuUXVlcnksXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgLi4ucGF5bG9hZC5RdWVyeS5maWVsZHMsXG4gICAgICAgIC4uLndyYXBDdXN0b21GaWVsZHMoKGN1c3RvbVF1ZXJpZXMgfHwge30pIGFzIG5ldmVyKSxcbiAgICAgIH0sXG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiBwYXlsb2FkLmNvbmZpZy5ncmFwaFFMLm11dGF0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IGN1c3RvbU11dGF0aW9ucyA9IHBheWxvYWQuY29uZmlnLmdyYXBoUUwubXV0YXRpb25zKEdyYXBoUUwsIHBheWxvYWQpXG4gICAgcGF5bG9hZC5NdXRhdGlvbiA9IHtcbiAgICAgIC4uLnBheWxvYWQuTXV0YXRpb24sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgLi4ucGF5bG9hZC5NdXRhdGlvbi5maWVsZHMsXG4gICAgICAgIC4uLndyYXBDdXN0b21GaWVsZHMoKGN1c3RvbU11dGF0aW9ucyB8fCB7fSkgYXMgbmV2ZXIpLFxuICAgICAgfSxcbiAgICB9XG4gIH1cblxuICBjb25zdCBxdWVyeSA9IG5ldyBHcmFwaFFMT2JqZWN0VHlwZShwYXlsb2FkLlF1ZXJ5KVxuICBjb25zdCBtdXRhdGlvbiA9IG5ldyBHcmFwaFFMT2JqZWN0VHlwZShwYXlsb2FkLk11dGF0aW9uKVxuXG4gIGNvbnN0IHNjaGVtYSA9IHtcbiAgICBtdXRhdGlvbixcbiAgICBxdWVyeSxcbiAgfVxuXG4gIHBheWxvYWQuc2NoZW1hID0gbmV3IEdyYXBoUUxTY2hlbWEoc2NoZW1hKVxuXG4gIHBheWxvYWQudmFsaWRhdGlvblJ1bGVzID0gKHsgdmFyaWFibGVWYWx1ZXMgfSkgPT4gW1xuICAgIHF1ZXJ5Q29tcGxleGl0eSh7XG4gICAgICBlc3RpbWF0b3JzOiBbXG4gICAgICAgIGZpZWxkRXh0ZW5zaW9uc0VzdGltYXRvcigpLFxuICAgICAgICBzaW1wbGVFc3RpbWF0b3IoeyBkZWZhdWx0Q29tcGxleGl0eTogMSB9KSwgLy8gRmFsbGJhY2sgaWYgY29tcGxleGl0eSBub3Qgc2V0XG4gICAgICBdLFxuICAgICAgbWF4aW11bUNvbXBsZXhpdHk6IHBheWxvYWQuY29uZmlnLmdyYXBoUUwubWF4Q29tcGxleGl0eSxcbiAgICAgIHZhcmlhYmxlczogdmFyaWFibGVWYWx1ZXMsXG4gICAgICAvLyBvbkNvbXBsZXRlOiAoY29tcGxleGl0eSkgPT4geyBjb25zb2xlLmxvZygnUXVlcnkgQ29tcGxleGl0eTonLCBjb21wbGV4aXR5KTsgfSxcbiAgICB9KSxcbiAgXVxufVxuIl0sIm5hbWVzIjpbInJlZ2lzdGVyR3JhcGhRTFNjaGVtYSIsInBheWxvYWQiLCJ0eXBlcyIsImFycmF5VHlwZXMiLCJibG9ja0lucHV0VHlwZXMiLCJibG9ja1R5cGVzIiwiZ3JvdXBUeXBlcyIsImNvbmZpZyIsImxvY2FsaXphdGlvbiIsImxvY2FsZUlucHV0VHlwZSIsImJ1aWxkTG9jYWxlSW5wdXRUeXBlIiwiZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUiLCJidWlsZEZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlIiwiUXVlcnkiLCJuYW1lIiwiZmllbGRzIiwiTXV0YXRpb24iLCJpbml0Q29sbGVjdGlvbnMiLCJpbml0R2xvYmFscyIsIkFjY2VzcyIsInJlc29sdmUiLCJhY2Nlc3NSZXNvbHZlciIsInR5cGUiLCJidWlsZFBvbGljaWVzVHlwZSIsImdyYXBoUUwiLCJxdWVyaWVzIiwiY3VzdG9tUXVlcmllcyIsIkdyYXBoUUwiLCJ3cmFwQ3VzdG9tRmllbGRzIiwibXV0YXRpb25zIiwiY3VzdG9tTXV0YXRpb25zIiwicXVlcnkiLCJHcmFwaFFMT2JqZWN0VHlwZSIsIm11dGF0aW9uIiwic2NoZW1hIiwiR3JhcGhRTFNjaGVtYSIsInZhbGlkYXRpb25SdWxlcyIsInZhcmlhYmxlVmFsdWVzIiwicXVlcnlDb21wbGV4aXR5IiwiZXN0aW1hdG9ycyIsImZpZWxkRXh0ZW5zaW9uc0VzdGltYXRvciIsInNpbXBsZUVzdGltYXRvciIsImRlZmF1bHRDb21wbGV4aXR5IiwibWF4aW11bUNvbXBsZXhpdHkiLCJtYXhDb21wbGV4aXR5IiwidmFyaWFibGVzIl0sIm1h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