芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/app.optimyar.com/backend/node_modules/strapi-utils/lib/validators.js
'use strict'; const yup = require('yup'); const _ = require('lodash'); const MixedSchemaType = yup.mixed; const isNotNilTest = value => !_.isNil(value); function isNotNill(msg = '${path} must be defined.') { return this.test('defined', msg, isNotNilTest); } const isNotNullTest = value => !_.isNull(value); function isNotNull(msg = '${path} cannot be null.') { return this.test('defined', msg, isNotNullTest); } function arrayRequiredAllowEmpty(message = '${path} is required') { return this.test('field is required', message, value => _.isArray(value)); } yup.addMethod(yup.mixed, 'notNil', isNotNill); yup.addMethod(yup.mixed, 'notNull', isNotNull); yup.addMethod(yup.array, 'requiredAllowEmpty', arrayRequiredAllowEmpty); class StrapiIDSchema extends MixedSchemaType { constructor() { super({ type: 'strapiID' }); } _typeCheck(value) { return typeof value === 'string' || (Number.isInteger(value) && value >= 0); } } yup.strapiID = () => new StrapiIDSchema(); /** * Returns a formatted error for http responses * @param {Object} validationError - a Yup ValidationError */ const formatYupErrors = validationError => { if (!validationError.inner) { throw new Error('invalid.input'); } if (validationError.inner.length === 0) { if (validationError.path === undefined) return validationError.errors; return { [validationError.path]: validationError.errors }; } return validationError.inner.reduce((acc, err) => { acc[err.path] = err.errors; return acc; }, {}); }; module.exports = { yup, formatYupErrors, };