graphile / graphile/crystal

Nest.js server support in grafserv?

Open
#2,254 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
12.9k
Forks
625
Avg merge
5h 23m
Merged PRs (30d)
24

Description

### Summary

Hi, we are using Nestjs, and we would like to migrate from v4 to v5, but we were not able to find info about `postgraphileMiddleware.graphqlRouteHandler` is it still supported or what is the new way to achieve the following?

### Additional context

Here are our `postgraphile.middleware.ts` config

```
import { postgraphile } from 'postgraphile';
import ConnectionFilterPlugin from 'postgraphile-plugin-connection-filter';
import PgAggregatesPlugin from '@graphile/pg-aggregates';
import { getConfig } from '../config';

const postgraphileMiddleware = postgraphile(
`postgres://${process.env.SVC_USERNAME}:${process.env.SVC_PASSWORD}@${process.env.DB_HOST ?? getConfig('database_url')}:5432/${process.env.DB_DATABASE}`,
getConfig('schema'),
{
graphiql: true,
enhanceGraphiql: true,
graphqlRoute: '/api/graphql',
graphiqlRoute: '/api/graphiql',
retryOnInitFail: true,
appendPlugins: [ConnectionFilterPlugin, PgAggregatesPlugin],
watchPg: true,
ownerConnectionString: `postgres://${process.env.ROOT_USERNAME}:${process.env.ROOT_PASSWORD}@${process.env.DB_HOST ?? getConfig('database_url')}:5432/${process.env.DB_DATABASE}`,
},
);

export default postgraphileMiddleware;

```

Here is our `postgraphile.controller.ts` controller
```
import { Controller, Post, Get, Req, Next, Res } from '@nestjs/common';
import { Request, Response, NextFunction } from 'express';
import { PostGraphileResponseNode } from 'postgraphile';
import postgraphileMiddleware from './postgraphile.middleware';
import { RequiredPermissions } from '../guards/authorization.guard';
import { USER_ROLE } from '../guards/token-roles';
import { ApiBearerAuth } from '@nestjs/swagger';

@RequiredPermissions({ role: USER_ROLE })
@ApiBearerAuth()
@Controller('/')
export class PostGraphileController {
@Get('graphiql')
graphiql(@Req() request: Request, @Res() response: Response, @Next() next: NextFunction) {
return postgraphileMiddleware.graphiqlRouteHandler!(
new PostGraphileResponseNode(request, response, next),
);
}

@Post('graphql')
graphql(@Req() request: Request, @Res() response: Response, @Next() next: NextFunction) {
return postgraphileMiddleware.graphqlRouteHandler(
new PostGraphileResponseNode(request, response, next),
);
}
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.