in telemetry/vscode/src/parser.ts [48:63]
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) {
throw jsonValidator.errors
}
return input as MetricDefinitionRoot
} catch (errors) {
const msg = `Failed to parse definitions file ${fileName}: ${JSON.stringify(errors)}`
throw new Error(msg)
}
}