in telemetry/vscode/src/parser.ts [43:59]
export function validateInput(fileText: string, fileName: string): MetricDefinitionRoot {
try {
const schemaInput = readFileSync(path.join(__dirname, '../lib/telemetrySchema.json'), 'utf8')
const schema = JSON.parse(schemaInput)
const jsonValidator = new Ajv().compile(schema)
const input = JSON.parse(fileText)
const valid = jsonValidator(input)
if (!valid) {
console.error('validating schema failed!')
throw jsonValidator.errors
}
return input as MetricDefinitionRoot
} catch (errors) {
console.error(`Error while trying to parse the definitions file ${fileName}: ${JSON.stringify(errors)}`)
throw Error('Failed to parse')
}
}