@a11ywatch/core
Version:
a11ywatch central API
51 lines (50 loc) • 1.61 kB
JavaScript
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
;