const validations = require('../schema/compiled/validate-cjs'); export const SPECIAL_CHARACTERS = '!@#$%^&()_ _åøæ_üäö_事实胜于雄辩_片仮名_カタカナ'; // todo: make a Jasmine assertion // Data is set as any in ajv typings /* eslint-disable @typescript-eslint/no-explicit-any */ export function validateSchema(keyRef: string, data: any, detailedLog = false) { const validationFunc = validations[keyRef]; if (!validationFunc) { console.error('\t', 'Schema ajv is broken or something else is wrong'); return false; } // const schemaValid = validationFunc(keyRef, { neverValid: true }); const schemaValid = validationFunc(data); if (!schemaValid) { console.error('\t', `Parent schema ${keyRef} or it's nested properties is not valid: `); if (detailedLog) { console.error('\r\n', 'Not valid data: ', JSON.stringify(data)); } if (validationFunc.errors) { // @ts-ignore todo: type compiled JS validationFunc.errors.forEach(error => { if (detailedLog) { console.error('\t', 'Error: ', error); return; } console.error('\t', `Not valid schema: ${error.schemaPath}`); console.error('\t', error.message); }); } } return schemaValid; } export default {};