UNPKG

974 Btext/coffeescriptView Raw
1reg = /\[.*?\]/g
2rules =
3 second : /s{1,2}/
4 minute : /m{1,2}/
5 hour : /(h{1,2}|a)/i
6 day : /d{1,4}/i
7 month : /M{1,4}/
8 year : /(YY|YYYY)/
9
10
11# get timeout ms
12module.exports = (pattern) ->
13 clean = pattern.replace reg, ''
14 for name, rule of rules
15 if rule.test clean
16 type = name
17 break
18 n = new Date
19 switch type
20 when 'second'
21 ms = new Date(n.getFullYear(), n.getMonth(), n.getDate(), n.getHours(), n.getMinutes(), n.getSeconds() + 1) - n
22 when 'minute'
23 ms = new Date(n.getFullYear(), n.getMonth(), n.getDate(), n.getHours(), n.getMinutes() + 1) - n
24 when 'hour'
25 ms = new Date(n.getFullYear(), n.getMonth(), n.getDate(), n.getHours() + 1) - n
26 when 'day'
27 ms = new Date(n.getFullYear(), n.getMonth(), n.getDate() + 1) - n
28 when 'month'
29 ms = new Date(n.getFullYear(), n.getMonth() + 1, 1) - n
30 when 'year'
31 ms = new Date(n.getFullYear() + 1, 0, 1) - n
32 else
33 ms = null
34 [ms, type]