UNPKG

@a11ywatch/core

Version:
51 lines (50 loc) 1.61 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.typeDefs = exports.createScheme = void 0; const schema_1 = require("@graphql-tools/schema"); const graphql_tag_1 = __importDefault(require("graphql-tag")); const graphql_middleware_1 = require("graphql-middleware"); const resolvers_1 = require("./resolvers"); const gql_types_1 = require("./graph/gql_types"); const limiters_1 = require("../web/limiters"); const typeDefs = (0, graphql_tag_1.default) ` directive @rateLimit( max: Int window: String message: String identityArgs: [String] arrayLengthField: String ) on FIELD_DEFINITION ${gql_types_1.invoice} ${gql_types_1.pageInsights} ${gql_types_1.meta} ${gql_types_1.payments} ${gql_types_1.user} ${gql_types_1.feature} ${gql_types_1.website} ${gql_types_1.page} ${gql_types_1.issue} ${gql_types_1.analytic} ${gql_types_1.history} ${gql_types_1.query} ${gql_types_1.input} ${gql_types_1.mutation} ${gql_types_1.subscription} `; exports.typeDefs = typeDefs; const createScheme = () => { const rateLimit = (0, limiters_1.getGqlRateLimitDirective)(); const scheme = { typeDefs, resolvers: resolvers_1.resolvers, schemaDirectives: { rateLimit, }, }; return (0, graphql_middleware_1.applyMiddleware)((0, schema_1.makeExecutableSchema)(scheme)); }; exports.createScheme = createScheme; //# sourceMappingURL=schema.js.map