Viewing File: /home/ubuntu/voice-assistant-frontend/node_modules/yup/lib/array.js
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.create = create;
exports.default = void 0;
var _isAbsent = _interopRequireDefault(require("./util/isAbsent"));
var _isSchema = _interopRequireDefault(require("./util/isSchema"));
var _printValue = _interopRequireDefault(require("./util/printValue"));
var _locale = require("./locale");
var _runTests = _interopRequireDefault(require("./util/runTests"));
var _ValidationError = _interopRequireDefault(require("./ValidationError"));
var _schema = _interopRequireDefault(require("./schema"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function create(type) {
return new ArraySchema(type);
}
class ArraySchema extends _schema.default {
constructor(type) {
super({
type: 'array'
}); // `undefined` specifically means uninitialized, as opposed to
// "no subtype"
this.innerType = void 0;
this.innerType = type;
this.withMutation(() => {
this.transform(function (values) {
if (typeof values === 'string') try {
values = JSON.parse(values);
} catch (err) {
values = null;
}
return this.isType(values) ? values : null;
});
});
}
_typeCheck(v) {
return Array.isArray(v);
}
get _subType() {
return this.innerType;
}
_cast(_value, _opts) {
const value = super._cast(_value, _opts); //should ignore nulls here
if (!this._typeCheck(value) || !this.innerType) return value;
let isChanged = false;
const castArray = value.map((v, idx) => {
const castElement = this.innerType.cast(v, _extends({}, _opts, {
path: `${_opts.path || ''}[${idx}]`
}));
if (castElement !== v) {
isChanged = true;
}
return castElement;
});
return isChanged ? castArray : value;
}
_validate(_value, options = {}, callback) {
var _options$abortEarly, _options$recursive;
let errors = [];
let sync = options.sync;
let path = options.path;
let innerType = this.innerType;
let endEarly = (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly;
let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;
let originalValue = options.originalValue != null ? options.originalValue : _value;
super._validate(_value, options, (err, value) => {
if (err) {
if (!_ValidationError.default.isError(err) || endEarly) {
return void callback(err, value);
}
errors.push(err);
}
if (!recursive || !innerType || !this._typeCheck(value)) {
callback(errors[0] || null, value);
return;
}
originalValue = originalValue || value; // #950 Ensure that sparse array empty slots are validated
let tests = new Array(value.length);
for (let idx = 0; idx < value.length; idx++) {
let item = value[idx];
let path = `${options.path || ''}[${idx}]`; // object._validate note for isStrict explanation
let innerOptions = _extends({}, options, {
path,
strict: true,
parent: value,
index: idx,
originalValue: originalValue[idx]
});
tests[idx] = (_, cb) => innerType.validate(item, innerOptions, cb);
}
(0, _runTests.default)({
sync,
path,
value,
errors,
endEarly,
tests
}, callback);
});
}
clone(spec) {
const next = super.clone(spec);
next.innerType = this.innerType;
return next;
}
concat(schema) {
let next = super.concat(schema);
next.innerType = this.innerType;
if (schema.innerType) next.innerType = next.innerType ? // @ts-expect-error Lazy doesn't have concat()
next.innerType.concat(schema.innerType) : schema.innerType;
return next;
}
of(schema) {
// FIXME: this should return a new instance of array without the default to be
let next = this.clone();
if (!(0, _isSchema.default)(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + (0, _printValue.default)(schema)); // FIXME(ts):
next.innerType = schema;
return next;
}
length(length, message = _locale.array.length) {
return this.test({
message,
name: 'length',
exclusive: true,
params: {
length
},
test(value) {
return (0, _isAbsent.default)(value) || value.length === this.resolve(length);
}
});
}
min(min, message) {
message = message || _locale.array.min;
return this.test({
message,
name: 'min',
exclusive: true,
params: {
min
},
// FIXME(ts): Array<typeof T>
test(value) {
return (0, _isAbsent.default)(value) || value.length >= this.resolve(min);
}
});
}
max(max, message) {
message = message || _locale.array.max;
return this.test({
message,
name: 'max',
exclusive: true,
params: {
max
},
test(value) {
return (0, _isAbsent.default)(value) || value.length <= this.resolve(max);
}
});
}
ensure() {
return this.default(() => []).transform((val, original) => {
// We don't want to return `null` for nullable schema
if (this._typeCheck(val)) return val;
return original == null ? [] : [].concat(original);
});
}
compact(rejector) {
let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);
return this.transform(values => values != null ? values.filter(reject) : values);
}
describe() {
let base = super.describe();
if (this.innerType) base.innerType = this.innerType.describe();
return base;
}
nullable(isNullable = true) {
return super.nullable(isNullable);
}
defined() {
return super.defined();
}
required(msg) {
return super.required(msg);
}
}
exports.default = ArraySchema;
create.prototype = ArraySchema.prototype; //
// Interfaces
//
Back to Directory
File Manager