function validateMetricsMetadataOrder()

in telemetry/validation/src/telemetryDefinitions.ts [119:143]


function validateMetricsMetadataOrder(definitions: TelemetryDefinitions): string[] {
    const validations = []

    for (const metric of definitions.metrics) {
        if (metric.metadata === undefined) {
            continue
        }

        const sortedNames = metric.metadata.map(t => t.type).sort(stringSort)

        for (let i = 0; i < metric.metadata.length; i++) {
            const inputMetadata = metric.metadata[i]
            const sortedName = sortedNames[i]

            if (inputMetadata.type != sortedName) {
                validations.push(
                    `Telemetry Metric ${metric.name} has unsorted metadata. Expected: ${sortedName}, Found: ${inputMetadata.type}`
                )
                break
            }
        }
    }

    return validations
}