UNPKG

@e22m4u/js-repository

Version:

Реализация репозитория для работы с базами данных в Node.js

34 lines (32 loc) 990 B
import {Service} from '@e22m4u/js-service'; import {InvalidArgumentError} from '../../errors/index.js'; import {ModelDefinitionUtils} from './model-definition-utils.js'; /** * Model data validator. */ export class ModelDataSanitizer extends Service { /** * Validate. * * @param {string} modelName * @param {object} modelData * @returns {object} */ sanitize(modelName, modelData) { if (!modelName || typeof modelName !== 'string') throw new InvalidArgumentError( 'The first argument of ModelDataSanitizer.sanitize ' + 'should be a string, but %v given.', modelName, ); if (!modelData || typeof modelData !== 'object') throw new InvalidArgumentError( 'The second argument of ModelDataSanitizer.sanitize ' + 'should be an Object, but %v given.', modelData, ); return this.getService( ModelDefinitionUtils, ).excludeObjectKeysByRelationNames(modelName, modelData); } }