@astral/validations 4.20.2 → 4.20.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/node/any/any.d.ts +23 -0
- package/node/any/any.js +29 -0
- package/node/any/index.d.ts +1 -0
- package/node/any/index.js +17 -0
- package/node/array/array.d.ts +15 -0
- package/node/array/array.js +25 -0
- package/node/array/constants.d.ts +2 -0
- package/node/array/constants.js +8 -0
- package/node/array/index.d.ts +2 -0
- package/node/array/index.js +18 -0
- package/node/arrayItem/arrayItem.d.ts +27 -0
- package/node/arrayItem/arrayItem.js +37 -0
- package/node/arrayItem/index.d.ts +1 -0
- package/node/arrayItem/index.js +17 -0
- package/node/boolean/boolean.d.ts +13 -0
- package/node/boolean/boolean.js +23 -0
- package/node/boolean/constants.d.ts +2 -0
- package/node/boolean/constants.js +8 -0
- package/node/boolean/index.d.ts +2 -0
- package/node/boolean/index.js +18 -0
- package/node/containsDifferentCases/constants.d.ts +2 -0
- package/node/containsDifferentCases/constants.js +5 -0
- package/node/containsDifferentCases/containsDifferentCases.d.ts +16 -0
- package/node/containsDifferentCases/containsDifferentCases.js +26 -0
- package/node/containsDifferentCases/index.d.ts +2 -0
- package/node/containsDifferentCases/index.js +18 -0
- package/node/containsNumbers/constants.d.ts +2 -0
- package/node/containsNumbers/constants.js +5 -0
- package/node/containsNumbers/containsNumbers.d.ts +16 -0
- package/node/containsNumbers/containsNumbers.js +24 -0
- package/node/containsNumbers/index.d.ts +2 -0
- package/node/containsNumbers/index.js +18 -0
- package/node/containsPunctuationMarks/constants.d.ts +2 -0
- package/node/containsPunctuationMarks/constants.js +5 -0
- package/node/containsPunctuationMarks/containsPunctuationMarks.d.ts +16 -0
- package/node/containsPunctuationMarks/containsPunctuationMarks.js +24 -0
- package/node/containsPunctuationMarks/index.d.ts +2 -0
- package/node/containsPunctuationMarks/index.js +18 -0
- package/node/core/compose/compose.d.ts +6 -0
- package/node/core/compose/compose.js +11 -0
- package/node/core/compose/index.d.ts +1 -0
- package/node/core/compose/index.js +17 -0
- package/node/core/composeAsync/composeAsync.d.ts +6 -0
- package/node/core/composeAsync/composeAsync.js +28 -0
- package/node/core/composeAsync/index.d.ts +1 -0
- package/node/core/composeAsync/index.js +17 -0
- package/node/core/context/createContext/createContext.d.ts +19 -0
- package/node/core/context/createContext/createContext.js +25 -0
- package/node/core/context/createContext/index.d.ts +1 -0
- package/node/core/context/createContext/index.js +17 -0
- package/node/core/context/index.d.ts +2 -0
- package/node/core/context/index.js +18 -0
- package/node/core/context/types.d.ts +37 -0
- package/node/core/context/types.js +2 -0
- package/node/core/errors/ArrayError/ArrayError.d.ts +18 -0
- package/node/core/errors/ArrayError/ArrayError.js +14 -0
- package/node/core/errors/ArrayError/createArrayError/createArrayError.d.ts +5 -0
- package/node/core/errors/ArrayError/createArrayError/createArrayError.js +15 -0
- package/node/core/errors/ArrayError/createArrayError/index.d.ts +1 -0
- package/node/core/errors/ArrayError/createArrayError/index.js +17 -0
- package/node/core/errors/ArrayError/index.d.ts +2 -0
- package/node/core/errors/ArrayError/index.js +18 -0
- package/node/core/errors/ErrorMap/ErrorMap.d.ts +21 -0
- package/node/core/errors/ErrorMap/ErrorMap.js +14 -0
- package/node/core/errors/ErrorMap/createErrorMap/createErrorMap.d.ts +5 -0
- package/node/core/errors/ErrorMap/createErrorMap/createErrorMap.js +14 -0
- package/node/core/errors/ErrorMap/createErrorMap/index.d.ts +1 -0
- package/node/core/errors/ErrorMap/createErrorMap/index.js +17 -0
- package/node/core/errors/ErrorMap/index.d.ts +2 -0
- package/node/core/errors/ErrorMap/index.js +18 -0
- package/node/core/errors/SimpleError/SimpleError.d.ts +16 -0
- package/node/core/errors/SimpleError/SimpleError.js +13 -0
- package/node/core/errors/SimpleError/createSimpleError/createSimpleError.d.ts +6 -0
- package/node/core/errors/SimpleError/createSimpleError/createSimpleError.js +9 -0
- package/node/core/errors/SimpleError/createSimpleError/index.d.ts +1 -0
- package/node/core/errors/SimpleError/createSimpleError/index.js +17 -0
- package/node/core/errors/SimpleError/index.d.ts +2 -0
- package/node/core/errors/SimpleError/index.js +18 -0
- package/node/core/errors/constants.d.ts +2 -0
- package/node/core/errors/constants.js +8 -0
- package/node/core/errors/createErrorCode/createErrorCode.d.ts +5 -0
- package/node/core/errors/createErrorCode/createErrorCode.js +8 -0
- package/node/core/errors/createErrorCode/index.d.ts +1 -0
- package/node/core/errors/createErrorCode/index.js +17 -0
- package/node/core/errors/index.d.ts +6 -0
- package/node/core/errors/index.js +22 -0
- package/node/core/errors/types.d.ts +18 -0
- package/node/core/errors/types.js +2 -0
- package/node/core/guard/createGuard/createGuard.d.ts +71 -0
- package/node/core/guard/createGuard/createGuard.js +28 -0
- package/node/core/guard/createGuard/index.d.ts +1 -0
- package/node/core/guard/createGuard/index.js +17 -0
- package/node/core/guard/index.d.ts +1 -0
- package/node/core/guard/index.js +17 -0
- package/node/core/index.d.ts +9 -0
- package/node/core/index.js +25 -0
- package/node/core/logger/index.d.ts +1 -0
- package/node/core/logger/index.js +17 -0
- package/node/core/logger/logger.d.ts +6 -0
- package/node/core/logger/logger.js +12 -0
- package/node/core/rule/callAsyncRule/callAsyncRule.d.ts +8 -0
- package/node/core/rule/callAsyncRule/callAsyncRule.js +29 -0
- package/node/core/rule/callAsyncRule/index.d.ts +1 -0
- package/node/core/rule/callAsyncRule/index.js +17 -0
- package/node/core/rule/callRule/callRule.d.ts +7 -0
- package/node/core/rule/callRule/callRule.js +13 -0
- package/node/core/rule/callRule/index.d.ts +1 -0
- package/node/core/rule/callRule/index.js +17 -0
- package/node/core/rule/createRule/createRule.d.ts +34 -0
- package/node/core/rule/createRule/createRule.js +31 -0
- package/node/core/rule/createRule/index.d.ts +1 -0
- package/node/core/rule/createRule/index.js +17 -0
- package/node/core/rule/index.d.ts +5 -0
- package/node/core/rule/index.js +21 -0
- package/node/core/rule/required/constants.d.ts +2 -0
- package/node/core/rule/required/constants.js +8 -0
- package/node/core/rule/required/index.d.ts +2 -0
- package/node/core/rule/required/index.js +18 -0
- package/node/core/rule/required/required.d.ts +11 -0
- package/node/core/rule/required/required.js +29 -0
- package/node/core/rule/types.d.ts +23 -0
- package/node/core/rule/types.js +2 -0
- package/node/core/types.d.ts +9 -0
- package/node/core/types.js +2 -0
- package/node/core/utils/index.d.ts +8 -0
- package/node/core/utils/index.js +24 -0
- package/node/core/utils/isDateEarlier/index.d.ts +1 -0
- package/node/core/utils/isDateEarlier/index.js +17 -0
- package/node/core/utils/isDateEarlier/isDateEarlier.d.ts +1 -0
- package/node/core/utils/isDateEarlier/isDateEarlier.js +8 -0
- package/node/core/utils/isFullNameValidCharacters/index.d.ts +1 -0
- package/node/core/utils/isFullNameValidCharacters/index.js +17 -0
- package/node/core/utils/isFullNameValidCharacters/isFullNameValidCharacters.d.ts +5 -0
- package/node/core/utils/isFullNameValidCharacters/isFullNameValidCharacters.js +9 -0
- package/node/core/utils/isHasConsecutiveChars/index.d.ts +1 -0
- package/node/core/utils/isHasConsecutiveChars/index.js +17 -0
- package/node/core/utils/isHasConsecutiveChars/isHasConsecutiveChars.d.ts +4 -0
- package/node/core/utils/isHasConsecutiveChars/isHasConsecutiveChars.js +8 -0
- package/node/core/utils/isNoDoubleZeroStart/index.d.ts +1 -0
- package/node/core/utils/isNoDoubleZeroStart/index.js +17 -0
- package/node/core/utils/isNoDoubleZeroStart/isNoDoubleZeroStart.d.ts +4 -0
- package/node/core/utils/isNoDoubleZeroStart/isNoDoubleZeroStart.js +8 -0
- package/node/core/utils/isStartsWithAndEndsWithLetter/index.d.ts +1 -0
- package/node/core/utils/isStartsWithAndEndsWithLetter/index.js +17 -0
- package/node/core/utils/isStartsWithAndEndsWithLetter/isStartsWithAndEndsWithLetter.d.ts +4 -0
- package/node/core/utils/isStartsWithAndEndsWithLetter/isStartsWithAndEndsWithLetter.js +8 -0
- package/node/core/utils/isStringOfZeros/index.d.ts +1 -0
- package/node/core/utils/isStringOfZeros/index.js +17 -0
- package/node/core/utils/isStringOfZeros/isStringOfZeros.d.ts +4 -0
- package/node/core/utils/isStringOfZeros/isStringOfZeros.js +13 -0
- package/node/core/utils/isValidFullNameLength/index.d.ts +1 -0
- package/node/core/utils/isValidFullNameLength/index.js +17 -0
- package/node/core/utils/isValidFullNameLength/isValidFullNameLength.d.ts +4 -0
- package/node/core/utils/isValidFullNameLength/isValidFullNameLength.js +8 -0
- package/node/core/utils/resetTime/index.d.ts +1 -0
- package/node/core/utils/resetTime/index.js +17 -0
- package/node/core/utils/resetTime/resetTime.d.ts +5 -0
- package/node/core/utils/resetTime/resetTime.js +16 -0
- package/node/date/constants.d.ts +3 -0
- package/node/date/constants.js +12 -0
- package/node/date/date.d.ts +19 -0
- package/node/date/date.js +28 -0
- package/node/date/index.d.ts +2 -0
- package/node/date/index.js +18 -0
- package/node/deepPartial/deepPartial.d.ts +21 -0
- package/node/deepPartial/deepPartial.js +25 -0
- package/node/deepPartial/index.d.ts +1 -0
- package/node/deepPartial/index.js +17 -0
- package/node/email/constants.d.ts +10 -0
- package/node/email/constants.js +22 -0
- package/node/email/email.d.ts +30 -0
- package/node/email/email.js +59 -0
- package/node/email/index.d.ts +2 -0
- package/node/email/index.js +18 -0
- package/node/enabled/enabled.d.ts +34 -0
- package/node/enabled/enabled.js +35 -0
- package/node/enabled/index.d.ts +1 -0
- package/node/enabled/index.js +17 -0
- package/node/guid/constants.d.ts +3 -0
- package/node/guid/constants.js +9 -0
- package/node/guid/guid.d.ts +16 -0
- package/node/guid/guid.js +20 -0
- package/node/guid/index.d.ts +2 -0
- package/node/guid/index.js +18 -0
- package/node/index.d.ts +53 -0
- package/node/index.js +185 -0
- package/node/innFL/constants.d.ts +2 -0
- package/node/innFL/constants.js +8 -0
- package/node/innFL/index.d.ts +2 -0
- package/node/innFL/index.js +18 -0
- package/node/innFL/innFL.d.ts +17 -0
- package/node/innFL/innFL.js +25 -0
- package/node/innIP/constants.d.ts +2 -0
- package/node/innIP/constants.js +8 -0
- package/node/innIP/index.d.ts +2 -0
- package/node/innIP/index.js +18 -0
- package/node/innIP/innIP.d.ts +17 -0
- package/node/innIP/innIP.js +31 -0
- package/node/innTwelveSymbols/constants.d.ts +5 -0
- package/node/innTwelveSymbols/constants.js +13 -0
- package/node/innTwelveSymbols/index.d.ts +2 -0
- package/node/innTwelveSymbols/index.js +18 -0
- package/node/innTwelveSymbols/innTwelveSymbols.d.ts +17 -0
- package/node/innTwelveSymbols/innTwelveSymbols.js +41 -0
- package/node/innUL/constants.d.ts +4 -0
- package/node/innUL/constants.js +10 -0
- package/node/innUL/index.d.ts +2 -0
- package/node/innUL/index.js +18 -0
- package/node/innUL/innUL.d.ts +17 -0
- package/node/innUL/innUL.js +43 -0
- package/node/integer/constants.d.ts +2 -0
- package/node/integer/constants.js +8 -0
- package/node/integer/index.d.ts +2 -0
- package/node/integer/index.js +18 -0
- package/node/integer/integer.d.ts +25 -0
- package/node/integer/integer.js +32 -0
- package/node/kpp/constants.d.ts +5 -0
- package/node/kpp/constants.js +17 -0
- package/node/kpp/index.d.ts +2 -0
- package/node/kpp/index.js +18 -0
- package/node/kpp/kpp.d.ts +17 -0
- package/node/kpp/kpp.js +30 -0
- package/node/length/constants.d.ts +2 -0
- package/node/length/constants.js +5 -0
- package/node/length/index.d.ts +2 -0
- package/node/length/index.js +18 -0
- package/node/length/length.d.ts +22 -0
- package/node/length/length.js +30 -0
- package/node/max/constants.d.ts +5 -0
- package/node/max/constants.js +8 -0
- package/node/max/index.d.ts +2 -0
- package/node/max/index.js +18 -0
- package/node/max/max.d.ts +26 -0
- package/node/max/max.js +46 -0
- package/node/min/constants.d.ts +5 -0
- package/node/min/constants.js +8 -0
- package/node/min/index.d.ts +2 -0
- package/node/min/index.js +18 -0
- package/node/min/min.d.ts +26 -0
- package/node/min/min.js +46 -0
- package/node/minYearsOld/constants.d.ts +4 -0
- package/node/minYearsOld/constants.js +7 -0
- package/node/minYearsOld/index.d.ts +2 -0
- package/node/minYearsOld/index.js +18 -0
- package/node/minYearsOld/minYearsOld.d.ts +24 -0
- package/node/minYearsOld/minYearsOld.js +48 -0
- package/node/mobilePhone/constants.d.ts +3 -0
- package/node/mobilePhone/constants.js +9 -0
- package/node/mobilePhone/index.d.ts +2 -0
- package/node/mobilePhone/index.js +18 -0
- package/node/mobilePhone/mobilePhone.d.ts +19 -0
- package/node/mobilePhone/mobilePhone.js +25 -0
- package/node/number/constants.d.ts +4 -0
- package/node/number/constants.js +16 -0
- package/node/number/index.d.ts +2 -0
- package/node/number/index.js +18 -0
- package/node/number/number.d.ts +19 -0
- package/node/number/number.js +30 -0
- package/node/object/constants.d.ts +2 -0
- package/node/object/constants.js +8 -0
- package/node/object/index.d.ts +3 -0
- package/node/object/index.js +19 -0
- package/node/object/isEmptyErrors/index.d.ts +1 -0
- package/node/object/isEmptyErrors/index.js +17 -0
- package/node/object/isEmptyErrors/isEmptyErrors.d.ts +5 -0
- package/node/object/isEmptyErrors/isEmptyErrors.js +8 -0
- package/node/object/object.d.ts +49 -0
- package/node/object/object.js +57 -0
- package/node/object/objectAsync/index.d.ts +1 -0
- package/node/object/objectAsync/index.js +17 -0
- package/node/object/objectAsync/objectAsync.d.ts +61 -0
- package/node/object/objectAsync/objectAsync.js +79 -0
- package/node/ogrnIP/constants.d.ts +3 -0
- package/node/ogrnIP/constants.js +9 -0
- package/node/ogrnIP/index.d.ts +2 -0
- package/node/ogrnIP/index.js +18 -0
- package/node/ogrnIP/ogrnIP.d.ts +17 -0
- package/node/ogrnIP/ogrnIP.js +31 -0
- package/node/ogrnUL/constants.d.ts +3 -0
- package/node/ogrnUL/constants.js +9 -0
- package/node/ogrnUL/index.d.ts +2 -0
- package/node/ogrnUL/index.js +18 -0
- package/node/ogrnUL/ogrnUL.d.ts +17 -0
- package/node/ogrnUL/ogrnUL.js +31 -0
- package/node/onlyNumber/constants.d.ts +2 -0
- package/node/onlyNumber/constants.js +5 -0
- package/node/onlyNumber/index.d.ts +2 -0
- package/node/onlyNumber/index.js +18 -0
- package/node/onlyNumber/onlyNumber.d.ts +16 -0
- package/node/onlyNumber/onlyNumber.js +24 -0
- package/node/optional/index.d.ts +2 -0
- package/node/optional/index.js +18 -0
- package/node/optional/optional.d.ts +6 -0
- package/node/optional/optional.js +10 -0
- package/node/optional/optionalAsync/index.d.ts +1 -0
- package/node/optional/optionalAsync/index.js +17 -0
- package/node/optional/optionalAsync/optionalAsync.d.ts +6 -0
- package/node/optional/optionalAsync/optionalAsync.js +22 -0
- package/node/or/index.d.ts +1 -0
- package/node/or/index.js +17 -0
- package/node/or/or.d.ts +14 -0
- package/node/or/or.js +25 -0
- package/node/partial/index.d.ts +1 -0
- package/node/partial/index.js +17 -0
- package/node/partial/partial.d.ts +9 -0
- package/node/partial/partial.js +10 -0
- package/node/passportCode/constants.d.ts +4 -0
- package/node/passportCode/constants.js +16 -0
- package/node/passportCode/index.d.ts +2 -0
- package/node/passportCode/index.js +18 -0
- package/node/passportCode/passportCode.d.ts +17 -0
- package/node/passportCode/passportCode.js +42 -0
- package/node/passportNumber/constants.d.ts +4 -0
- package/node/passportNumber/constants.js +16 -0
- package/node/passportNumber/index.d.ts +2 -0
- package/node/passportNumber/index.js +18 -0
- package/node/passportNumber/passportNumber.d.ts +17 -0
- package/node/passportNumber/passportNumber.js +36 -0
- package/node/passportSeries/constants.d.ts +4 -0
- package/node/passportSeries/constants.js +16 -0
- package/node/passportSeries/index.d.ts +2 -0
- package/node/passportSeries/index.js +18 -0
- package/node/passportSeries/passportSeries.d.ts +17 -0
- package/node/passportSeries/passportSeries.js +36 -0
- package/node/pattern/constants.d.ts +2 -0
- package/node/pattern/constants.js +5 -0
- package/node/pattern/index.d.ts +2 -0
- package/node/pattern/index.js +18 -0
- package/node/pattern/pattern.d.ts +18 -0
- package/node/pattern/pattern.js +26 -0
- package/node/personName/constants.d.ts +2 -0
- package/node/personName/constants.js +8 -0
- package/node/personName/index.d.ts +2 -0
- package/node/personName/index.js +18 -0
- package/node/personName/personName.d.ts +17 -0
- package/node/personName/personName.js +33 -0
- package/node/personPatronymic/constants.d.ts +2 -0
- package/node/personPatronymic/constants.js +8 -0
- package/node/personPatronymic/index.d.ts +2 -0
- package/node/personPatronymic/index.js +18 -0
- package/node/personPatronymic/personPatronymic.d.ts +17 -0
- package/node/personPatronymic/personPatronymic.js +33 -0
- package/node/personSurname/constants.d.ts +2 -0
- package/node/personSurname/constants.js +8 -0
- package/node/personSurname/index.d.ts +2 -0
- package/node/personSurname/index.js +18 -0
- package/node/personSurname/personSurname.d.ts +17 -0
- package/node/personSurname/personSurname.js +33 -0
- package/node/positiveNumber/constants.d.ts +2 -0
- package/node/positiveNumber/constants.js +8 -0
- package/node/positiveNumber/index.d.ts +2 -0
- package/node/positiveNumber/index.js +18 -0
- package/node/positiveNumber/positiveNumber.d.ts +25 -0
- package/node/positiveNumber/positiveNumber.js +35 -0
- package/node/rangeDate/constants.d.ts +7 -0
- package/node/rangeDate/constants.js +28 -0
- package/node/rangeDate/index.d.ts +2 -0
- package/node/rangeDate/index.js +18 -0
- package/node/rangeDate/rangeDate.d.ts +50 -0
- package/node/rangeDate/rangeDate.js +69 -0
- package/node/rangeDateInterval/constants.d.ts +7 -0
- package/node/rangeDateInterval/constants.js +17 -0
- package/node/rangeDateInterval/index.d.ts +2 -0
- package/node/rangeDateInterval/index.js +18 -0
- package/node/rangeDateInterval/rangeDateInterval.d.ts +23 -0
- package/node/rangeDateInterval/rangeDateInterval.js +40 -0
- package/node/rangeDateInterval/types.d.ts +6 -0
- package/node/rangeDateInterval/types.js +2 -0
- package/node/rangeDateMinMax/constants.d.ts +8 -0
- package/node/rangeDateMinMax/constants.js +16 -0
- package/node/rangeDateMinMax/index.d.ts +2 -0
- package/node/rangeDateMinMax/index.js +18 -0
- package/node/rangeDateMinMax/rangeDateMinMax.d.ts +34 -0
- package/node/rangeDateMinMax/rangeDateMinMax.js +78 -0
- package/node/rangeDateMinMax/types.d.ts +2 -0
- package/node/rangeDateMinMax/types.js +2 -0
- package/node/rangeDateNotEqual/constants.d.ts +2 -0
- package/node/rangeDateNotEqual/constants.js +8 -0
- package/node/rangeDateNotEqual/index.d.ts +2 -0
- package/node/rangeDateNotEqual/index.js +18 -0
- package/node/rangeDateNotEqual/rangeDateNotEqual.d.ts +20 -0
- package/node/rangeDateNotEqual/rangeDateNotEqual.js +33 -0
- package/node/snils/constants.d.ts +4 -0
- package/node/snils/constants.js +10 -0
- package/node/snils/index.d.ts +2 -0
- package/node/snils/index.js +18 -0
- package/node/snils/snils.d.ts +17 -0
- package/node/snils/snils.js +68 -0
- package/node/string/constants.d.ts +2 -0
- package/node/string/constants.js +8 -0
- package/node/string/index.d.ts +3 -0
- package/node/string/index.js +19 -0
- package/node/string/string.d.ts +2 -0
- package/node/string/string.js +13 -0
- package/node/string/stringAsync/index.d.ts +1 -0
- package/node/string/stringAsync/index.js +17 -0
- package/node/string/stringAsync/stringAsync.d.ts +6 -0
- package/node/string/stringAsync/stringAsync.js +27 -0
- package/node/string/utils/index.d.ts +1 -0
- package/node/string/utils/index.js +17 -0
- package/node/string/utils/isString/index.d.ts +1 -0
- package/node/string/utils/isString/index.js +17 -0
- package/node/string/utils/isString/isString.d.ts +1 -0
- package/node/string/utils/isString/isString.js +5 -0
- package/node/textField/constants.d.ts +5 -0
- package/node/textField/constants.js +14 -0
- package/node/textField/index.d.ts +2 -0
- package/node/textField/index.js +18 -0
- package/node/textField/textField.d.ts +24 -0
- package/node/textField/textField.js +23 -0
- package/node/toPlainError/index.d.ts +1 -0
- package/node/toPlainError/index.js +17 -0
- package/node/toPlainError/toPlainError.d.ts +35 -0
- package/node/toPlainError/toPlainError.js +53 -0
- package/node/toPlainError/utils/generateArrayPath/generateArrayPath.d.ts +4 -0
- package/node/toPlainError/utils/generateArrayPath/generateArrayPath.js +13 -0
- package/node/toPlainError/utils/generateArrayPath/index.d.ts +1 -0
- package/node/toPlainError/utils/generateArrayPath/index.js +17 -0
- package/node/toPlainError/utils/generateObjectPath/generateObjectPath.d.ts +4 -0
- package/node/toPlainError/utils/generateObjectPath/generateObjectPath.js +13 -0
- package/node/toPlainError/utils/generateObjectPath/index.d.ts +1 -0
- package/node/toPlainError/utils/generateObjectPath/index.js +17 -0
- package/node/toPlainError/utils/index.d.ts +2 -0
- package/node/toPlainError/utils/index.js +18 -0
- package/node/toPrettyError/index.d.ts +1 -0
- package/node/toPrettyError/index.js +17 -0
- package/node/toPrettyError/toPrettyError.d.ts +39 -0
- package/node/toPrettyError/toPrettyError.js +42 -0
- package/node/transform/index.d.ts +1 -0
- package/node/transform/index.js +17 -0
- package/node/transform/transform.d.ts +18 -0
- package/node/transform/transform.js +20 -0
- package/node/uploadedFile/constants.d.ts +5 -0
- package/node/uploadedFile/constants.js +20 -0
- package/node/uploadedFile/index.d.ts +2 -0
- package/node/uploadedFile/index.js +18 -0
- package/node/uploadedFile/types.d.ts +46 -0
- package/node/uploadedFile/types.js +2 -0
- package/node/uploadedFile/uploadedFile.d.ts +30 -0
- package/node/uploadedFile/uploadedFile.js +64 -0
- package/node/uploadedFileList/constants.d.ts +2 -0
- package/node/uploadedFileList/constants.js +8 -0
- package/node/uploadedFileList/index.d.ts +2 -0
- package/node/uploadedFileList/index.js +18 -0
- package/node/uploadedFileList/uploadedFileList.d.ts +24 -0
- package/node/uploadedFileList/uploadedFileList.js +47 -0
- package/node/when/index.d.ts +1 -0
- package/node/when/index.js +17 -0
- package/node/when/when.d.ts +39 -0
- package/node/when/when.js +33 -0
- package/package.json +7 -3
@@ -0,0 +1,39 @@
|
|
1
|
+
import { type ValidationResult } from '../core';
|
2
|
+
import { type PlainValidationResult } from '../toPlainError';
|
3
|
+
/**
|
4
|
+
* Преобразует ошибку валидации в формат для вывода (например, в консоль)
|
5
|
+
* @param validationResult
|
6
|
+
* @example
|
7
|
+
* ```ts
|
8
|
+
*
|
9
|
+
* type ListItem = { description: string };
|
10
|
+
*
|
11
|
+
* type Values = {
|
12
|
+
* info: { name: string };
|
13
|
+
* list: ListItem[];
|
14
|
+
* };
|
15
|
+
*
|
16
|
+
* const validate = object<Values>({
|
17
|
+
* info: object<Values['info']>({ name: string() }),
|
18
|
+
* list: array(
|
19
|
+
* arrayItem(
|
20
|
+
* object<ListItem>({
|
21
|
+
* description: string(),
|
22
|
+
* }),
|
23
|
+
* ),
|
24
|
+
* ),
|
25
|
+
* });
|
26
|
+
*
|
27
|
+
* const error = validate({
|
28
|
+
* info: { name: 22 },
|
29
|
+
* list: [{}],
|
30
|
+
* });
|
31
|
+
*
|
32
|
+
* // {
|
33
|
+
* // info: { name: 'Не является строкой' },
|
34
|
+
* // list: [{ description: 'Обязательно' }],
|
35
|
+
* // }
|
36
|
+
* toPrettyError(error);
|
37
|
+
* ```
|
38
|
+
*/
|
39
|
+
export declare const toPrettyError: (validationResult: ValidationResult) => PlainValidationResult<string>;
|
@@ -0,0 +1,42 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.toPrettyError = void 0;
|
4
|
+
const toPlainError_1 = require("../toPlainError");
|
5
|
+
/**
|
6
|
+
* Преобразует ошибку валидации в формат для вывода (например, в консоль)
|
7
|
+
* @param validationResult
|
8
|
+
* @example
|
9
|
+
* ```ts
|
10
|
+
*
|
11
|
+
* type ListItem = { description: string };
|
12
|
+
*
|
13
|
+
* type Values = {
|
14
|
+
* info: { name: string };
|
15
|
+
* list: ListItem[];
|
16
|
+
* };
|
17
|
+
*
|
18
|
+
* const validate = object<Values>({
|
19
|
+
* info: object<Values['info']>({ name: string() }),
|
20
|
+
* list: array(
|
21
|
+
* arrayItem(
|
22
|
+
* object<ListItem>({
|
23
|
+
* description: string(),
|
24
|
+
* }),
|
25
|
+
* ),
|
26
|
+
* ),
|
27
|
+
* });
|
28
|
+
*
|
29
|
+
* const error = validate({
|
30
|
+
* info: { name: 22 },
|
31
|
+
* list: [{}],
|
32
|
+
* });
|
33
|
+
*
|
34
|
+
* // {
|
35
|
+
* // info: { name: 'Не является строкой' },
|
36
|
+
* // list: [{ description: 'Обязательно' }],
|
37
|
+
* // }
|
38
|
+
* toPrettyError(error);
|
39
|
+
* ```
|
40
|
+
*/
|
41
|
+
const toPrettyError = (validationResult) => (0, toPlainError_1.toPlainError)(validationResult, (err) => err.message);
|
42
|
+
exports.toPrettyError = toPrettyError;
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './transform';
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./transform"), exports);
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { type ValidationRule } from '../core';
|
2
|
+
type Transformer<TValue, TResult> = (value: TValue) => TResult;
|
3
|
+
/**
|
4
|
+
* Трансформирует value в новый тип для валидации
|
5
|
+
* @param transformer - функция трансформации value в новый тип
|
6
|
+
* @param rules - правила, которые будут вызваны после трансформации value
|
7
|
+
* @example
|
8
|
+
* ```ts
|
9
|
+
* string(
|
10
|
+
* transform(
|
11
|
+
* (value) => new Date(value),
|
12
|
+
* date(min(new Date()))
|
13
|
+
* )
|
14
|
+
* );
|
15
|
+
* ```
|
16
|
+
*/
|
17
|
+
export declare const transform: <TValue extends unknown, TResult extends unknown, TLastSchemaValues extends Record<string, unknown> = {}>(transformer: Transformer<TValue, TResult>, ...rules: ValidationRule<TResult, TLastSchemaValues>[]) => (value: TValue, prevCtx?: import("../core").ValidationContext<TLastSchemaValues> | undefined) => import("../core").ValidationResult;
|
18
|
+
export {};
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.transform = void 0;
|
4
|
+
const core_1 = require("../core");
|
5
|
+
/**
|
6
|
+
* Трансформирует value в новый тип для валидации
|
7
|
+
* @param transformer - функция трансформации value в новый тип
|
8
|
+
* @param rules - правила, которые будут вызваны после трансформации value
|
9
|
+
* @example
|
10
|
+
* ```ts
|
11
|
+
* string(
|
12
|
+
* transform(
|
13
|
+
* (value) => new Date(value),
|
14
|
+
* date(min(new Date()))
|
15
|
+
* )
|
16
|
+
* );
|
17
|
+
* ```
|
18
|
+
*/
|
19
|
+
const transform = (transformer, ...rules) => (0, core_1.createRule)((value, ctx) => (0, core_1.compose)(...rules)(transformer(value), ctx));
|
20
|
+
exports.transform = transform;
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import { type ErrorInfo } from '../core';
|
2
|
+
export declare const FILE_RESTRICTION_ERROR_INFO: ErrorInfo;
|
3
|
+
export declare const FILE_LOADING_ERROR_INFO: ErrorInfo;
|
4
|
+
export declare const FILE_UPLOAD_ERROR_INFO: ErrorInfo;
|
5
|
+
export declare const FILE_REQUIRED_ERROR_INFO: ErrorInfo;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.FILE_REQUIRED_ERROR_INFO = exports.FILE_UPLOAD_ERROR_INFO = exports.FILE_LOADING_ERROR_INFO = exports.FILE_RESTRICTION_ERROR_INFO = void 0;
|
4
|
+
const core_1 = require("../core");
|
5
|
+
exports.FILE_RESTRICTION_ERROR_INFO = {
|
6
|
+
code: (0, core_1.createErrorCode)('file-restriction'),
|
7
|
+
message: 'Файл не соответствует ограничениям',
|
8
|
+
};
|
9
|
+
exports.FILE_LOADING_ERROR_INFO = {
|
10
|
+
code: (0, core_1.createErrorCode)('file-loading'),
|
11
|
+
message: 'Файл загружается',
|
12
|
+
};
|
13
|
+
exports.FILE_UPLOAD_ERROR_INFO = {
|
14
|
+
code: (0, core_1.createErrorCode)('file-upload'),
|
15
|
+
message: 'Ошибка загрузки файла',
|
16
|
+
};
|
17
|
+
exports.FILE_REQUIRED_ERROR_INFO = {
|
18
|
+
code: (0, core_1.createErrorCode)('file-required'),
|
19
|
+
message: 'Загрузите файл',
|
20
|
+
};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./uploadedFile"), exports);
|
18
|
+
__exportStar(require("./constants"), exports);
|
@@ -0,0 +1,46 @@
|
|
1
|
+
type FileStatus = {
|
2
|
+
/**
|
3
|
+
* Флаг загрузки файла
|
4
|
+
*/
|
5
|
+
isLoading?: boolean;
|
6
|
+
/**
|
7
|
+
* Флаг состояния ошибки при загрузке файла
|
8
|
+
*/
|
9
|
+
isUploadError?: boolean;
|
10
|
+
/**
|
11
|
+
* Флаг состояния ошибки при проверке файла на условия
|
12
|
+
*/
|
13
|
+
isRestrictionError?: boolean;
|
14
|
+
/**
|
15
|
+
* Текст ошибки
|
16
|
+
*/
|
17
|
+
errorMsg?: string;
|
18
|
+
/**
|
19
|
+
* Значение прогресса загрузки файла.
|
20
|
+
*/
|
21
|
+
progress?: number;
|
22
|
+
};
|
23
|
+
export type UploadFile = {
|
24
|
+
/**
|
25
|
+
* Идентификатор
|
26
|
+
*/
|
27
|
+
id: string;
|
28
|
+
/**
|
29
|
+
* Название файла
|
30
|
+
*/
|
31
|
+
name: string;
|
32
|
+
/**
|
33
|
+
* Размер файла в байтах
|
34
|
+
*/
|
35
|
+
size?: number;
|
36
|
+
file?: File;
|
37
|
+
/**
|
38
|
+
* Ссылка на файле
|
39
|
+
*/
|
40
|
+
url?: string;
|
41
|
+
/**
|
42
|
+
* Состояния файла
|
43
|
+
*/
|
44
|
+
status?: FileStatus;
|
45
|
+
};
|
46
|
+
export {};
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { type ValidationRule } from '../core';
|
2
|
+
import type { UploadFile } from './types';
|
3
|
+
/**
|
4
|
+
* Guard для файла. Проверяет объект на соответствие формату UploadFile и его статусы загрузки.
|
5
|
+
* Валидирует наличие обязательных полей (id, name) и проверяет статусы файла (isLoading, isUploadError, isRestrictionError).
|
6
|
+
* @param rules - дополнительные правила валидации для файла
|
7
|
+
* @example
|
8
|
+
* ```ts
|
9
|
+
* const validate = uploadedFile();
|
10
|
+
*
|
11
|
+
* // Валидный файл
|
12
|
+
* validate({
|
13
|
+
* id: 1,
|
14
|
+
* name: "document.pdf",
|
15
|
+
* status: {
|
16
|
+
* isLoading: false
|
17
|
+
* }
|
18
|
+
* });
|
19
|
+
*
|
20
|
+
* // Файл с ошибкой загрузки
|
21
|
+
* validate({
|
22
|
+
* id: 1,
|
23
|
+
* name: "document.pdf",
|
24
|
+
* status: {
|
25
|
+
* isUploadError: true
|
26
|
+
* }
|
27
|
+
* });
|
28
|
+
* ```
|
29
|
+
*/
|
30
|
+
export declare const uploadedFile: <TLastSchemeValues extends Record<string, unknown>>(...rules: ValidationRule<UploadFile, TLastSchemeValues>[]) => import("../core").Guard<TLastSchemeValues, {}>;
|
@@ -0,0 +1,64 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.uploadedFile = void 0;
|
4
|
+
const core_1 = require("../core");
|
5
|
+
const constants_1 = require("./constants");
|
6
|
+
/**
|
7
|
+
* Guard для файла. Проверяет объект на соответствие формату UploadFile и его статусы загрузки.
|
8
|
+
* Валидирует наличие обязательных полей (id, name) и проверяет статусы файла (isLoading, isUploadError, isRestrictionError).
|
9
|
+
* @param rules - дополнительные правила валидации для файла
|
10
|
+
* @example
|
11
|
+
* ```ts
|
12
|
+
* const validate = uploadedFile();
|
13
|
+
*
|
14
|
+
* // Валидный файл
|
15
|
+
* validate({
|
16
|
+
* id: 1,
|
17
|
+
* name: "document.pdf",
|
18
|
+
* status: {
|
19
|
+
* isLoading: false
|
20
|
+
* }
|
21
|
+
* });
|
22
|
+
*
|
23
|
+
* // Файл с ошибкой загрузки
|
24
|
+
* validate({
|
25
|
+
* id: 1,
|
26
|
+
* name: "document.pdf",
|
27
|
+
* status: {
|
28
|
+
* isUploadError: true
|
29
|
+
* }
|
30
|
+
* });
|
31
|
+
* ```
|
32
|
+
*/
|
33
|
+
const uploadedFile = (...rules) => (0, core_1.createGuard)((value, ctx) => {
|
34
|
+
if (!value ||
|
35
|
+
typeof value !== 'object' ||
|
36
|
+
!('id' in value) ||
|
37
|
+
!('name' in value)) {
|
38
|
+
return ctx.createError({
|
39
|
+
code: constants_1.FILE_REQUIRED_ERROR_INFO.code,
|
40
|
+
message: constants_1.FILE_REQUIRED_ERROR_INFO.message,
|
41
|
+
});
|
42
|
+
}
|
43
|
+
const { status } = value;
|
44
|
+
if (status === null || status === void 0 ? void 0 : status.isRestrictionError) {
|
45
|
+
return ctx.createError({
|
46
|
+
code: constants_1.FILE_RESTRICTION_ERROR_INFO.code,
|
47
|
+
message: status.errorMsg || constants_1.FILE_RESTRICTION_ERROR_INFO.message,
|
48
|
+
});
|
49
|
+
}
|
50
|
+
if (status === null || status === void 0 ? void 0 : status.isLoading) {
|
51
|
+
return ctx.createError({
|
52
|
+
code: constants_1.FILE_LOADING_ERROR_INFO.code,
|
53
|
+
message: status.errorMsg || constants_1.FILE_LOADING_ERROR_INFO.message,
|
54
|
+
});
|
55
|
+
}
|
56
|
+
if (status === null || status === void 0 ? void 0 : status.isUploadError) {
|
57
|
+
return ctx.createError({
|
58
|
+
code: constants_1.FILE_UPLOAD_ERROR_INFO.code,
|
59
|
+
message: status.errorMsg || constants_1.FILE_UPLOAD_ERROR_INFO.message,
|
60
|
+
});
|
61
|
+
}
|
62
|
+
return (0, core_1.compose)(...rules)(value, ctx);
|
63
|
+
});
|
64
|
+
exports.uploadedFile = uploadedFile;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.FILE_LIST_NOT_ARRAY_ERROR_INFO = void 0;
|
4
|
+
const core_1 = require("../core");
|
5
|
+
exports.FILE_LIST_NOT_ARRAY_ERROR_INFO = {
|
6
|
+
code: (0, core_1.createErrorCode)('file-list-array'),
|
7
|
+
message: 'Не является массивом',
|
8
|
+
};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./uploadedFileList"), exports);
|
18
|
+
__exportStar(require("./constants"), exports);
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { type ValidationRule } from '../core';
|
2
|
+
import { type UploadFile } from '../uploadedFile/types';
|
3
|
+
/**
|
4
|
+
* Guard для списка файлов. Проверяет массив на валидность и каждый файл в массиве на соответствие формату UploadFile.
|
5
|
+
* Проверяет статусы файлов (isLoading, isUploadError, isRestrictionError).
|
6
|
+
* @param rules - дополнительные правила валидации для массива файлов
|
7
|
+
* @example
|
8
|
+
* ```ts
|
9
|
+
* const validate = uploadedFileList();
|
10
|
+
*
|
11
|
+
* // Валидный массив файлов
|
12
|
+
* validate([
|
13
|
+
* { id: 1, name: "document1.pdf" },
|
14
|
+
* { id: 2, name: "document2.pdf", status: { isLoading: false } }
|
15
|
+
* ]);
|
16
|
+
*
|
17
|
+
* // Массив с ошибкой загрузки
|
18
|
+
* validate([
|
19
|
+
* { id: 1, name: "document1.pdf" },
|
20
|
+
* { id: 2, name: "document2.pdf", status: { isUploadError: true } }
|
21
|
+
* ]);
|
22
|
+
* ```
|
23
|
+
*/
|
24
|
+
export declare const uploadedFileList: <TLastSchemeValues extends Record<string, unknown>>(...rules: ValidationRule<UploadFile[], TLastSchemeValues>[]) => import("../core").Guard<TLastSchemeValues, {}>;
|
@@ -0,0 +1,47 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.uploadedFileList = void 0;
|
4
|
+
const core_1 = require("../core");
|
5
|
+
const array_1 = require("../array");
|
6
|
+
const uploadedFile_1 = require("../uploadedFile");
|
7
|
+
const constants_1 = require("./constants");
|
8
|
+
/**
|
9
|
+
* Guard для списка файлов. Проверяет массив на валидность и каждый файл в массиве на соответствие формату UploadFile.
|
10
|
+
* Проверяет статусы файлов (isLoading, isUploadError, isRestrictionError).
|
11
|
+
* @param rules - дополнительные правила валидации для массива файлов
|
12
|
+
* @example
|
13
|
+
* ```ts
|
14
|
+
* const validate = uploadedFileList();
|
15
|
+
*
|
16
|
+
* // Валидный массив файлов
|
17
|
+
* validate([
|
18
|
+
* { id: 1, name: "document1.pdf" },
|
19
|
+
* { id: 2, name: "document2.pdf", status: { isLoading: false } }
|
20
|
+
* ]);
|
21
|
+
*
|
22
|
+
* // Массив с ошибкой загрузки
|
23
|
+
* validate([
|
24
|
+
* { id: 1, name: "document1.pdf" },
|
25
|
+
* { id: 2, name: "document2.pdf", status: { isUploadError: true } }
|
26
|
+
* ]);
|
27
|
+
* ```
|
28
|
+
*/
|
29
|
+
const uploadedFileList = (...rules) => (0, core_1.createGuard)((value, ctx) => {
|
30
|
+
if ((0, array_1.array)()(value)) {
|
31
|
+
return ctx.createError({
|
32
|
+
code: constants_1.FILE_LIST_NOT_ARRAY_ERROR_INFO.code,
|
33
|
+
message: constants_1.FILE_LIST_NOT_ARRAY_ERROR_INFO.message,
|
34
|
+
});
|
35
|
+
}
|
36
|
+
const uploadFileList = value;
|
37
|
+
for (const item of uploadFileList) {
|
38
|
+
if ((0, uploadedFile_1.uploadedFile)()(item)) {
|
39
|
+
const error = (0, uploadedFile_1.uploadedFile)()(item, ctx);
|
40
|
+
if (error) {
|
41
|
+
return error;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
45
|
+
return (0, core_1.compose)(...rules)(uploadFileList, ctx);
|
46
|
+
});
|
47
|
+
exports.uploadedFileList = uploadedFileList;
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './when';
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./when"), exports);
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { type ValidationContext, type ValidationRule } from '../core';
|
2
|
+
type Params<TLastSchemaValues extends Record<string, unknown>> = {
|
3
|
+
/**
|
4
|
+
* Условие для выбора ветки
|
5
|
+
*/
|
6
|
+
is: (value: unknown, ctx: ValidationContext<TLastSchemaValues>) => boolean;
|
7
|
+
/**
|
8
|
+
* Правила валидации, применяемые если is === true
|
9
|
+
*/
|
10
|
+
then: ValidationRule<unknown, TLastSchemaValues>;
|
11
|
+
/**
|
12
|
+
* Правила валидации, применяемые если is === false
|
13
|
+
*/
|
14
|
+
otherwise: ValidationRule<unknown, TLastSchemaValues>;
|
15
|
+
};
|
16
|
+
/**
|
17
|
+
* Позволяет указывать условные валидации
|
18
|
+
* @example
|
19
|
+
* ```ts
|
20
|
+
* type Values = { name: string; isAgree: boolean };
|
21
|
+
*
|
22
|
+
* const validate = object<Values>({
|
23
|
+
* name: when({
|
24
|
+
* is: (_, ctx) => ctx.global.values.isAgree,
|
25
|
+
* then: string(),
|
26
|
+
* otherwise: any(),
|
27
|
+
* }),
|
28
|
+
* isAgree: optional(boolean()),
|
29
|
+
* });
|
30
|
+
*
|
31
|
+
* // undefined
|
32
|
+
* const result1 = validate({ isAgree: false, name: '' });
|
33
|
+
*
|
34
|
+
* // Required error для name
|
35
|
+
* const result2 = validate({ isAgree: true, name: '' });
|
36
|
+
* ```
|
37
|
+
*/
|
38
|
+
export declare const when: <TLastSchemaValues extends Record<string, unknown>>({ is, then, otherwise, }: Params<TLastSchemaValues>) => (value: unknown, prevCtx?: ValidationContext<TLastSchemaValues> | undefined) => import("../core").ValidationResult;
|
39
|
+
export {};
|
@@ -0,0 +1,33 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.when = void 0;
|
4
|
+
const core_1 = require("../core");
|
5
|
+
/**
|
6
|
+
* Позволяет указывать условные валидации
|
7
|
+
* @example
|
8
|
+
* ```ts
|
9
|
+
* type Values = { name: string; isAgree: boolean };
|
10
|
+
*
|
11
|
+
* const validate = object<Values>({
|
12
|
+
* name: when({
|
13
|
+
* is: (_, ctx) => ctx.global.values.isAgree,
|
14
|
+
* then: string(),
|
15
|
+
* otherwise: any(),
|
16
|
+
* }),
|
17
|
+
* isAgree: optional(boolean()),
|
18
|
+
* });
|
19
|
+
*
|
20
|
+
* // undefined
|
21
|
+
* const result1 = validate({ isAgree: false, name: '' });
|
22
|
+
*
|
23
|
+
* // Required error для name
|
24
|
+
* const result2 = validate({ isAgree: true, name: '' });
|
25
|
+
* ```
|
26
|
+
*/
|
27
|
+
const when = ({ is, then, otherwise, }) => (0, core_1.createRule)((value, ctx) => {
|
28
|
+
if (is(value, ctx)) {
|
29
|
+
return (0, core_1.callRule)(then, value, ctx);
|
30
|
+
}
|
31
|
+
return (0, core_1.callRule)(otherwise, value, ctx);
|
32
|
+
});
|
33
|
+
exports.when = when;
|
package/package.json
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
{
|
2
2
|
"name": "@astral/validations",
|
3
|
-
"version": "4.20.
|
3
|
+
"version": "4.20.4",
|
4
4
|
"browser": "./index.js",
|
5
|
-
"main": "./index.js",
|
5
|
+
"main": "./mode/index.js",
|
6
6
|
"dependencies": {
|
7
7
|
"is-plain-obj": "^4.1.0",
|
8
8
|
"utility-types": "^3.10.0",
|
@@ -22,6 +22,10 @@
|
|
22
22
|
"types": "./index.d.ts",
|
23
23
|
"module": "./index.js",
|
24
24
|
"exports": {
|
25
|
-
".":
|
25
|
+
".": {
|
26
|
+
"vitest": "./node/index.js",
|
27
|
+
"module": "./index.js",
|
28
|
+
"require": "./node/index.js"
|
29
|
+
}
|
26
30
|
}
|
27
31
|
}
|