Skip to content

Urigo/graphql-modules

Folders and files

NameName
Last commit message
Last commit date
Feb 19, 2025
Jan 21, 2025
Jan 21, 2025
Jan 21, 2025
Oct 27, 2021
Aug 24, 2023
Jun 20, 2022
Feb 19, 2025
Oct 23, 2024
Feb 22, 2025
Sep 21, 2022
Sep 21, 2020
Jan 22, 2025
Jan 21, 2025
Jan 22, 2025
Nov 19, 2018
Aug 6, 2024
Oct 27, 2021
Aug 20, 2020
Jan 21, 2025
Aug 20, 2020
Feb 24, 2025
Feb 14, 2025
Aug 20, 2020
Sep 18, 2020
Aug 20, 2020
Feb 24, 2025

Repository files navigation

GraphQLConf 2024 Banner: September 10-12, San Francisco. Hosted by the GraphQL Foundation

npm version CI Discord Chat GitHub license

GraphQL Modules is a toolset of libraries and guidelines dedicated to create reusable, maintainable, testable and extendable modules out of your GraphQL server.

Highlights

  • Reusable modules - Modules are defined by their GraphQL schema (Schema first design). They can be shared between apps.
  • Scalable structure - Manage multiple teams and features, multiple micro-services and servers.
  • Gradual growth - A clear, gradual path from a very simple and fast, single-file modules, to scalable multi-file, multi-teams, multi-repo, multi-server modules.
  • Testable - A rich toolset around testing, mocking and separation.

Documentation

Documentation is available at graphql-modules.com.

Installation

To install graphql-modules, use the following:

$ npm install graphql-modules

# Or, with Yarn

$ yarn add graphql-modules

Pre-release

We are also publishing a pre-release version to NPM on each change.

Just take a look at the build status on Github Actions and find "Publish Canary" job to get the published version.

Usage

More advanced usage at graphql-modules.com

import { createModule, createApplication, gql } from 'graphql-modules'

const module = createModule({
  id: 'my-module',
  typeDefs: gql`
    type Post {
      id: ID
      title: String
      author: User
    }

    type Query {
      posts: [Post]
    }
  `,
  resolvers: blogResolvers
})

const application = createApplication({
  modules: [module]
})

Inside the examples directory you can find the following examples:

Contributions

Contributions, issues and feature requests are very welcome. If you are using this package and fixed a bug for yourself, please consider submitting a PR!

And if this is your first time contributing to this project, please do read our Contributor Workflow Guide before you get started off.

Code of Conduct

Help us keep GraphQL Modules open and inclusive. Please read and follow our Code of Conduct as adopted from Contributor Covenant

License

GitHub license

MIT