Source: apc-static/task/worker/_ensure_theme_data_guide_index.js

/**
 * Set guide index to theme data unless already exists.
 * @param {object[]} data - Theme data.
 * @returns {object[]} - Theme data with guide index.
 */
module.exports = function (data) {
    var keys = Object.keys(data),
        guideIndices = keys.map(function (key) {
            return data[key].guideIndex;
        }).filter(function (guideIndex) {
                return !!guideIndex;
            });

    function nextGuideIndex() {
        var index = 4;
        while (~guideIndices.indexOf(index)) {
            index++;
        }
        guideIndices.push(index);
        return index;
    }

    keys.forEach(function (key) {
        data[key].guideIndex = data[key].guideIndex || nextGuideIndex();
    });

    return data;
};