1- import Q from './q ' ;
1+ import { SOQL } from 'salesforce-queries ' ;
22
3- function getFields ( info ) {
4- const fields : string [ ] = [ ] ;
5- info . fieldNodes . map ( fieldNode => {
3+ function getFields ( info : any ) {
4+ const fields : Set < string > = new Set ( [ ] ) ;
5+ info . fieldNodes . map ( ( fieldNode : any ) => {
66 if ( fieldNode . selectionSet ) {
7- fieldNode . selectionSet . selections . map ( value => {
8- if ( ! value . selectionSet ) fields . push ( value . name . value ) ;
7+ fieldNode . selectionSet . selections . map ( ( value : any ) => {
8+ if ( ! value . selectionSet ) fields . add ( value . name . value ) ;
99 } ) ;
1010 }
1111 } ) ;
12- return fields ;
12+ return [ ... fields ] ;
1313}
1414
15- function getWheres ( info ) : any [ ] {
15+ function getWheres ( info : any ) : any [ ] {
1616 const wheres : { field : string ; value : string ; operator : string } [ ] = [ ] ;
17- info . fieldNodes . map ( fieldNode => {
18- fieldNode . arguments . map ( val => {
17+ info . fieldNodes . map ( ( fieldNode : any ) => {
18+ fieldNode . arguments . map ( ( val : any ) => {
1919 const field = val . name . value ;
2020 const value = val . value . value ;
2121 if ( field !== 'limit' ) {
@@ -26,10 +26,10 @@ function getWheres(info): any[] {
2626 return wheres ;
2727}
2828
29- function getLimit ( info ) : number | void {
29+ function getLimit ( info : any ) : number | void {
3030 let limit ;
31- info . fieldNodes . map ( fieldNode => {
32- fieldNode . arguments . map ( value => {
31+ info . fieldNodes . map ( ( fieldNode : any ) => {
32+ fieldNode . arguments . map ( ( value : any ) => {
3333 if ( value . name . value === 'limit' ) {
3434 limit = value . value . value ;
3535 }
@@ -38,17 +38,21 @@ function getLimit(info): number | void {
3838 return limit ;
3939}
4040
41+ export interface Options {
42+ conn : any ;
43+ }
44+
4145class Salesforce {
4246 conn : any ;
4347
44- constructor ( props ) {
45- console . log ( 'CONSTRUCTOR' )
48+ constructor ( props : Options ) {
4649 this . conn = props . conn ;
4750 }
4851
49- public query = ( parent : { key : string } , info ) => {
50- console . log ( 'BEFORE' )
51- const queryBuilder = new Q ( info . returnType . ofType || info . returnType ) . select ( getFields ( info ) ) ;
52+ public query = ( parent : { [ key : string ] : string } , info : any ) => {
53+ const queryBuilder = new SOQL ( info . returnType . ofType || info . returnType ) . select (
54+ getFields ( info )
55+ ) ;
5256 const limit = getLimit ( info ) ;
5357
5458 if ( limit ) {
@@ -60,9 +64,8 @@ class Salesforce {
6064 wheres . map ( ( { field, operator, value } ) => queryBuilder . where ( field , operator , value ) ) ;
6165 Object . keys ( parent ) . map ( ( key : string ) => queryBuilder . where ( key , '=' , parent [ key ] ) ) ;
6266 const query = queryBuilder . build ( ) ;
63- console . log ( '\nExecuting' , query ) ;
6467 return this . conn . query ( query ) ;
6568 } ;
6669}
6770
68- export { Salesforce } ;
71+ export { Salesforce } ;
0 commit comments