22 lines
477 B
JavaScript
22 lines
477 B
JavaScript
|
/*
|
||
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
||
|
Author Tobias Koppers @sokra
|
||
|
*/
|
||
|
|
||
|
"use strict";
|
||
|
|
||
|
const memoize = require("./memoize");
|
||
|
|
||
|
const getValidate = memoize(() => require("schema-utils").validate);
|
||
|
|
||
|
const createSchemaValidation = (check = v => false, getSchema, options) => {
|
||
|
getSchema = memoize(getSchema);
|
||
|
return value => {
|
||
|
if (!check(value)) {
|
||
|
getValidate()(getSchema(), value, options);
|
||
|
}
|
||
|
};
|
||
|
};
|
||
|
|
||
|
module.exports = createSchemaValidation;
|