Cómo ordenar una matriz de objetos en función de la longitud de una matriz anidada en javascript

Tengo una matriz de objetos en javascript, cada uno de los cuales tiene una matriz:

{
    category: [ 
        { name: "Cat1", elements : [ 
            { name: name, id: id } ] 
        },
        { name: "Cat2", elements : [ 
            { name: name, id: id },
            { name: name, id: id },
            { name: name, id: id } ] 
        }, 
        { name: "Cat3", elements : [ 
            { name: name, id: id },
            { name: name, id: id } ] 
        }
    ]
}

Me gustaría ordenar la "categoría" de la matriz según el número de objetos dentro de los "elementos" de la matriz anidada.

Por ejemplo, después de ordenar, el objeto anterior podría verse así (descendente):

{
    category: [ 
        { name: "Cat2", elements : [ 
            { name: name, id: id },
            { name: name, id: id },
            { name: name, id: id } ] 
        }, 
        { name: "Cat3", elements : [ 
            { name: name, id: id },
            { name: name, id: id } ] 
        },
        { name: "Cat1", elements : [ 
            { name: name, id: id } ] 
        }

    ]
}

Me pregunto si es posible lograr esto usando el método sort () de javascript. ¿Alguna sugerencia?

¡Gracias por adelantado!

Respuestas a la pregunta(2)

Su respuesta a la pregunta