mirror of
https://github.com/pebble-dev/clay.git
synced 2026-08-30 22:06:45 -04:00
Send messageKeys down to appMessage in the new format
This commit is contained in:
@@ -126,3 +126,55 @@ module.exports.clay = function(config, customFn, options, destroyLocalStorage) {
|
||||
}
|
||||
return new Clay(config, customFn, options);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {Array} keys
|
||||
* @return {Object}
|
||||
*/
|
||||
module.exports.messageKeys = function(keys) {
|
||||
var counter = 10000;
|
||||
var result = {};
|
||||
|
||||
keys.forEach(function(key) {
|
||||
var matches = key.match(/(.+?)(?:\[(\d*)\])?$/);
|
||||
var parsedKey = matches[1];
|
||||
var length = parseInt(matches[2] || 1, 10);
|
||||
|
||||
result[parsedKey] = counter;
|
||||
|
||||
counter += length;
|
||||
});
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {Object} obj
|
||||
* @returns {Array}
|
||||
*/
|
||||
module.exports.messageKeysObjToArray = function(obj) {
|
||||
return Object.keys(obj).map(function(key) {
|
||||
return Array.isArray(obj[key]) ?
|
||||
key + '[' + obj[key].length + ']' :
|
||||
key;
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {Object} expected
|
||||
* @return {Object}
|
||||
*/
|
||||
module.exports.messageKeysExpected = function(expected) {
|
||||
var result = {};
|
||||
var messageKeys = module.exports.messageKeysObjToArray(expected);
|
||||
messageKeys = module.exports.messageKeys(messageKeys);
|
||||
|
||||
Object.keys(expected).forEach(function(key) {
|
||||
var expectedVal = Array.isArray(expected[key]) ? expected[key] : [expected[key]];
|
||||
expectedVal.forEach(function(val, index) {
|
||||
result[messageKeys[key] + index] = val;
|
||||
});
|
||||
});
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user