An open API service indexing awesome lists of open source software.

https://github.com/graphile/postgraphile-apollo-server


https://github.com/graphile/postgraphile-apollo-server

Last synced: 9 months ago
JSON representation

Awesome Lists containing this project

README

          

# postgraphile-apollo-server

This module performs some of the boilerplate for using PostGraphile with Apollo
Server.

## Usage

```js
const pg = require("pg");
const { ApolloServer } = require("apollo-server");
const { makeSchemaAndPlugin } = require("postgraphile-apollo-server");

const pgPool = new pg.Pool({
connectionString: process.env.DATABASE_URL
});

async function main() {
const { schema, plugin } = await makeSchemaAndPlugin(
pgPool,
'public', // PostgreSQL schema to use
{
// PostGraphile options, see:
// https://www.graphile.org/postgraphile/usage-library/
}
);

const server = new ApolloServer({
schema,
plugins: [plugin]
});

const { url } = await server.listen();
console.log(`🚀 Server ready at ${url}`);
}

main().catch(e => {
console.error(e);
process.exit(1);
});
```

## Limitations

Not all PostGraphile library options are supported at this time; for example
`watchPg` is not.

## Example

https://github.com/graphile/postgraphile-example-apollo-server

## Changelog

- v0.1.0 - initial release
- v0.1.1 - fix headers after Apollo Server breaking change (thanks @miguelocarvajal)

## TODO:

- [ ] Improve this README!
- [ ] Compile a list of the unsupported PostGraphile library options
- [ ] Don't require a `pgPool` to be passed - allow a connection string instead
- [ ] Add tests