rittenhop-dev/versions/5.94.2/node_modules/yup/es/Lazy.js
2024-09-23 19:40:12 -04:00

59 lines
1.4 KiB
JavaScript

import isSchema from './util/isSchema';
export function create(builder) {
return new Lazy(builder);
}
class Lazy {
constructor(builder) {
this.type = 'lazy';
this.__isYupSchema__ = true;
this._resolve = (value, options = {}) => {
let schema = this.builder(value, options);
if (!isSchema(schema)) throw new TypeError('lazy() functions must return a valid schema');
return schema.resolve(options);
};
this.builder = builder;
}
resolve(options) {
return this._resolve(options.value, options);
}
cast(value, options) {
return this._resolve(value, options).cast(value, options);
}
validate(value, options, maybeCb) {
// @ts-expect-error missing public callback on type
return this._resolve(value, options).validate(value, options, maybeCb);
}
validateSync(value, options) {
return this._resolve(value, options).validateSync(value, options);
}
validateAt(path, value, options) {
return this._resolve(value, options).validateAt(path, value, options);
}
validateSyncAt(path, value, options) {
return this._resolve(value, options).validateSyncAt(path, value, options);
}
describe() {
return null;
}
isValid(value, options) {
return this._resolve(value, options).isValid(value, options);
}
isValidSync(value, options) {
return this._resolve(value, options).isValidSync(value, options);
}
}
export default Lazy;