@@ -275,7 +275,7 @@ class CoCreateLazyLoader {
275
275
276
276
const methodPath = method . split ( '.' )
277
277
278
- await processOperators ( data , '' , parameters ) ;
278
+ await this . processOperators ( data , '' , parameters ) ;
279
279
280
280
event = await executeMethod ( method , methodPath , instance , parameters )
281
281
}
@@ -290,7 +290,7 @@ class CoCreateLazyLoader {
290
290
291
291
let execute = webhook . events [ eventName ] ;
292
292
if ( execute ) {
293
- execute = await processOperators ( data , event , execute ) ;
293
+ execute = await this . processOperators ( data , event , execute ) ;
294
294
}
295
295
296
296
data . res . writeHead ( 200 , { 'Content-Type' : 'application/json' } ) ;
@@ -304,6 +304,67 @@ class CoCreateLazyLoader {
304
304
}
305
305
}
306
306
307
+ async processOperators ( data , event , execute , parent = null , parentKey = null ) {
308
+ if ( Array . isArray ( execute ) ) {
309
+ for ( let index = 0 ; index < execute . length ; index ++ ) {
310
+ execute [ index ] = await this . processOperators ( data , event , execute [ index ] , execute , index ) ;
311
+ }
312
+ } else if ( typeof execute === 'object' && execute !== null ) {
313
+ for ( let key of Object . keys ( execute ) ) {
314
+ if ( key . startsWith ( '$' ) ) {
315
+ const operatorResult = await this . processOperator ( data , event , key , execute [ key ] ) ;
316
+ if ( parent && operatorResult !== null && parentKey !== null ) {
317
+ parent [ parentKey ] = operatorResult ;
318
+ await this . processOperators ( data , event , parent [ parentKey ] , parent , parentKey ) ;
319
+ }
320
+ } else {
321
+ execute [ key ] = await this . processOperators ( data , event , execute [ key ] , execute , key ) ;
322
+ }
323
+ }
324
+ } else {
325
+ return await this . processOperator ( data , event , execute ) ;
326
+ }
327
+ return execute ;
328
+ }
329
+
330
+ async processOperator ( data , event , operator , context ) {
331
+ let result
332
+ if ( operator . startsWith ( '$data.' ) ) {
333
+ return getValueFromObject ( data , operator . substring ( 6 ) )
334
+ } else if ( operator . startsWith ( '$req' ) ) {
335
+ return getValueFromObject ( data , operator . substring ( 1 ) )
336
+ } else if ( operator . startsWith ( '$header' ) ) {
337
+ return getValueFromObject ( data . req , operator . substring ( 1 ) )
338
+ } else if ( operator . startsWith ( '$rawBody' ) ) {
339
+ return getValueFromObject ( data , operator . substring ( 1 ) )
340
+ } else if ( operator . startsWith ( '$crud' ) ) {
341
+ context = await this . processOperators ( data , event , context ) ;
342
+ result = await this . crud . send ( context )
343
+ if ( operator . startsWith ( '$crud.' ) )
344
+ result = getValueFromObject ( operator , operator . substring ( 6 ) )
345
+ return await this . processOperators ( data , event , result ) ;
346
+ } else if ( operator . startsWith ( '$socket' ) ) {
347
+ context = await this . processOperators ( data , event , context ) ;
348
+ result = await this . socket . send ( context )
349
+ if ( operator . startsWith ( '$socket.' ) )
350
+ result = getValueFromObject ( operator , operator . substring ( 6 ) )
351
+ return await this . processOperators ( data , event , result ) ;
352
+ } else if ( operator . startsWith ( '$api' ) ) {
353
+ context = await this . processOperators ( data , event , context ) ;
354
+ let name = context . method . split ( '.' ) [ 0 ]
355
+ result = this . executeScriptWithTimeout ( name , context )
356
+ if ( operator . startsWith ( '$api.' ) )
357
+ result = getValueFromObject ( event , operator . substring ( 5 ) )
358
+ return await this . processOperators ( data , event , result ) ;
359
+ } else if ( operator . startsWith ( '$event' ) ) {
360
+ if ( operator . startsWith ( '$event.' ) )
361
+ result = getValueFromObject ( event , operator . substring ( 7 ) )
362
+ return await this . processOperators ( data , event , result ) ;
363
+ }
364
+
365
+ return operator ;
366
+ }
367
+
307
368
async getApiKey ( data , name ) {
308
369
let organization = await this . crud . getOrganization ( data ) ;
309
370
if ( organization . error )
@@ -317,28 +378,6 @@ class CoCreateLazyLoader {
317
378
318
379
}
319
380
320
- async function processOperators ( data , event , execute , parent = null , parentKey = null ) {
321
- if ( Array . isArray ( execute ) ) {
322
- for ( let index = 0 ; index < execute . length ; index ++ ) {
323
- execute [ index ] = await processOperators ( data , event , execute [ index ] , execute , index ) ;
324
- }
325
- } else if ( typeof execute === 'object' && execute !== null ) {
326
- for ( let key of Object . keys ( execute ) ) {
327
- if ( key . startsWith ( '$' ) ) {
328
- const operatorResult = await processOperator ( data , event , key , execute [ key ] ) ;
329
- if ( parent && operatorResult !== null && parentKey !== null ) {
330
- parent [ parentKey ] = operatorResult ;
331
- await processOperators ( data , event , parent [ parentKey ] , parent , parentKey ) ;
332
- }
333
- } else {
334
- execute [ key ] = await processOperators ( data , event , execute [ key ] , execute , key ) ;
335
- }
336
- }
337
- } else {
338
- return await processOperator ( data , event , execute ) ;
339
- }
340
- return execute ;
341
- }
342
381
343
382
// async function processOperators(data, event, execute, parent = null, parentKey = null) {
344
383
// if (Array.isArray(execute)) {
@@ -369,36 +408,6 @@ async function processOperators(data, event, execute, parent = null, parentKey =
369
408
// }
370
409
// }
371
410
372
- async function processOperator ( data , event , operator , context ) {
373
- if ( operator . startsWith ( '$data.' ) ) {
374
- operator = getValueFromObject ( data , operator . substring ( 6 ) )
375
- } else if ( operator . startsWith ( '$req' ) ) {
376
- console . log ( operator . substring ( 1 ) )
377
- operator = getValueFromObject ( data , operator . substring ( 1 ) )
378
- } else if ( operator . startsWith ( '$header' ) ) {
379
- operator = getValueFromObject ( data . req , operator . substring ( 1 ) )
380
- } else if ( operator . startsWith ( '$rawBody' ) ) {
381
- operator = getValueFromObject ( data , operator . substring ( 1 ) )
382
- } else if ( operator . startsWith ( '$crud' ) ) {
383
- operator = await data . crud . send ( context )
384
- let name = operator . method . split ( '.' ) [ 0 ]
385
- operator = operator [ name ]
386
- } else if ( operator . startsWith ( '$socket' ) ) {
387
- operator = await data . socket . send ( context )
388
- let name = operator . method . split ( '.' ) [ 0 ]
389
- operator = operator [ name ]
390
- } else if ( operator . startsWith ( '$api' ) ) {
391
- let name = context . method . split ( '.' ) [ 0 ]
392
- operator = this . executeScriptWithTimeout ( name , context )
393
- } else if ( operator . startsWith ( '$webhook.' ) ) {
394
- operator = getValueFromObject ( webhook , operator . substring ( 9 ) )
395
- } else if ( operator . startsWith ( '$event.' ) ) {
396
- operator = getValueFromObject ( event , operator . substring ( 7 ) )
397
- }
398
-
399
- return operator ;
400
- }
401
-
402
411
async function executeMethod ( method , methodPath , instance , params ) {
403
412
try {
404
413
switch ( methodPath . length ) {
0 commit comments