UNPKG

@forestadmin/datasource-toolkit

Version:
31 lines 2.77 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const field_1 = __importDefault(require("./field")); const errors_1 = require("../errors"); const index_1 = require("../index"); class RecordValidator { static validate(collection, recordData) { if (!recordData || Object.keys(recordData).length === 0) { throw new errors_1.ValidationError('The record data is empty'); } for (const key of Object.keys(recordData)) { const schema = index_1.SchemaUtils.getField(collection.schema, key, collection.name); if (schema.type === 'Column') { field_1.default.validate(collection, key, [recordData[key]]); } else if (schema.type === 'OneToOne' || schema.type === 'ManyToOne') { const subRecord = recordData[key]; const association = collection.dataSource.getCollection(schema.foreignCollection); RecordValidator.validate(association, subRecord); } else { throw new errors_1.ValidationError(`Unexpected schema type '${schema.type}' while traversing record`); } } } } exports.default = RecordValidator; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vcmVjb3JkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQXFDO0FBQ3JDLHNDQUE0QztBQUM1QyxvQ0FBdUM7QUFJdkMsTUFBcUIsZUFBZTtJQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQXNCLEVBQUUsVUFBc0I7UUFDNUQsSUFBSSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdkQsTUFBTSxJQUFJLHdCQUFlLENBQUMsMEJBQTBCLENBQUMsQ0FBQztTQUN2RDtRQUVELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN6QyxNQUFNLE1BQU0sR0FBRyxtQkFBVyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFN0UsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDNUIsZUFBYyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM3RDtpQkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO2dCQUNwRSxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFlLENBQUM7Z0JBRWhELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNsRixlQUFlLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQzthQUNsRDtpQkFBTTtnQkFDTCxNQUFNLElBQUksd0JBQWUsQ0FDdkIsMkJBQTJCLE1BQU0sQ0FBQyxJQUFJLDJCQUEyQixDQUNsRSxDQUFDO2FBQ0g7U0FDRjtJQUNILENBQUM7Q0FDRjtBQXZCRCxrQ0F1QkMifQ==