@qualipool/swissrets-json
Version:
A swiss real estate transfer standard.
24 lines • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateSwissRets = void 0;
const tslib_1 = require("tslib");
const ajv_formats_1 = tslib_1.__importDefault(require("ajv-formats"));
const _2020_1 = tslib_1.__importDefault(require("ajv/dist/2020"));
const lodash_1 = require("lodash");
const custom_validation_1 = require("../validator/custom-validation");
const swissRetsSchema_json_1 = tslib_1.__importDefault(require("../../../schema/swissRetsSchema.json"));
/**
* Validates the given SwissRETS JSON string or object against the schema.
* @param swissretsJson The SwissRETS JSON string or object to validate.
* @returns An array of errors. If the array is empty, the JSON is valid.
*/
const validateSwissRets = (swissretsJson, config = { removeAdditional: false }) => {
const ajv2020Instance = new _2020_1.default({ allErrors: true, verbose: true, ...config });
(0, ajv_formats_1.default)(ajv2020Instance);
(0, lodash_1.each)((0, custom_validation_1.allCustomValidators)(), (item) => ajv2020Instance.addKeyword(item));
const jsonObject = swissretsJson instanceof Object ? swissretsJson : JSON.parse(swissretsJson);
ajv2020Instance.validate(swissRetsSchema_json_1.default, jsonObject);
return ajv2020Instance.errors || [];
};
exports.validateSwissRets = validateSwissRets;
//# sourceMappingURL=validator.js.map