all files / src/util/ objectHelpers.ts

100% Statements 11/11
50% Branches 1/2
100% Functions 3/3
100% Lines 10/10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39                                                         
/**
 * Created by gavorhes on 6/7/2016.
 */
 
import provide from './provide';
let nm = provide('util');
 
 
export interface keyVals {
    key: string;
    value: Object
}
 
 
 
 
/**
 * iterate over the key value pairs of an object
 * @example for (let x:KeyValuePair of keyValPairs(object)){..}
 * @param {object} obj - the input object
 * @returns {Array<keyVals>} - array of key value pairs
 */
export function keyValPairs(obj): Array<keyVals> {
    let outArray: Array<keyVals> = [];
    for (let key of Object.keys(obj)) {
        outArray.push({'key': key, 'value': obj[key]});
 
    }
    outArray.sort(function (a, b) {
        "use strict";
 
        return a > b ? 1 : -1;
    });
 
    return outArray;
}
 
nm.keyValPairs = keyValPairs;