Skip to content

Instantly share code, notes, and snippets.

View danstarns's full-sized avatar
🤟

Daniel Starns danstarns

🤟
View GitHub Profile
@danstarns
danstarns / nested-nodes.js
Created December 26, 2019 12:53
idio-graphql nested nodes gist
const { ApolloServer } = require("apollo-server");
const { combineNodes, GraphQLNode } = require("idio-graphql");
const gql = require("graphql-tag");
const User = new GraphQLNode({
name: "User",
typeDefs: gql`
type User {
id: ID
@danstarns
danstarns / field-resolvers.js
Created December 26, 2019 13:01
idio-graphql Field resolvers
const { ApolloServer } = require("apollo-server");
const { combineNodes, GraphQLNode } = require("idio-graphql");
const gql = require("graphql-tag");
const User = new GraphQLNode({
name: "User",
typeDefs: gql`
type User {
id: ID
@danstarns
danstarns / node-enums.js
Created December 26, 2019 13:05
idio-graphql GraphQLNode enums
const { ApolloServer } = require("apollo-server");
const { combineNodes, GraphQLNode, IdioEnum } = require("idio-graphql");
const gql = require("graphql-tag");
const StatusEnum = new IdioEnum({
name: "Status",
typeDefs: gql`
enum Status {
ONLINE
@danstarns
danstarns / idio-directive.js
Created December 26, 2019 13:15
idio-graphql directives
const { combineNodes, GraphQLNode, IdioDirective } = require("idio-graphql");
const { ApolloServer } = require("apollo-server");
const { HasScopeDirective } = require("graphql-auth-directives");
const gql = require("graphql-tag");
const hasScopeDirective = new IdioDirective({
name: "hasScope",
typeDefs: gql`
directive @hasScope(scopes: [String]!) on FIELD_DEFINITION
`,
@danstarns
danstarns / idio-scalar.js
Created December 26, 2019 13:23
idio-graphql Scalars example
const { combineNodes, GraphQLNode, IdioScalar } = require("idio-graphql");
const { ApolloServer } = require("apollo-server");
const { GraphQLJSON } = require("graphql-type-json");
const gql = require("graphql-tag");
const JSONScalar = new IdioScalar({
name: "JSON",
resolver: GraphQLJSON
});
@danstarns
danstarns / schema-globals.js
Created December 26, 2019 13:27
idio-graphql schemaGlobals example
const { combineNodes, GraphQLNode } = require("idio-graphql");
const { ApolloServer } = require("apollo-server");
const gql = require("graphql-tag");
const User = new GraphQLNode({
name: "User",
typeDefs: gql`
type User {
id: ID
name: String
@danstarns
danstarns / dependency-injection.js
Last active December 29, 2019 19:57
idio-graphql dependency injection
const { combineNodes, GraphQLNode } = require("idio-graphql");
const { ApolloServer } = require("apollo-server");
const gql = require("graphql-tag");
const User = new GraphQLNode({
name: "User",
typeDefs: gql`
type User {
name: String
}
@danstarns
danstarns / resolver-hooks.js
Last active December 29, 2019 19:56
idio-graphql resolver hooks example
const { combineNodes, GraphQLNode } = require("idio-graphql");
const { ApolloServer } = require("apollo-server");
const gql = require("graphql-tag");
const User = new GraphQLNode({
name: "User",
typeDefs: gql`
type User {
name: String
}
@danstarns
danstarns / mutations-comparison.md
Last active April 11, 2021 09:33
mutations-comparison

Mutations Comparison

Comparison of mutations between neo4j-graphql-js and @neo4j/graphql.

Schema

Image from Gyazo

type Product {
@danstarns
danstarns / complexity.js
Last active January 16, 2024 01:34
graphql-depth-apollo-server
const gqlComplexity = require("graphql-query-complexity");
const { UserInputError } = require("apollo-server");
const { separateOperations } = require("graphql");
const MAX_DEPTH = 10;
const estimators = [
gqlComplexity.fieldExtensionsEstimator(),
gqlComplexity.directiveEstimator(),
gqlComplexity.simpleEstimator({ defaultComplexity: 1 })