firestore-graphql-scalars
TypeScript icon, indicating that this package has built-in type declarations

3.0.2 • Public • Published

npm version

A custom GraphQL scalar type for Firebase and Google Cloud Firestore.

Installation

npm install --save firestore-graphql-scalars

or

yarn add firestore-graphql-scalars

Usage

To use this scalar you'll need to add it in two places, your schema and your resolvers map.

In your schema:

scalar Timestamp

In your resolver map, first import them:

import { timestampResolver } from 'firestore-graphql-scalars';

Then make sure they're in the root resolver map like this:

const myResolverMap = {
  Timestamp: timestampResolver,

  Query: {
    // more stuff here
  },

  Mutation: {
    // more stuff here
  },
};

Alternatively, use the default import and ES6's spread operator syntax:

import { resolvers } from 'firestore-graphql-scalars';

Then make sure they're in the root resolver map like this:

const myResolverMap = {
  ...resolvers,

  Query: {
    // more stuff here
  },

  Mutation: {
    // more stuff here
  },
};

That's it. Now you can use these scalar types in your schema definition like this:

type Person {
  createdAt: Timestamp
  ...
}

These scalars can be used just like the base, built-in ones.

Usage with Apollo Server

import { ApolloServer } from 'apollo-server';
import { makeExecutableSchema } from '@graphql-tools/schema';
import { typeDefs, resolvers } from 'firestore-graphql-scalars';

const server = new ApolloServer({
  schema: makeExecutableSchema({
    typeDefs: [
      // use spread syntax to add scalar definitions to your schema
      ...typeDefs,
      // DateTimeTypeDefinition,
      // ...
      // ... other type definitions ...
    ],
    resolvers: {
      // use spread syntax to add scalar resolvers to your resolver map
      ...resolvers,
      // DateTimeResolver,
      // ...
      // ... remainder of resolver map ...
    },
  }),
});

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

License

Released under the MIT license.

Contributing

Issues and Pull Requests are always welcome. ❤️

Thanks

This repository is a fork of graphql-scalars. It's inspired by @lookfirst's issue and juicylevel/coffee-service. Big thanks to the contributors of these repositories! 🙏

Package Sidebar

Install

npm i firestore-graphql-scalars

Weekly Downloads

342

Version

3.0.2

License

MIT

Unpacked Size

17.4 kB

Total Files

15

Last publish

Collaborators

  • simenandre