mergeResults_closedlists = function (blob, finalCollection, type) {
    if (blob[type] === undefined || blob[type].length === 0) {
        return
    }

    blob[type].forEach(function (blobItem) {
        let listInFinal = helpers.filterMatch(finalCollection[type], 'name', blobItem.name);
        if (listInFinal.length === 0) {
            finalCollection[type].push(blobItem);
        } else {
            blobItem.subLists.forEach(function (blobSLItem) {
                // see if there is a sublist match in listInFinal
                let slInFinal = helpers.filterMatch(listInFinal[0].subLists, 'canonicalForm', blobSLItem.canonicalForm);
                if (slInFinal.length === 0) {
                    listInFinal[0].subLists.push(blobSLItem);
                } else {
                    // there is a canonical form match. See if the values all exist
                    blobSLItem.list.forEach(function (listItem) {
                        if (!slInFinal[0].list.includes(listItem)) slInFinal[0].list.push(listItem);
                    })
                }
            });

            // merge roles if they are different
            (blobItem.roles || []).forEach(blobRole => {
                if (!listInFinal[0].roles.includes(blobRole)) {
                    listInFinal[0].roles.push(blobRole);
                }
            })
        }
    });
}
Helper function to merge closed list item if it does not already exist

@param {object} blob Contents of all parsed file blobs
@param {object} finalCollection Reference to the final collection of items
@param {LUISObjNameEnum} type Enum type of possible LUIS object types
@returns {void} nothing