code: function Query(_fnNameS, _aliasS_OR_Filter){
      
      this.fnNameS = _fnNameS;
      this.headA = [];
      
      this.filter = (filtersO) => {
   
          for(let propS in filtersO){
              if ("function" === typeof filtersO[propS]) {
                continue;
              }
              let val = getGraphQLValue(filtersO[propS]);
              if ("{}" === val) {
                continue;
              }
              this.headA.push( `${propS}:${val}` );
           } 
          return this;
      };
      
      if ("string" === typeof _aliasS_OR_Filter) {
        this.aliasS = _aliasS_OR_Filter;
      } else if ("object" === typeof _aliasS_OR_Filter) {
          this.filter(_aliasS_OR_Filter);
      } else if (undefined === _aliasS_OR_Filter && 2 === arguments.length){
          throw new TypeError("You have passed undefined as Second argument to 'Query'");
      } else if (undefined !== _aliasS_OR_Filter){
          throw new TypeError("Second argument to 'Query' should be an alias name(String) or filter arguments(Object). was passed "+_aliasS_OR_Filter);
      }
  
      this.setAlias = (_aliasS) =>{
         this.aliasS = _aliasS;
          return this;
      };
      
      this.find = function(findA) { // THIS NEED TO BE A "FUNCTION" to scope 'arguments'
          if( ! findA){
              throw new TypeError("find value can not be >>falsy<<");
          }
          // if its a string.. it may have other values
          // else it sould be an Object or Array of maped values
          this.bodyS = parceFind((Array.isArray(findA)) ? findA : Array.from(arguments));
          return this;
      };
  }
docs: ===================================================== ========================================= Query Class =====================================================