@@ -22,27 +22,46 @@ const schemaDataModel = JSON.parse(schemaDataModelJSON);
22
22
23
23
24
24
function resolveGraphDBQueryFromAppSyncEvent ( event ) {
25
-
26
25
const query = appSyncEventToGraphQLQuery ( event ) ;
27
-
28
- const graphQuery = resolveGraphDBQuery ( query ) ;
29
- return graphQuery ;
26
+ return resolveGraphDBQuery ( query ) ;
30
27
}
31
28
29
+ /**
30
+ * Converts an app sync event into a graphQL query.
31
+ *
32
+ * Example of an app sync event:
33
+ *
34
+ * {
35
+ * field: 'getNodeAirports',
36
+ * arguments: { filter: { country: 'US', runways: 7 }, options: { limit: 5 } },
37
+ * selectionSetGraphQL: '{\n code\n city\n}',
38
+ * source: null
39
+ * }
40
+ *
41
+ * Which will be converted into:
42
+ *
43
+ * {
44
+ * getNodeAirports(filter: {country: "US", runways: 7}, options: {limit: 5}) {
45
+ * code
46
+ * city
47
+ * }
48
+ * }
49
+ *
50
+ * @param event
51
+ * @returns {string }
52
+ */
32
53
function appSyncEventToGraphQLQuery ( event ) {
33
- let queryArgs = [ ] ;
34
- Object . keys ( event . arguments ) . forEach ( key => {
35
- const value = event . arguments [ key ] ;
54
+ const queryArgs = Object . entries ( event . arguments ) . map ( ( [ key , value ] ) => {
36
55
if ( typeof value === 'object' ) {
37
56
let nestedArgs = Object . entries ( value )
38
57
. map ( ( [ nestedKey , nestedValue ] ) => `${ nestedKey } : ${ addQuotesIfString ( nestedValue ) } ` )
39
58
. join ( ', ' ) ;
40
59
41
- queryArgs . push ( `${ key } : {${ nestedArgs } }` ) ;
60
+ return `${ key } : {${ nestedArgs } }` ;
42
61
} else {
43
- queryArgs . push ( `${ key } : ${ addQuotesIfString ( value ) } ` ) ;
62
+ return `${ key } : ${ addQuotesIfString ( value ) } ` ;
44
63
}
45
- } ) ;
64
+ } )
46
65
47
66
let argsStr = '' ;
48
67
if ( queryArgs . length > 0 ) {
0 commit comments