From 4743423bb128cde1d800b1a6d22895152e4f87a9 Mon Sep 17 00:00:00 2001 From: Nikola Bjelo Date: Thu, 11 Oct 2018 12:31:34 +0200 Subject: [PATCH] namespacing sources --- server/src/index.js | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/server/src/index.js b/server/src/index.js index 45122517b..93443ab70 100644 --- a/server/src/index.js +++ b/server/src/index.js @@ -2,7 +2,14 @@ import express from 'express' import bodyParser from 'body-parser' import 'dotenv/config' import { graphqlExpress, graphiqlExpress } from 'apollo-server-express' -import { makeRemoteExecutableSchema, mergeSchemas, introspectSchema } from 'graphql-tools' +import { + makeRemoteExecutableSchema, + mergeSchemas, + introspectSchema, + transformSchema, + RenameTypes, + RenameRootFields +} from 'graphql-tools' import fetch from 'node-fetch' import { createHttpLink } from 'apollo-link-http' @@ -21,8 +28,27 @@ async function run () { } const teamsSchema = await createRemoteSchema(process.env.TEAMS_API_URL) - // const usersSchema = await createRemoteSchema(process.env.USERS_API_URL) - const keyvaultSchema = await createRemoteSchema(process.env.KEYVAULT_API_URL) + const usersSchema = await createRemoteSchema(process.env.USERS_API_URL) + const keyVaultSchema = await createRemoteSchema(process.env.KEYVAULT_API_URL) + + const capitalize = (string) => { + return (string).charAt(0).toUpperCase() + (string).slice(1) + } + + const transformedTeamsSchema = transformSchema(teamsSchema, [ + new RenameTypes((name) => `TeamsModule${capitalize(name)}`), + new RenameRootFields((operation, name) => `TeamsModule${capitalize(name)}`) + ]) + + const transformedUsersSchema = transformSchema(usersSchema, [ + new RenameTypes((name) => `UsersModule${capitalize(name)}`), + new RenameRootFields((operation, name) => `UsersModule${capitalize(name)}`) + ]) + + const transformedKeyVaultSchema = transformSchema(keyVaultSchema, [ + new RenameTypes((name) => `KeyVaultModule${capitalize(name)}`), + new RenameRootFields((operation, name) => `KeyVaultModule${capitalize(name)}`) + ]) // const linkSchemaDefs = // ` @@ -32,7 +58,7 @@ async function run () { // ` const schema = mergeSchemas({ - schemas: [teamsSchema, keyvaultSchema] + schemas: [transformedTeamsSchema, transformedUsersSchema, transformedKeyVaultSchema] // schemas: [teamsSchema, usersSchema, keyvaultSchema, linkSchemaDefs], // resolvers: mergeInfo => ({ // Team: {