UNPKG

546 BJavaScriptView Raw
1'use strict'
2
3function PatternSet (pattern, payload, isDeep) {
4 this.pattern = pattern
5 this.payload = payload || pattern
6 this.magic = 0
7
8 if (isDeep) {
9 this.magic = calcMagic(pattern)
10 }
11}
12
13function calcMagic (pattern) {
14 var keys = Object.keys(pattern)
15 var length = keys.length
16 var result = 0
17 var key
18
19 for (var i = 0; i < length; i++) {
20 key = keys[i]
21 if (typeof pattern[key] === 'object') {
22 result += calcMagic(pattern[key])
23 } else {
24 result++
25 }
26 }
27
28 return result
29}
30
31module.exports = PatternSet