New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@graphite/server

Package Overview
Dependencies
Maintainers
1
Versions
75
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@graphite/server

GraphiteJS Framework

latest
npmnpm
Version
0.10.14
Version published
Maintainers
1
Created
Source

GraphiteJS

Framework NodeJS for GraphQl

graphitejs TravisCI Status Codecov Status semantic-release npm latest version


GraphiteJS is a NODE.JS Framework for building GraphQL schemas/types fast, easily and with scalability.

  • Easy to use: GraphiteJS make easy GraphQL in NodeJS without effort.
  • Any Front: GraphiteJS support any front library.
  • Data agnostic: GraphiteJS supports any kind of data source.

Guide

Install


npm i @graphite/server --save

yarn add @graphite/server

on your index file:


import { Graphite } from '@graphite/server'

main = async () => {
  const graphite = await Graphite()
}

main()

and that's all, you have running the graphqli tool on the port 4000 by default.

How to use

After install @graphite/server you have to create your first model. We recommend creating a folder called models and follow the pattern matching the filename with the Type name.

Types


import { GraphQL } from '@graphite/server'

export const Developer = GraphQL('Developer')({
   // the value always have to be an array first arg is the type, the second arg is an optional comment
  name: ['String!', 'Your name is required'],
  age: ['Int'],
  isGreatDeveloper: ['Boolean']
})

So, now you need to pass this model to the Graphite Server

on index.js


import { Graphite } from '@graphite/server'
import { Developer } from './models/Developer'

main = async () => {
  await Graphite({ models: [Developer] })
}

main()

Queries


import { GraphQL } from '@graphite/server'

export const Developer = GraphQL('Developer')({
  name: ['String!', 'Your name is required'],
  age: ['Int'],
  isGreatDeveloper: ['Boolean'],

  Query: {
    'developer: Developer': () => ({ name: 'Your name' }),
    'developers: [Developer]': () => ([{ name: 'Your name' }]),
  }
})

Mutations


import { GraphQL } from '@graphite/server'

export const Developer = GraphQL('Developer')({
  name: ['String!', 'Your name is required'],

  Mutation: {
    'createDeveloper(name: String): Developer': (_, { name, }) => ({ name }),
    'updateDeveloper(id: ID!, name: String): Developer': (_, { name }) => ({ name }),
    'removeDeveloper(id: ID!): Developer': (_, { name }) => ({ name }),
  },
})

Subscriptions


import { GraphQL, PubSub } from '@graphite/server'

const pubsub = new PubSub()
const DEVELOPER_ADDED = 'DEVELOPER_ADDED'

export const Developer = GraphQL('Developer')({
  name: ['String!', 'Your name is required'],

  Mutation: {
    'createDeveloper(name: String): Developer': (_, { name, }) => { 
      pubsub.publish(DEVELOPER_ADDED, { developerAdded: { name } })
      return { name }
    },
  },

  Subscription: {
    'developerAdded: Developer': {
      subscribe: () => pubsub.asyncIterator([DEVELOPER_ADDED]),
    },
  },
})

Relations


  // models/Repository.js
  const Repository = GraphQL('Repository')({
      name: ['String'],
      url: ['String'],
  })

  // models/GithubProfile.js
  const GithubProfile = GraphQL('GithubProfile')({
      url: ['String'],
  })

  // models/Developer.js
  const Developer = GraphQL('Developer')({
    name: ['String'],

    'respositories: [Repository]': () => [{ name: 'GraphiteJS', url: 'https://github.com/graphitejs/graphitejs' }],

    'githubProfile: GithubProfile': () => ({ url: 'https://github.com/wzalazar' }),

    Query: {
      'developer: Developer': () => ({ name: 'Walter Zalazar' }),
    },
  })

So, now you need to pass this model to the Graphite Server

on index.js


import { Graphite } from '@graphite/server'
import { Developer } from './models/Developer'
import { Repository } from './models/Repository'
import { GithubProfile } from './models/GithubProfile'

main = async () => {
  await Graphite({ models: [Developer, Repository, GithubProfile] })
}

main()

Contributing

Please see our contributing.md

  • Clone this repository.
  • Install dependencies.

npm install

  • Feel free for pull request.

Team

Creator

Walter Zalazar
Walter Zalazar
:octocat: @wzalazar
:bird: @wzalazar_

Core members

Walter ZalazarJose Casella
Walter ZalazarJosé Luis Casella
:octocat:@wzalazar@jl-casella
:bird:@wzalazar_@jl-casella

License

MIT

FAQs

Package last updated on 27 Jul 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts