34 lines
		
	
	
		
			637 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			637 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const { exit } = require('./exit')
 | |
| 
 | |
| // proxy to joi for option validation
 | |
| exports.createSchema = fn => {
 | |
|   const joi = require('joi')
 | |
| 
 | |
|   let schema = fn(joi)
 | |
|   if (typeof schema === 'object' && typeof schema.validate !== 'function') {
 | |
|     schema = joi.object(schema)
 | |
|   }
 | |
| 
 | |
|   return schema
 | |
| }
 | |
| 
 | |
| exports.validate = (obj, schema, cb) => {
 | |
|   const { error } = schema.validate(obj)
 | |
|   if (error) {
 | |
|     cb(error.details[0].message)
 | |
| 
 | |
|     if (process.env.VUE_CLI_TEST) {
 | |
|       throw error
 | |
|     } else {
 | |
|       exit(1)
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| exports.validateSync = (obj, schema) => {
 | |
|   const { error } = schema.validate(obj)
 | |
|   if (error) {
 | |
|     throw error
 | |
|   }
 | |
| }
 |