| 
									
										
										
										
											2021-04-16 21:35:18 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 	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); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-24 15:32:07 +08:00
										 |  |  | const createSchemaValidation = (check, getSchema, options) => { | 
					
						
							| 
									
										
										
										
											2021-04-16 21:35:18 +08:00
										 |  |  | 	getSchema = memoize(getSchema); | 
					
						
							|  |  |  | 	return value => { | 
					
						
							| 
									
										
										
										
											2021-11-24 15:32:07 +08:00
										 |  |  | 		if (check && !check(value)) { | 
					
						
							| 
									
										
										
										
											2021-04-16 21:35:18 +08:00
										 |  |  | 			getValidate()(getSchema(), value, options); | 
					
						
							| 
									
										
										
										
											2021-11-24 15:32:07 +08:00
										 |  |  | 			if (check) { | 
					
						
							|  |  |  | 				require("util").deprecate( | 
					
						
							|  |  |  | 					() => {}, | 
					
						
							|  |  |  | 					"webpack bug: Pre-compiled schema reports error while real schema is happy. This has performance drawbacks.", | 
					
						
							|  |  |  | 					"DEP_WEBPACK_PRE_COMPILED_SCHEMA_INVALID" | 
					
						
							|  |  |  | 				)(); | 
					
						
							|  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2021-04-16 21:35:18 +08:00
										 |  |  | 		} | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports = createSchemaValidation; |