Skip to content

Instantly share code, notes, and snippets.

View antonkalik's full-sized avatar
💻
coding...

Anton Kalik antonkalik

💻
coding...
View GitHub Profile
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<script id="jsbin-javascript">
{
"name": "boilerplate-graphql-koa-server-external",
"version": "1.0.0",
"description": "Boilerplate GraphQL Koa server external",
"main": "src/index.js",
"scripts": {
"start": "PORT=4000 node src/index.js"
},
"engines": {
"node": "16.17.x"
@antonkalik
antonkalik / index.js
Created August 30, 2022 15:08
Apollo Server setup
const Koa = require('koa');
const http = require('http');
const cors = require('@koa/cors');
const { ApolloServer } = require('apollo-server-koa');
const { makeExecutableSchema } = require('@graphql-tools/schema');
const typeDefs = require('./schema');
const resolvers = require('./resolvers');
async function server({ typeDefs, resolvers }) {
const app = new Koa();
@antonkalik
antonkalik / schema.js
Last active August 30, 2022 15:23
GraphQL Schema
const { gql } = require('apollo-server-koa');
module.exports = gql`
type Query {
getItemsExternal: [DataExternalExample]
}
type DataExternalExample {
id: ID
label: String
@antonkalik
antonkalik / resolvers.js
Created August 30, 2022 15:24
Resolvers for GraphQL Schema
const fakeData = {
id: 223421,
label: 'Some Label From External',
};
module.exports = {
Query: {
getItemsExternal: () => [fakeData],
},
Mutation: {
@antonkalik
antonkalik / package.json
Last active August 30, 2022 15:44
Boilerplate GraphQL Koa Server
{
"name": "boilerplate-graphql-koa-server",
"description": "Boilerplate GraphQL Koa server",
"scripts": {
"start": "PORT=3000 node src/index.js"
},
"dependencies": {
"@graphql-tools/load": "^7.7.5",
"@graphql-tools/url-loader": "^7.14.1",
}
@antonkalik
antonkalik / index.js
Created August 30, 2022 15:43
Apollo Server with merging schemas
// the same imports as it was in boilerplate-graphql-koa-server-external
const { loadSchema } = require('@graphql-tools/load');
const { UrlLoader } = require('@graphql-tools/url-loader');
const { makeExecutableSchema, mergeSchemas } = require('@graphql-tools/schema');
const EXTERNAL_ENDPOINT = 'http://localhost:4000/api/v1/graphql';
async function server({ typeDefs, resolvers }) {
// app and httpServer the same like in boilerplate-graphql-koa-server-external
@antonkalik
antonkalik / index.js
Last active August 30, 2022 15:50
GraphQL Server Merge Schemas
const Koa = require('koa');
const http = require('http');
const cors = require('@koa/cors');
const { ApolloServer } = require('apollo-server-koa');
const { loadSchema } = require('@graphql-tools/load');
const { UrlLoader } = require('@graphql-tools/url-loader');
const { makeExecutableSchema, mergeSchemas } = require('@graphql-tools/schema');
const typeDefs = require('./schema');
const resolvers = require('./resolvers');
@antonkalik
antonkalik / schema.js
Created August 30, 2022 15:54
GraphQL Schema
const { gql } = require('apollo-server-koa');
module.exports = gql`
type Query {
getFakeDataExample: DataExample
}
type DataExample {
id: ID
value: String
@antonkalik
antonkalik / resolvers.js
Created August 30, 2022 15:54
Resolvers GraphQL Schema
const fakeData = {
id: 4838745,
value: 'Some Random String',
};
module.exports = {
Query: {
getFakeDataExample: () => fakeData,
},
Mutation: {