import Ajv from "ajv"; export const validateJson = async (jsonFileContent: string): Promise => { const jsonObject = JSON.parse(jsonFileContent); const schema = jsonObject["$schema"]; if (!schema) { throw new Error("No schema found in JSON file."); } const schemaUrl = new URL(schema); const schemaContent = await fetch(schemaUrl.toString()); const schemaText = await schemaContent.text(); const schemaObject = JSON.parse(schemaText); const validator = new Ajv({ strict: false, }); const validate = validator.compile(schemaObject); const isValid = validate(jsonObject); if (!isValid) { throw new Error(`JSON file is not valid: ${validator.errorsText()}`); } };