@panter/simpl-to-graphql-schema

    1.0.5 • Public • Published

    Simpl To GraphQL Schema

    This is new updated and improved fork of # Simple Schema - GraphQL Schema Bridge except it doesn't build your resolvers.

    Change only your Meteor Simple Schema: GraphQL schema are updated automatically.

    Define your Simple Schemas for your collection and let simpl-to-graphql-schema do the tedious work of defining the schema's basic fields and resolvers, for you.

    This tool works with Meteor Framework.

    • Installation

    npm install --save simpl-to-graphql-schema

    • Your simple schema
    import SimpleSchema from 'simpl-schema';
    import { Mongo } from 'meteor/mongo';
    
    // Define your collection
    const Items = new Mongo.Collection('items');
    
    //build your schema with SimpleSchema as usual
    const Schemas = new SimpleSchema({
      _id: {
        type: String,
      },
      name: {
        type: String,
        label: "Item name",
      },
      ownerId: {
        type: String,
        label: "Owner identification",
      },
      createdAt: {
        type: String,
        label: "Item creation date",
      },
      updatedAt: {
        type: String,
        label: "Item last update",
      },
    });
    
    export default Schemas;
    Items.attachSchema(Schemas);
    • Your GraphQL schema
    import SimpleToGraphql from 'simpl-to-graphql';
    import Schemas from './items';
    
    const schemaGql = SimpleToGraphql.schema({ 
    	// Your simple schema
    	schema: Schemas, 
    	// your grapqhl schema name
    	name: 'Items', 
    	// SimpleToGraphql options
    	options: {
    		// create schema only for those fields in an Array
    		fields: ['name', 'ownerId', 'createdAt'],
    		// insert scalars in an Array	
    		scalar: ['Date'],
    		// create schema except for those fields in an Array
            except: ['updatedAt'],
            // change fields type
            custom: {
                createdAt: "Date",
                updatedAt: "Date"
            },
    		// add fields to your generated schema
    		additional: [
    			'checked: Boolean'
    			'usersList: [Users]'
        ],
    		// console.log() your generated schema
    		print: true, //default false
    	}
    });
    export default schemaGql;
    • Your resolvers
    //in case your want to use the built in Date scalar
    import { DateScalar } from 'simpl-to-graphql';
    // collections
    import Items from '/imports/api/pages/pages'
    
    export default {
        Query: {
          item: (root, args, { userId }) => Items.findOne({ ownerId: userId }),
          items: (root, args, { userId }) => Items.find({ ownerId: userId }).fetch(),
        },
        // you can put it here or in your merge of resolvers with DateScalar
        Date: DateScalar.Date
      };

    Install

    npm i @panter/simpl-to-graphql-schema

    DownloadsWeekly Downloads

    1

    Version

    1.0.5

    License

    MIT

    Unpacked Size

    18.9 kB

    Total Files

    9

    Last publish

    Collaborators

    • remolueoend
    • macrozone
    • claudiocro
    • blurri