export async function generate()

in telemetry/vscode/src/generate.ts [144:182]


export async function generate(args: CommandLineArguments) {
    let output = `
    /*!
     * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
     * SPDX-License-Identifier: Apache-2.0
     */

    import globals from '../extensionGlobals'
    `

    const rawDefinitions: MetricDefinitionRoot = args.inputFiles
        .map(path => {
            const fileInput = readFileSync(path, 'utf8')
            return validateInput(fileInput, path)
        })
        .reduce(
            (item: MetricDefinitionRoot, input: MetricDefinitionRoot) => {
                item.types!.push(...(input.types ?? []))
                item.metrics.push(...input.metrics)
                return item
            },
            { types: [], metrics: [] }
        )
    // Allow read in files to overwrite default definitions. First one wins, so the extra
    // files are read before the default resources (above)
    const input = {
        types: _.uniqBy(rawDefinitions.types, 'name'),
        metrics: _.uniqBy(rawDefinitions.metrics, 'name'),
    }
    output += generateTelemetry(input)
    output += generateHelperFunctions()

    const options = await prettier.resolveConfig(await readFile(`${__dirname}/../.prettierrc`, 'utf-8'))
    const formattedOutput = prettier.format(output, { parser: 'typescript', ...options })

    writeFileSync(args.outputFile, formattedOutput)

    console.log('Done generating!')
}