Noosphere Possibilities Maximized

    graphql-query-builder

    1.0.7 • Public • Published

    graphql-query-builder

    a simple but powerful graphQL query builder

    info:

    npm version License pull requests welcome

    tests:

    build Coverage Status

    quality:

    Code Climate bitHound Overall Score Issue Count

    If this was helpful, ★ it on github

    tested on NodeJS and Webpack

    Demo / Sandbox 👍

    Install

    npm install graphql-query-builder

    Api

    const Query = require('graphql-query-builder');

    constructor

    query/mutator you wish to use, and an alias or filter arguments.

    Argument (one to two) Description
    String the name of the query function
    * String / Object (optional) This can be an alias or filter values
    let profilePicture = new Query("profilePicture",{size : 50});

    setAlias

    set an alias for this result.

    Argument Description
    String The alias for this result
    profilePicture.setAlias("MyPic");

    filter

    the parameters to run the query against.

    Argument Description
    Object An object mapping attribute to values
    profilePicture.filter({ height : 200, width : 200});

    find

    outlines the properties you wish to be returned from the query.

    Argument (one to many) Description
    String or Object representing each attribute you want Returned
    ... same as above
        profilePicture.find( { link : "uri"}, "width", "height");

    toString

    return to the formatted query string

      // A (ES6)
      `${profilePicture}`;
      // B
      profilePicture+'';
      // C
      profilePicture.toString();

    run samples

    node example/simple.js

    Example

    var Query = require('graphql-query-builder');
     
    // example of nesting Querys
    let profilePicture = new Query("profilePicture",{size : 50});
        profilePicture.find( "uri", "width", "height");
        
    let user = new Query("user",{id : 123});
        user.find(["id", {"nickname":"name"}, "isViewerFriend",  {"image":profilePicture}])
        
        console.log(user)
        /*
         user( id:123 ) {
        id,
        nickname : name,
        isViewerFriend,
        
        image : profilePicture( size:50 ) {
            uri,
            width,
            height
        }
      }
        */
        
    // And another example
     
    let MessageRequest = { type:"chat", message:"yoyo",
                       user:{
                                name:"bob",
                                screen:{
                                        height:1080,
                                        width:1920
                                        }
                        },
                        friends:[
                                 {id:1,name:"ann"},
                                 {id:2,name:"tom"}
                                 ]
                        };
                        
    let MessageQuery = new Query("Message","myPost");
        MessageQuery.filter(MessageRequest);
        MessageQuery.find({ messageId : "id"}, {postedTime : "createTime" });
        
        console.log(MessageQuery);
        
        /*
        myPost:Message( type:"chat",
                        message:"yoyo",
                        user:{name:"bob",screen:{height:1080,width:1920}},
                        friends:[{id:1,name:"ann"},{id:2,name:"tom"}])
            {
                messageId : id,
                postedTime : createTime
            }
        */
     
        // Simple nesting
        
        let user = new Query("user");
            user.find([{"profilePicture":["uri", "width", "height"]}])
        
        /* 
        user {
          profilePicture {
            uri,
            width,
            height
           }
         }
        */ 
        
        // Simple nesting with rename
        
        let user = new Query("user");
            user.find([{"image":{"profilePicture":["uri", "width", "height"]}}])
        
        /* 
        user {
          image : profilePicture {
            uri,
            width,
            height
           }
         }
        */ 

    Install

    npm i graphql-query-builder

    DownloadsWeekly Downloads

    865

    Version

    1.0.7

    License

    MIT

    Last publish

    Collaborators

    • codemeasandwich