improve jsdocs

This commit is contained in:
Dieter Stinglhamber 2021-11-29 11:46:22 +01:00
parent 77a1684577
commit 652cac0243

View File

@ -4,6 +4,12 @@ const _ = require('lodash');
const { yup } = require('@strapi/utils'); const { yup } = require('@strapi/utils');
/**
* @type {import('yup').StringSchema} StringSchema
* @type {import('yup').NumberSchema} NumberSchema
* @type {import('yup').AnySchema} AnySchema
*/
/** /**
* Utility function to compose validators * Utility function to compose validators
*/ */
@ -23,93 +29,93 @@ const composeValidators = (...fns) => (...args) => {
/** /**
* Adds minLength validator * Adds minLength validator
* @param {import('yup').StringSchema} validator yup validator * @param {StringSchema} validator yup validator
* @param {Object} metas * @param {Object} metas
* @param {{ minLength: Number }} metas.attr model attribute * @param {{ minLength: Number }} metas.attr model attribute
* @param {Object} options * @param {Object} options
* @param {boolean} options.isDraft * @param {boolean} options.isDraft
* *
* @returns {{import('yup').StringSchema}} * @returns {StringSchema}
*/ */
const addMinLengthValidator = (validator, { attr }, { isDraft }) => const addMinLengthValidator = (validator, { attr }, { isDraft }) =>
_.isInteger(attr.minLength) && !isDraft ? validator.min(attr.minLength) : validator; _.isInteger(attr.minLength) && !isDraft ? validator.min(attr.minLength) : validator;
/** /**
* Adds maxLength validator * Adds maxLength validator
* @param {import('yup').StringSchema} validator yup validator * @param {StringSchema} validator yup validator
* @param {Object} metas * @param {Object} metas
* @param {{ maxLength: Number }} metas.attr model attribute * @param {{ maxLength: Number }} metas.attr model attribute
* *
* @returns {{import('yup').StringSchema}} * @returns {StringSchema}
*/ */
const addMaxLengthValidator = (validator, { attr }) => const addMaxLengthValidator = (validator, { attr }) =>
_.isInteger(attr.maxLength) ? validator.max(attr.maxLength) : validator; _.isInteger(attr.maxLength) ? validator.max(attr.maxLength) : validator;
/** /**
* Adds min integer validator * Adds min integer validator
* @param {import('yup').NumberSchema} validator yup validator * @param {NumberSchema} validator yup validator
* @param {Object} metas * @param {Object} metas
* @param {{ min: Number }} metas.attr model attribute * @param {{ min: Number }} metas.attr model attribute
* *
* @returns {{import('yup').NumberSchema}} * @returns {NumberSchema}
*/ */
const addMinIntegerValidator = (validator, { attr }) => const addMinIntegerValidator = (validator, { attr }) =>
_.isNumber(attr.min) ? validator.min(_.toInteger(attr.min)) : validator; _.isNumber(attr.min) ? validator.min(_.toInteger(attr.min)) : validator;
/** /**
* Adds max integer validator * Adds max integer validator
* @param {import('yup').NumberSchema} validator yup validator * @param {NumberSchema} validator yup validator
* @param {Object} metas * @param {Object} metas
* @param {{ max: Number }} metas.attr model attribute * @param {{ max: Number }} metas.attr model attribute
* *
* @returns {{import('yup').NumberSchema}} * @returns {NumberSchema}
*/ */
const addMaxIntegerValidator = (validator, { attr }) => const addMaxIntegerValidator = (validator, { attr }) =>
_.isNumber(attr.max) ? validator.max(_.toInteger(attr.max)) : validator; _.isNumber(attr.max) ? validator.max(_.toInteger(attr.max)) : validator;
/** /**
* Adds min float/decimal validator * Adds min float/decimal validator
* @param {import('yup').NumberSchema} validator yup validator * @param {NumberSchema} validator yup validator
* @param {Object} metas * @param {Object} metas
* @param {{ min: Number }} metas.attr model attribute * @param {{ min: Number }} metas.attr model attribute
* *
* @returns {{import('yup').NumberSchema}} * @returns {NumberSchema}
*/ */
const addMinFloatValidator = (validator, { attr }) => const addMinFloatValidator = (validator, { attr }) =>
_.isNumber(attr.min) ? validator.min(attr.min) : validator; _.isNumber(attr.min) ? validator.min(attr.min) : validator;
/** /**
* Adds max float/decimal validator * Adds max float/decimal validator
* @param {import('yup').NumberSchema} validator yup validator * @param {NumberSchema} validator yup validator
* @param {Object} metas model attribute * @param {Object} metas model attribute
* @param {{ max: Number }} metas.attr * @param {{ max: Number }} metas.attr
* *
* @returns {{import('yup').NumberSchema}} * @returns {NumberSchema}
*/ */
const addMaxFloatValidator = (validator, { attr }) => const addMaxFloatValidator = (validator, { attr }) =>
_.isNumber(attr.max) ? validator.max(attr.max) : validator; _.isNumber(attr.max) ? validator.max(attr.max) : validator;
/** /**
* Adds regex validator * Adds regex validator
* @param {import('yup').StringSchema} validator yup validator * @param {StringSchema} validator yup validator
* @param {Object} metas model attribute * @param {Object} metas model attribute
* @param {{ regex: RegExp }} metas.attr * @param {{ regex: RegExp }} metas.attr
* *
* @returns {{import('yup').StringSchema}} * @returns {StringSchema}
*/ */
const addStringRegexValidator = (validator, { attr }) => const addStringRegexValidator = (validator, { attr }) =>
_.isUndefined(attr.regex) ? validator : validator.matches(new RegExp(attr.regex)); _.isUndefined(attr.regex) ? validator : validator.matches(new RegExp(attr.regex));
/** /**
* *
* @param {import('yup').AnySchema} validator * @param {AnySchema} validator
* @param {Object} metas * @param {Object} metas
* @param {{ unique: Boolean, type: String }} metas.attr * @param {{ unique: Boolean, type: String }} metas.attr
* @param {{ uid: String }} metas.model * @param {{ uid: String }} metas.model
* @param {{ name: String, value: any }} metas.updatedAttribute * @param {{ name: String, value: any }} metas.updatedAttribute
* @param {Object} metas.entity * @param {Object} metas.entity
* *
* @returns {{import('yup').StringSchema}} * @returns {AnySchema}
*/ */
const addUniqueValidator = (validator, { attr, model, updatedAttribute, entity }) => { const addUniqueValidator = (validator, { attr, model, updatedAttribute, entity }) => {
if (!attr.unique && attr.type !== 'uid') { if (!attr.unique && attr.type !== 'uid') {