sk-query-builder
Advanced tools
Comparing version 1.0.1 to 1.0.2
(function (root, factory) { | ||
if (typeof define === 'function' && define.amd) { | ||
// AMD. Register as an anonymous module. | ||
define(['exports'], factory); | ||
} else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { | ||
// CommonJS | ||
factory(exports); | ||
} else { | ||
// Browser globals | ||
factory((root.commonJsStrict = {})); | ||
} | ||
if (typeof define === 'function' && define.amd) { | ||
// AMD. Register as an anonymous module. | ||
define(['exports'], factory); | ||
} else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { | ||
// CommonJS | ||
factory(exports); | ||
} else { | ||
// Browser globals | ||
factory((root.commonJsStrict = {})); | ||
} | ||
}(this, function (exports) { | ||
@@ -20,3 +20,3 @@ 'use strict'; | ||
function parseValues( valuesA ) { | ||
function parseValues( valuesA, is_mutationB ) { | ||
@@ -33,3 +33,3 @@ //+++++++++++++++++++++++++++ work over "Values" Array | ||
if ( itemX.func ) { | ||
var itemO = queryFunction( itemX ); | ||
var itemO = queryFunction( itemX, is_mutationB ); | ||
return queryToString( itemO ); | ||
@@ -75,3 +75,3 @@ } else { | ||
return propsA.join(','); | ||
}; | ||
} | ||
@@ -82,3 +82,3 @@ function checkForInt( string ) { | ||
return false; | ||
}; | ||
} | ||
@@ -103,3 +103,3 @@ //===================================================== | ||
return value; | ||
}; | ||
} | ||
@@ -122,3 +122,3 @@ function functionFilters( filtersO ) { | ||
return filtersA; | ||
}; | ||
} | ||
@@ -142,12 +142,10 @@ //===================================================== | ||
return '{' + sourceA.join() + '}'; | ||
}; | ||
} | ||
function queryToString ( queryO ) { | ||
if ( undefined === queryO.bodyS ) { | ||
throw new ReferenceError( 'return properties are not defined. use the "values" object to defined them' ); | ||
} | ||
queryO.bodyS = queryO.bodyS ? '{' + queryO.bodyS + '}' : ''; | ||
return ( queryO.aliasS ? queryO.aliasS + ':' : '' ) + queryO.fnNameS + ( queryO.filtersA && queryO.filtersA.length > 0 ? '(' + queryO.filtersA.join(',') + ')' : '' ) + '{' + queryO.bodyS + '}'; | ||
}; | ||
return ( queryO.aliasS ? queryO.aliasS + ':' : '' ) + queryO.fnNameS + ( queryO.filtersA && queryO.filtersA.length > 0 ? '(' + queryO.filtersA.join(',') + ')' : '' ) + queryO.bodyS; | ||
} | ||
@@ -158,3 +156,3 @@ //===================================================== | ||
function queryFunction( queryO ) { | ||
function queryFunction( queryO, is_mutationB ) { | ||
@@ -167,3 +165,3 @@ //+++++++++++++++++++ work over Query object and return GQL structure | ||
queryFuncO.fnNameS = queryO.func; | ||
// CREATE ALIAS FOR FUNCTION | ||
if ( queryO.alias ) { | ||
@@ -177,2 +175,3 @@ if ( 'string' !== typeof queryO.alias ) | ||
} | ||
// ADD VARIABLES FOR FUNCTION | ||
if ( queryO.filters ) { | ||
@@ -183,8 +182,11 @@ if ( 'object' !== typeof queryO.filters || Array.isArray( queryO.filters ) ) | ||
} | ||
if ( !queryO.values || !queryO.values.length ) | ||
throw new TypeError( '"values" can not be >>falsy<< value' ); | ||
else if ( !Array.isArray( queryO.values ) && 'string' !== queryO.values ) | ||
throw new TypeError( '"values" must be an Array of values or single String value' ); | ||
// SET RETURN VALUES FOR QUERY ( IF MUTATION NOT REQUIRED ) | ||
if ( !is_mutationB || queryO.values ) { | ||
if ( !queryO.values || !queryO.values.length ) | ||
throw new TypeError( '"values" can not be >>falsy<< value' ); | ||
else if ( !Array.isArray( queryO.values ) && 'string' !== typeof queryO.values ) | ||
throw new TypeError( '"values" must be an Array of values or single String value' ); | ||
} | ||
// IF ARRAY WORK OVER AND PARSE NESTED VALUES > OTHERWISE JUST RETURN STRING | ||
queryFuncO.bodyS = Array.isArray( queryO.values ) ? parseValues( queryO.values ) : queryO.values; | ||
queryFuncO.bodyS = Array.isArray( queryO.values ) ? parseValues( queryO.values, is_mutationB ) : queryO.values; | ||
@@ -232,3 +234,4 @@ return queryFuncO; | ||
// START QUERY STRING CREATION OF EACH TOP LEVEL OBJECT | ||
var query_stringO = queryFunction( query ); | ||
var is_mutationB = global_options.prefix && global_options.prefix == 'mutation' ? true : false; | ||
var query_stringO = queryFunction( query, is_mutationB ); | ||
query_stringsA.push( queryToString( query_stringO ) ); | ||
@@ -238,7 +241,7 @@ }); | ||
}; | ||
} | ||
exports.Query = window.Query = Query; | ||
if (typeof module === 'object' && !!module.exports) { | ||
if ( typeof module === 'object' && !!module.exports ) { | ||
module.exports = Query; | ||
@@ -253,3 +256,3 @@ } | ||
return 'e$' + key; | ||
}; | ||
} | ||
@@ -256,0 +259,0 @@ exports.Enum = window.Enum = Enum; |
@@ -1,1 +0,1 @@ | ||
!function(r,e){"function"==typeof define&&define.amd?define(["exports"],e):e("object"==typeof exports&&"string"!=typeof exports.nodeName?exports:r.commonJsStrict={})}(this,function(r){"use strict";function e(r){var e=r.map(function(e,n){var a=r[n];if(Array.isArray(a)||"object"!=typeof a){if("string"==typeof a)return a;throw new RangeError("cannot handle value type of "+a)}var i;if(a.func){var i=s(a);return o(i)}if(a.alias){if(!a.value&&!a.values)throw new RangeError('Alias objects must have "value" String or "values" Array. was passed: '+JSON.stringify(a));if(a.value&&"string"!=typeof a.value)throw new RangeError('Alias objects should only have one String for "value". was passed: '+JSON.stringify(a));if(t(a.alias))throw new RangeError("Alias cannot be a stringified Integer: "+JSON.stringify(a));if(a.values){if(!Array.isArray(a.values)&&"string"!=typeof a.values)throw new TypeError('"values" must be an Array with single value or single String value');if(Array.isArray(a.values)&&a.values.length>1)throw new RangeError('"values" Array should only have one value. was passed: '+JSON.stringify(a))}var f=a.alias,u=a.value?a.value:Array.isArray(a.values)?a.values[0]:a.values}else{var l=Object.keys(a);if(1!==l.length)throw new RangeError("Alias objects should only have one value. was passed: "+JSON.stringify(a));var f=l[0],u=a[f]}return f+":"+u});return e.join(",")}function t(r){return!!/^(\-|\+)?([0-9]+|Infinity)$/.test(r)}function n(r){return"string"==typeof r?r=0===r.indexOf("e$")?r.substring(2):JSON.stringify(r):Array.isArray(r)?(r=r.map(function(r){return n(r)}).join(),r="["+r+"]"):"object"==typeof r&&(r=i(r)),r}function a(r){var e=[];for(var t in r)if("function"!=typeof r[t]){var a=n(r[t]);"{}"!==a&&e.push(t+":"+a)}return e}function i(r){var e=[];for(var t in r)"function"!=typeof r[t]&&e.push(t+":"+n(r[t]));return"{"+e.join()+"}"}function o(r){if(void 0===r.bodyS)throw new ReferenceError('return properties are not defined. use the "values" object to defined them');return(r.aliasS?r.aliasS+":":"")+r.fnNameS+(r.filtersA&&r.filtersA.length>0?"("+r.filtersA.join(",")+")":"")+"{"+r.bodyS+"}"}function s(r){var n={};if(!r.func||"string"!=typeof r.func)throw new TypeError('"name" has been sent as a non-string value');if(n.fnNameS=r.func,r.alias){if("string"!=typeof r.alias)throw new TypeError("Alias must be a String value");if(t(r.alias))throw new TypeError("Alias cannot be a stringified Integer");n.aliasS=r.alias}if(r.filters){if("object"!=typeof r.filters||Array.isArray(r.filters))throw new TypeError("Function filters must be passed as object with key values");n.filtersA=a(r.filters)}if(!r.values||!r.values.length)throw new TypeError('"values" can not be >>falsy<< value');if(!Array.isArray(r.values)&&"string"!==r.values)throw new TypeError('"values" must be an Array of values or single String value');return n.bodyS=Array.isArray(r.values)?e(r.values):r.values,n}function f(r){var e={prefix:""};if(r&&!Array.isArray(r)&&"object"==typeof r&&r.prefix){if("string"!=typeof r.prefix)throw new TypeError('"prefix" option must be a String value');e.prefix=r.prefix}return e}function u(r,e){if(void 0===r||"object"!=typeof r)throw new TypeError("Query data must be an object or array of query objects");var t=f(e);Array.isArray(r)||(r=[r]);var n=r,a=[];return n.forEach(function(r){var e=s(r);a.push(o(e))}),t.prefix+"{"+a.join(" ")+"}"}function l(r){return"e$"+r}r.Query=window.Query=u,"object"==typeof module&&module.exports&&(module.exports=u),r.Enum=window.Enum=l,"object"==typeof module&&module.exports&&(module.exports=l)}); | ||
!function(r,e){"function"==typeof define&&define.amd?define(["exports"],e):e("object"==typeof exports&&"string"!=typeof exports.nodeName?exports:r.commonJsStrict={})}(this,function(r){"use strict";function e(r,e){var a=r.map(function(a,n){var i=r[n];if(Array.isArray(i)||"object"!=typeof i){if("string"==typeof i)return i;throw new RangeError("cannot handle value type of "+i)}var f;if(i.func){var f=s(i,e);return o(f)}if(i.alias){if(!i.value&&!i.values)throw new RangeError('Alias objects must have "value" String or "values" Array. was passed: '+JSON.stringify(i));if(i.value&&"string"!=typeof i.value)throw new RangeError('Alias objects should only have one String for "value". was passed: '+JSON.stringify(i));if(t(i.alias))throw new RangeError("Alias cannot be a stringified Integer: "+JSON.stringify(i));if(i.values){if(!Array.isArray(i.values)&&"string"!=typeof i.values)throw new TypeError('"values" must be an Array with single value or single String value');if(Array.isArray(i.values)&&i.values.length>1)throw new RangeError('"values" Array should only have one value. was passed: '+JSON.stringify(i))}var u=i.alias,l=i.value?i.value:Array.isArray(i.values)?i.values[0]:i.values}else{var y=Object.keys(i);if(1!==y.length)throw new RangeError("Alias objects should only have one value. was passed: "+JSON.stringify(i));var u=y[0],l=i[u]}return u+":"+l});return a.join(",")}function t(r){return!!/^(\-|\+)?([0-9]+|Infinity)$/.test(r)}function a(r){return"string"==typeof r?r=0===r.indexOf("e$")?r.substring(2):JSON.stringify(r):Array.isArray(r)?(r=r.map(function(r){return a(r)}).join(),r="["+r+"]"):"object"==typeof r&&(r=i(r)),r}function n(r){var e=[];for(var t in r)if("function"!=typeof r[t]){var n=a(r[t]);"{}"!==n&&e.push(t+":"+n)}return e}function i(r){var e=[];for(var t in r)"function"!=typeof r[t]&&e.push(t+":"+a(r[t]));return"{"+e.join()+"}"}function o(r){return r.bodyS=r.bodyS?"{"+r.bodyS+"}":"",(r.aliasS?r.aliasS+":":"")+r.fnNameS+(r.filtersA&&r.filtersA.length>0?"("+r.filtersA.join(",")+")":"")+r.bodyS}function s(r,a){var i={};if(!r.func||"string"!=typeof r.func)throw new TypeError('"name" has been sent as a non-string value');if(i.fnNameS=r.func,r.alias){if("string"!=typeof r.alias)throw new TypeError("Alias must be a String value");if(t(r.alias))throw new TypeError("Alias cannot be a stringified Integer");i.aliasS=r.alias}if(r.filters){if("object"!=typeof r.filters||Array.isArray(r.filters))throw new TypeError("Function filters must be passed as object with key values");i.filtersA=n(r.filters)}if(!a||r.values){if(!r.values||!r.values.length)throw new TypeError('"values" can not be >>falsy<< value');if(!Array.isArray(r.values)&&"string"!=typeof r.values)throw new TypeError('"values" must be an Array of values or single String value')}return i.bodyS=Array.isArray(r.values)?e(r.values,a):r.values,i}function f(r){var e={prefix:""};if(r&&!Array.isArray(r)&&"object"==typeof r&&r.prefix){if("string"!=typeof r.prefix)throw new TypeError('"prefix" option must be a String value');e.prefix=r.prefix}return e}function u(r,e){if(void 0===r||"object"!=typeof r)throw new TypeError("Query data must be an object or array of query objects");var t=f(e);Array.isArray(r)||(r=[r]);var a=r,n=[];return a.forEach(function(r){var e=!(!t.prefix||"mutation"!=t.prefix),a=s(r,e);n.push(o(a))}),t.prefix+"{"+n.join(" ")+"}"}function l(r){return"e$"+r}r.Query=window.Query=u,"object"==typeof module&&module.exports&&(module.exports=u),r.Enum=window.Enum=l,"object"==typeof module&&module.exports&&(module.exports=l)}); |
{ | ||
"name": "sk-query-builder", | ||
"version": "1.0.1", | ||
"version": "1.0.2", | ||
"description": "An even simpler es5 friendly GraphQL query builder", | ||
@@ -5,0 +5,0 @@ "main": "dist/sk-query.min.js", |
# SK GraphQL Query Builder | ||
### An even simpler, ES5 friendly, 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.** | ||
@@ -47,6 +47,6 @@ | ||
``` js | ||
var query = Query( [ queryOptions ] ); | ||
var query = Query( query_obj[, options ] ); | ||
``` | ||
### Constructor / Options: | ||
### Query Constructor: | ||
Single query object or an array of multiple queries to turn into a GQL query string. | ||
@@ -75,3 +75,20 @@ | ||
``` | ||
### Additional Options: | ||
| Key Value | Argument | Description | | ||
|--- |--- |--- | | ||
| prefix | String | prefix string before query obj ( i.e. "mutation" ) | | ||
##### Example: | ||
``` js | ||
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}}" | ||
``` | ||
<br> | ||
@@ -78,0 +95,0 @@ ## Enum Values: |
(function (root, factory) { | ||
if (typeof define === 'function' && define.amd) { | ||
// AMD. Register as an anonymous module. | ||
define(['exports'], factory); | ||
} else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { | ||
// CommonJS | ||
factory(exports); | ||
} else { | ||
// Browser globals | ||
factory((root.commonJsStrict = {})); | ||
} | ||
if (typeof define === 'function' && define.amd) { | ||
// AMD. Register as an anonymous module. | ||
define(['exports'], factory); | ||
} else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { | ||
// CommonJS | ||
factory(exports); | ||
} else { | ||
// Browser globals | ||
factory((root.commonJsStrict = {})); | ||
} | ||
}(this, function (exports) { | ||
@@ -20,3 +20,3 @@ 'use strict'; | ||
function parseValues( valuesA ) { | ||
function parseValues( valuesA, is_mutationB ) { | ||
@@ -33,3 +33,3 @@ //+++++++++++++++++++++++++++ work over "Values" Array | ||
if ( itemX.func ) { | ||
var itemO = queryFunction( itemX ); | ||
var itemO = queryFunction( itemX, is_mutationB ); | ||
return queryToString( itemO ); | ||
@@ -75,3 +75,3 @@ } else { | ||
return propsA.join(','); | ||
}; | ||
} | ||
@@ -82,3 +82,3 @@ function checkForInt( string ) { | ||
return false; | ||
}; | ||
} | ||
@@ -103,3 +103,3 @@ //===================================================== | ||
return value; | ||
}; | ||
} | ||
@@ -122,3 +122,3 @@ function functionFilters( filtersO ) { | ||
return filtersA; | ||
}; | ||
} | ||
@@ -142,12 +142,10 @@ //===================================================== | ||
return '{' + sourceA.join() + '}'; | ||
}; | ||
} | ||
function queryToString ( queryO ) { | ||
if ( undefined === queryO.bodyS ) { | ||
throw new ReferenceError( 'return properties are not defined. use the "values" object to defined them' ); | ||
} | ||
queryO.bodyS = queryO.bodyS ? '{' + queryO.bodyS + '}' : ''; | ||
return ( queryO.aliasS ? queryO.aliasS + ':' : '' ) + queryO.fnNameS + ( queryO.filtersA && queryO.filtersA.length > 0 ? '(' + queryO.filtersA.join(',') + ')' : '' ) + '{' + queryO.bodyS + '}'; | ||
}; | ||
return ( queryO.aliasS ? queryO.aliasS + ':' : '' ) + queryO.fnNameS + ( queryO.filtersA && queryO.filtersA.length > 0 ? '(' + queryO.filtersA.join(',') + ')' : '' ) + queryO.bodyS; | ||
} | ||
@@ -158,3 +156,3 @@ //===================================================== | ||
function queryFunction( queryO ) { | ||
function queryFunction( queryO, is_mutationB ) { | ||
@@ -167,3 +165,3 @@ //+++++++++++++++++++ work over Query object and return GQL structure | ||
queryFuncO.fnNameS = queryO.func; | ||
// CREATE ALIAS FOR FUNCTION | ||
if ( queryO.alias ) { | ||
@@ -177,2 +175,3 @@ if ( 'string' !== typeof queryO.alias ) | ||
} | ||
// ADD VARIABLES FOR FUNCTION | ||
if ( queryO.filters ) { | ||
@@ -183,8 +182,11 @@ if ( 'object' !== typeof queryO.filters || Array.isArray( queryO.filters ) ) | ||
} | ||
if ( !queryO.values || !queryO.values.length ) | ||
throw new TypeError( '"values" can not be >>falsy<< value' ); | ||
else if ( !Array.isArray( queryO.values ) && 'string' !== queryO.values ) | ||
throw new TypeError( '"values" must be an Array of values or single String value' ); | ||
// SET RETURN VALUES FOR QUERY ( IF MUTATION NOT REQUIRED ) | ||
if ( !is_mutationB || queryO.values ) { | ||
if ( !queryO.values || !queryO.values.length ) | ||
throw new TypeError( '"values" can not be >>falsy<< value' ); | ||
else if ( !Array.isArray( queryO.values ) && 'string' !== typeof queryO.values ) | ||
throw new TypeError( '"values" must be an Array of values or single String value' ); | ||
} | ||
// IF ARRAY WORK OVER AND PARSE NESTED VALUES > OTHERWISE JUST RETURN STRING | ||
queryFuncO.bodyS = Array.isArray( queryO.values ) ? parseValues( queryO.values ) : queryO.values; | ||
queryFuncO.bodyS = Array.isArray( queryO.values ) ? parseValues( queryO.values, is_mutationB ) : queryO.values; | ||
@@ -232,3 +234,4 @@ return queryFuncO; | ||
// START QUERY STRING CREATION OF EACH TOP LEVEL OBJECT | ||
var query_stringO = queryFunction( query ); | ||
var is_mutationB = global_options.prefix && global_options.prefix == 'mutation' ? true : false; | ||
var query_stringO = queryFunction( query, is_mutationB ); | ||
query_stringsA.push( queryToString( query_stringO ) ); | ||
@@ -238,7 +241,7 @@ }); | ||
}; | ||
} | ||
exports.Query = window.Query = Query; | ||
if (typeof module === 'object' && !!module.exports) { | ||
if ( typeof module === 'object' && !!module.exports ) { | ||
module.exports = Query; | ||
@@ -253,3 +256,3 @@ } | ||
return 'e$' + key; | ||
}; | ||
} | ||
@@ -256,0 +259,0 @@ exports.Enum = window.Enum = Enum; |
38158
687
179