function generateDefinitions()

in telemetry/vscode/src/generate.ts [356:374]


function generateDefinitions(metrics: Metric[]): VariableStatementStructure {
    const fields = metrics.map(m => {
        const metadataTypes = getMetricMetadata(m).filter(m => m.required ?? true).map(m => `'${m.type}'`)
        const requiredMetadata = `[${metadataTypes.join(', ')}]`

        return `${m.name}: { unit: '${m.unit ?? 'None'}', passive: ${m.passive ?? false}, trackPerformance: ${m.trackPerformance ?? false}, requiredMetadata: ${requiredMetadata} }`
    })

    return {
        isExported: true,
        declarations: [{
                name: 'definitions',
                type: `Record<string, ${runtimeMetricDefinition.name}>`,
                initializer: `{ ${fields.join(',\n')} }`,
        }],
        declarationKind: VariableDeclarationKind.Const,
        kind: StructureKind.VariableStatement,
    }
}