Repository: hyperfuse/micro-graphql Branch: master Commit: 587183a6a839 Files: 13 Total size: 3.5 KB Directory structure: gitextract_zhurid15/ ├── .babelrc ├── .flowconfig ├── .gitignore ├── README.md ├── package.json ├── src/ │ ├── index.js │ ├── mutations/ │ │ ├── createKnock.js │ │ └── mutation.js │ ├── queries/ │ │ ├── Knock.js │ │ └── query.js │ ├── schema/ │ │ └── schema.js │ └── types/ │ └── KnockType.js └── webpack.config.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: .babelrc ================================================ { "presets": [ ["es2015", {"modules": false}], ], "plugins": [ "transform-flow-strip-types", ] } ================================================ FILE: .flowconfig ================================================ [ignore] [include] [libs] [options] ================================================ FILE: .gitignore ================================================ node_modules .DS_Store /dist dist flow-typed ================================================ FILE: README.md ================================================ # micro-graphql > Repo meant to be cloned for our GraphQL microservices ### Usage + Clone the repository ```bash git clone https://github.com/hyperfuse/micro-graphql.git ``` + Install the dependencies ```bash yarn ``` + Start the microservice ```bash yarn start ``` + Make it your own! ### License MIT ================================================ FILE: package.json ================================================ { "name": "micro-graphql", "version": "0.0.0", "description": "micro-graphql", "main": "dist/bundle.js", "scripts": { "start": "yarn run build && micro dist/bundle.js", "build": "webpack", "watch": "webpack -w" }, "repository": "https://github.com/hyperfuse/micro-graphql.git", "author": "Kennet Postigo", "license": "MIT", "dependencies": { "express-graphql": "^0.6.1", "graphql": "^0.8.2", "micro": "^6.2.0", "micro-compress": "^1.0.0" }, "devDependencies": { "babel-core": "^6.21.0", "babel-loader": "^6.2.10", "babel-plugin-transform-flow-strip-types": "^6.21.0", "babel-preset-es2015": "^6.18.0", "flow-bin": "^0.37.4", "webpack": "2.2.0-rc.7" } } ================================================ FILE: src/index.js ================================================ import micro from 'micro'; import graphqlHTTP from 'express-graphql'; import Schema from './schema/schema.js'; exports.default = graphqlHTTP({ schema: Schema, pretty: true, graphiql: true }); ================================================ FILE: src/mutations/createKnock.js ================================================ import { GraphQLString, GraphQLBoolean } from 'graphql'; import Knock from './../types/KnockType.js'; const CreateKnock = { type: Knock, args: { isHome: { type: GraphQLBoolean } }, resolve(root, args, context) { return 'Walking to the door!'; }, }; export default CreateKnock; ================================================ FILE: src/mutations/mutation.js ================================================ import { GraphQLObjectType } from 'graphql'; import CreateKnock from './createKnock.js'; const Mutation = new GraphQLObjectType({ name: 'Mutation', description: 'Your Root Mutation', fields() { return { CreateKnock }; }, }); export default Mutation; ================================================ FILE: src/queries/Knock.js ================================================ import { GraphQLString } from 'graphql'; import Knock from './../types/KnockType.js'; const knockknock = { type: Knock, args: { knock: { type: GraphQLString } }, resolve() { return 'Waddup fam!'; }, }; export default knockknock; ================================================ FILE: src/queries/query.js ================================================ import { GraphQLObjectType } from 'graphql'; import knockknock from './Knock.js'; const Query = new GraphQLObjectType({ name: 'Query', description: 'Your Root Query', fields() { return { knockknock }; }, }); export default Query; ================================================ FILE: src/schema/schema.js ================================================ import { GraphQLSchema } from 'graphql'; import Query from './../queries/query.js'; import Mutation from './../mutations/mutation.js'; const Schema = new GraphQLSchema({ query: Query, mutation: Mutation }); export default Schema; ================================================ FILE: src/types/KnockType.js ================================================ import { GraphQLObjectType, GraphQLString } from 'graphql'; const Knock = new GraphQLObjectType({ name: 'Knock', description: 'KnockKnock to say hello.', fields() { return { knock: { type: GraphQLString, resolve(knock) { return knock; }, }, }; }, }); export default Knock; ================================================ FILE: webpack.config.js ================================================ var path = require('path'); var webpack = require('webpack'); module.exports = { devtool: 'inline-source-map', entry: [ './src/index', ], output: { path: path.join(__dirname, 'dist'), filename: 'bundle.js', }, plugins: [ new webpack.NamedModulesPlugin(), new webpack.NoEmitOnErrorsPlugin(), ], module: { rules: [ { test: /\.js?$/, use: [ 'babel-loader' ], include: path.join(__dirname, 'src'), }, ], }, };