@@ -23,6 +23,7 @@ module.exports = function(logger, newTrigger) {
23
23
24
24
var maxTriggers = newTrigger . maxTriggers || constants . DEFAULT_MAX_TRIGGERS ;
25
25
var delayLimit = validateLimit ( parseInt ( process . env . ALARM_DELAY_LIMIT ) ) || 0 ;
26
+ var delayDefaultStrict = process . env . ALARM_DELAY_DEFAULT_STRICT || false ;
26
27
27
28
var cachedTrigger = {
28
29
apikey : newTrigger . apikey ,
@@ -104,7 +105,7 @@ module.exports = function(logger, newTrigger) {
104
105
var method = "distributeCronAlarm" ;
105
106
106
107
var cronFields = ( trigger . cron + '' ) . trim ( ) . split ( / \s + / ) ;
107
- if ( trigger . strict !== 'true' && cronFields . length === 5 && delayLimit !== 0 ) {
108
+ if ( ! isStrict ( trigger . strict ) && cronFields . length === 5 && delayLimit !== 0 ) {
108
109
var newCron = [ hashName ( trigger . name ) , ...cronFields ] . join ( ' ' ) ;
109
110
logger . info ( method , trigger . triggerID , 'is converted to' , '"' + newCron + '"' ) ;
110
111
return newCron ;
@@ -123,4 +124,24 @@ module.exports = function(logger, newTrigger) {
123
124
return limit ;
124
125
}
125
126
127
+ function isStrict ( strict ) {
128
+ /**
129
+ * If the strict variable is not passed from alarmWebAction(User doesn't define strict value),
130
+ * then the ALARM_DELAY_DEFAULT_STRICT environment variable value is used.
131
+ */
132
+ if ( strict === undefined || strict === null ) {
133
+ return delayDefaultStrict ;
134
+ }
135
+
136
+ /**
137
+ * "true"(string) -> true
138
+ * "false"(string) -> false
139
+ * "True"(string) -> true
140
+ * "False"(string) -> false
141
+ * true(boolean) -> true
142
+ * false(boolean) -> false
143
+ */
144
+ return String ( strict ) . toLowerCase ( ) === "true" ;
145
+ }
146
+
126
147
} ;
0 commit comments