New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

sk-query-builder

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sk-query-builder

An even simpler es5 friendly GraphQL query builder

  • 1.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
4
decreased by-50%
Maintainers
1
Weekly downloads
 
Created
Source

SK GraphQL Query Builder

An even simpler Javascript, ES5 friendly, GraphQL query builder

No need for multiple functions, commands, or es5 compatible compiling. Just create a single Query with an options object and get a GraphQL ready query string in return.

Forked from https://github.com/codemeasandwich/graphql-query-builder - a simple ES6 graphql query builder

info:

npm version License pull requests welcome GitHub stars

If this was helpful, ★ it on github

Install

npm install sk-query-builder

Query function:

Query is available out of the box on the Window object, but can also be required to prevent namespace interference.

var Query = require('sk-query-builder');

Use:

Query can be called with a single arguement of either a single query object or an array of query objects and will return a GraphQL formatted string to be attached to query.

var query = Query( query_obj[, options ] );

Query Constructor:

Single query object or an array of multiple queries to turn into a GQL query string.

Key ValueArgumentDescription
func:Stringthe name of the query function
alias:Stringalias value that result will be returned under
filters:ObjectAn object mapping attribute to values
value:String or ObjectAttribute name or nested query you want returned.
Can be an array of multiple values with the values: key
values:ArrayAn Array of value items ( String or Obj ) to return multiple values
Example: ( get the sum of users in given timeframe )
var sumQuery = Query({
  func: "sum",
  alias: "total_sum",
  filters: { from: 0, to: 1501234567890 },
  value: "count"
});
Output: ( returns formatted string )
"{total_sum: sum(from: 0,to: 1501234567890){count}}"

Additional Options:

Key ValueArgumentDescription
prefixStringprefix string before query obj ( i.e. "mutation" )
Example:
var prefixQuery = Query({
  func: 'update',
  filters: { id: 1, value: 3 },
  value: [ "id", "value" ]
}, { prefix: 'mutation' );

console.log( prefixQuery );
// "mutation{update(id:1,value:3){id,value}}"

## Enum Values: This library also creates an Enum function on the Window object that can be used to create enumeration values in the query string.

Use:

Add Enum values inside query objects buy either the Enum() function with a string to represent the final value or by simply using any string starting with "e$"

Enum( 'VALUE' ) == 'e$VALUE'

Argument (one)Description
Stringthe name of the query function
Example: ( get the sum of users in given timeframe )
var eventQuery = Query({
  alias: 'event_123',
  func: 'event',
  filters: {
    frequency: Enum( 'DAILY' ), // can also be "e$DAILY"
    value: Enum( 'CLICKS' )
  },
  values: [ 'timestamp', 'value' ]
});

console.log( eventQuery );
// "{event_123:event(frequency:DAILY,value:CLICKS){timestamp,value}}"

Examples:

Nested query values
var FetchLeeAndSam = Query({
  alias: 'FetchLeeAndSam',
  func: 'users',
  values: [
    {
      alias: 'lee',
      func: 'user',
      filters: { id: '1' },
      values: ['name', 'id' ]
    },
    {
      alias: 'sam',
      func: 'user',
      filters: { id: '2' },
      values: ['name', 'id' ]
    }
  ]
});

console.log( FetchLeeAndSam );
//"{FetchLeeAndSam:users{lee:user(id:"1"){name,id},sam:user(id:"2"){name,id}}}"
Multiple query array with reusable values
var reusable = function( model, year ) {
  return {
    alias: model,
    func: 'vehicle',
    filters: { year: year },
    values: [
      "num_produced",
      "horsepower"
    ]
  };
};

var CarCatalog = Query([
  reusable( 'Mustang', '1964' ),
  reusable( 'Camero', '1988' )
]);

console.log( CarCatalog );
//"{Mustang:vehicle(year:"1964"){num_produced,horsepower} Camero:vehicle(year:"1988"){num_produced,horsepower}}"

run Examples

node example/simple.js

Keywords

FAQs

Package last updated on 25 Oct 2017

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc