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,
}
}