1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 'use strict';
- // This file is a proxy of the original file located at:
- // https://github.com/nodejs/node/blob/main/lib/internal/validators.js
- // Every addition or modification to this file must be evaluated
- // during the PR review.
- const {
- ArrayIsArray,
- ArrayPrototypeIncludes,
- ArrayPrototypeJoin,
- } = require('./primordials');
- const {
- codes: {
- ERR_INVALID_ARG_TYPE
- }
- } = require('./errors');
- function validateString(value, name) {
- if (typeof value !== 'string') {
- throw new ERR_INVALID_ARG_TYPE(name, 'String', value);
- }
- }
- function validateUnion(value, name, union) {
- if (!ArrayPrototypeIncludes(union, value)) {
- throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value);
- }
- }
- function validateBoolean(value, name) {
- if (typeof value !== 'boolean') {
- throw new ERR_INVALID_ARG_TYPE(name, 'Boolean', value);
- }
- }
- function validateArray(value, name) {
- if (!ArrayIsArray(value)) {
- throw new ERR_INVALID_ARG_TYPE(name, 'Array', value);
- }
- }
- function validateStringArray(value, name) {
- validateArray(value, name);
- for (let i = 0; i < value.length; i++) {
- validateString(value[i], `${name}[${i}]`);
- }
- }
- function validateBooleanArray(value, name) {
- validateArray(value, name);
- for (let i = 0; i < value.length; i++) {
- validateBoolean(value[i], `${name}[${i}]`);
- }
- }
- /**
- * @param {unknown} value
- * @param {string} name
- * @param {{
- * allowArray?: boolean,
- * allowFunction?: boolean,
- * nullable?: boolean
- * }} [options]
- */
- function validateObject(value, name, options) {
- const useDefaultOptions = options == null;
- const allowArray = useDefaultOptions ? false : options.allowArray;
- const allowFunction = useDefaultOptions ? false : options.allowFunction;
- const nullable = useDefaultOptions ? false : options.nullable;
- if ((!nullable && value === null) ||
- (!allowArray && ArrayIsArray(value)) ||
- (typeof value !== 'object' && (
- !allowFunction || typeof value !== 'function'
- ))) {
- throw new ERR_INVALID_ARG_TYPE(name, 'Object', value);
- }
- }
- module.exports = {
- validateArray,
- validateObject,
- validateString,
- validateStringArray,
- validateUnion,
- validateBoolean,
- validateBooleanArray,
- };
|