@@ -512,7 +512,8 @@ exports = module.exports = durableEngine = function () {
512
512
} ) ;
513
513
} else if ( ( statement . label . name === 'pri' ) ||
514
514
( statement . label . name === 'count' ) ||
515
- ( statement . label . name === 'cap' ) ) {
515
+ ( statement . label . name === 'cap' ) ||
516
+ ( statement . label . name === 'distinct' ) ) {
516
517
currentRule . properties . push ( {
517
518
type : 'Property' ,
518
519
key : { type : 'Identifier' , name : statement . label . name } ,
@@ -601,7 +602,8 @@ exports = module.exports = durableEngine = function () {
601
602
} ) ;
602
603
} else if ( ( statement . label . name === 'pri' ) ||
603
604
( statement . label . name === 'count' ) ||
604
- ( statement . label . name === 'cap' ) ) {
605
+ ( statement . label . name === 'cap' ) ||
606
+ ( statement . label . name === 'distinct' ) ) {
605
607
currentTrigger . properties . push ( {
606
608
type : 'Property' ,
607
609
key : { type : 'Identifier' , name : statement . label . name } ,
@@ -717,14 +719,15 @@ exports = module.exports = durableEngine = function () {
717
719
} ) ;
718
720
} else if ( ( statement . label . name === 'pri' ) ||
719
721
( statement . label . name === 'count' ) ||
720
- ( statement . label . name === 'cap' ) ) {
722
+ ( statement . label . name === 'cap' ) ||
723
+ ( statement . label . name === 'distinct' ) ) {
721
724
currentCondition . properties . push ( {
722
725
type : 'Property' ,
723
726
key : { type : 'Identifier' , name : statement . label . name } ,
724
727
value : statement . body . expression
725
728
} ) ;
726
729
} else {
727
- throw 'syntax error: whenAll, pri, count or cap labels expected' ;
730
+ throw 'syntax error: whenAll, pri, count, distinct, or cap labels expected' ;
728
731
}
729
732
}
730
733
} ) ;
@@ -1240,6 +1243,12 @@ exports = module.exports = durableEngine = function () {
1240
1243
if ( argRule . run ) {
1241
1244
newDefinition [ 'run' ] = argRule . run ;
1242
1245
}
1246
+ if ( argRule . distinct === true ) {
1247
+ newDefinition [ 'dist' ] = 1 ;
1248
+ }
1249
+ if ( argRule . distinct === false ) {
1250
+ newDefinition [ 'dist' ] = 0 ;
1251
+ }
1243
1252
}
1244
1253
var expDefinition ;
1245
1254
var func ;
@@ -1267,6 +1276,10 @@ exports = module.exports = durableEngine = function () {
1267
1276
newDefinition [ 'pri' ] = expDefinition [ 'pri' ] ;
1268
1277
} else if ( expDefinition [ 'cap' ] ) {
1269
1278
newDefinition [ 'cap' ] = expDefinition [ 'cap' ] ;
1279
+ } else if ( expDefinition [ 'dist' ] === true ) {
1280
+ newDefinition [ 'dist' ] = 1 ;
1281
+ } else if ( expDefinition [ 'dist' ] === false ) {
1282
+ newDefinition [ 'dist' ] = 0 ;
1270
1283
} else {
1271
1284
newArray . push ( lexp [ i ] ) ;
1272
1285
}
@@ -1456,6 +1469,14 @@ exports = module.exports = durableEngine = function () {
1456
1469
}
1457
1470
return that ;
1458
1471
} ;
1472
+
1473
+ obj . distinct = function ( dist ) {
1474
+ var that = { } ;
1475
+ that . define = function ( ) {
1476
+ return { dist : dist } ;
1477
+ }
1478
+ return that ;
1479
+ } ;
1459
1480
} ;
1460
1481
1461
1482
var ruleset = function ( ) {
0 commit comments