GraphQL-Gate
GraphQL-Gate copied to clipboard
A GraphQL rate limiting library with query complexity analysisfor Node.js
### Summary 1. adds support for `@skip` and `@include` directives for more accurate cost analysis for queries using these directives 2. adds tests for these directives on objects, interfaces/fragments ###...
### Summary Moves throttling request processing to rate limiter setup to ensure all rate limiters are throttled and not just that of the express middleware. ### Type of Change Please...
### Summary This PR updates imports to support ESModules per the typescript [docs](https://www.typescriptlang.org/docs/handbook/esm-node.html#:~:text=This%20code%20works%20in%20CommonJS%20modules%2C%20but%20will%20fail%20in%20ES%20modules). Adds linting rules to enforce the addition of file extensions to import statements. Updates jest config to...
`@include(if: boolean)` and `@skip(if: boolean)` should be accounted for when analyzing complexity.
Connections are configured to have a field weight of 2 but this is not reflected anywhere in the cost analysis. How should we handle this? Where does this come into...
Make rate limiter available for other frameworks: - koa - hapi - ApolloServer
At the time of writing, the express middleware function is hard coded to use the type complexity algorithm for complexity analysis. Refactor this function to make the choice of resolve...
At the time of writing, the express rate limiter function is rate limiting requests by IP address by default. Add a configuration option to allow the developer to throttle requests...
Our token bucket algo is currently getting data from the redis cache and doing computations server side. 'Redis Functions' allow the redis store to carry out computations on the redis's...
when making a redis command like `setex()` or `get()`, if the connection to redis fails the function will fail silently. Refactor the algo to handle these edge cases.