apollo-resolver-fs

A resolver function for Apollo Server which loads serialized data from local files

Usage no npm install needed!

<script type="module">
  import apolloResolverFs from 'https://cdn.skypack.dev/apollo-resolver-fs';
</script>

README

apollo-resolver-fs

version license build code style

A resolver function for Apollo Server which loads serialized data from local files.

Designed for local testing as a companion to the Google Cloud Storage version apollo-resolver-gcs.

Based on the example server in the Apollo Server 2 Getting Started guide.

Usage

const { ApolloServer } = require('apollo-server')
const { createResolver } = require('apollo-resolver-fs')

const typeDefs = ...

const getBook = createResolver({
  basePath: '/path/to/the/data',
  argsToKey: ({ slug }) => `${slug}.json`,
})

const resolvers = {
  Query: {
    getBook,
  },
}

const server = new ApolloServer({ typeDefs, resolvers })

await server.listen()

In this example, getBook(slug: "harry-potter") returns the deserialized contents of /path/to/the/data/harry-pottern.json.

Running the example server

  1. Run npm start to start the server.
  2. Open https://localhost:4000/. You should see the GraphQL Playground explorer tool.
  3. Run a query:
{
  getBook(slug: "harry-potter") {
    title
    author
  }
}

You should see the result:

{
  "data": {
    "getBook": {
      "title": "Harry Potter and the Chamber of Secrets",
      "author": "J.K. Rowling"
    }
  }
}

License

This project is licensed under the MIT license.