You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

22 lines
510 B
JavaScript

'use strict';
module.exports = function(rules) {
let fields = rules.map((field, i) => {
if (field != null) {
return {
field: field,
value: Math.pow(2, i)
}
} else {
return null;
}
}).filter((item) => item != null);
return function parseBits(value) {
return fields.reduce((flags, item) => {
flags[item.field] = !!(value & item.value);
return flags;
}, {});
}
}