wip
This commit is contained in:
		
							parent
							
								
									727f30777f
								
							
						
					
					
						commit
						73deef0ca7
					
				
					 1 changed files with 53 additions and 0 deletions
				
			
		
							
								
								
									
										53
									
								
								src/api/validator.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								src/api/validator.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,53 @@
 | 
			
		|||
import * as mongo from 'mongodb';
 | 
			
		||||
 | 
			
		||||
type Type = 'id' | 'string' | 'number' | 'boolean' | 'array' | 'object';
 | 
			
		||||
 | 
			
		||||
export default <T>(value: any, isRequired: boolean, type: Type): [T, string] => {
 | 
			
		||||
	if (value === undefined || value === null) {
 | 
			
		||||
		if (isRequired) {
 | 
			
		||||
			return [null, 'is-required']
 | 
			
		||||
		} else {
 | 
			
		||||
			return [null, null]
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch (type) {
 | 
			
		||||
		case 'id':
 | 
			
		||||
			if (typeof value != 'string' || !mongo.ObjectID.isValid(value)) {
 | 
			
		||||
				return [null, 'incorrect-id'];
 | 
			
		||||
			}
 | 
			
		||||
			break;
 | 
			
		||||
 | 
			
		||||
		case 'string':
 | 
			
		||||
			if (typeof value != 'string') {
 | 
			
		||||
				return [null, 'must-be-a-string'];
 | 
			
		||||
			}
 | 
			
		||||
			break;
 | 
			
		||||
 | 
			
		||||
		case 'number':
 | 
			
		||||
			if (!Number.isFinite(value)) {
 | 
			
		||||
				return [null, 'must-be-a-number'];
 | 
			
		||||
			}
 | 
			
		||||
			break;
 | 
			
		||||
 | 
			
		||||
		case 'boolean':
 | 
			
		||||
			if (typeof value != 'boolean') {
 | 
			
		||||
				return [null, 'must-be-an-boolean'];
 | 
			
		||||
			}
 | 
			
		||||
			break;
 | 
			
		||||
 | 
			
		||||
		case 'array':
 | 
			
		||||
			if (!Array.isArray(value)) {
 | 
			
		||||
				return [null, 'must-be-an-array'];
 | 
			
		||||
			}
 | 
			
		||||
			break;
 | 
			
		||||
 | 
			
		||||
		case 'object':
 | 
			
		||||
			if (typeof value != 'object') {
 | 
			
		||||
				return [null, 'must-be-an-onject'];
 | 
			
		||||
			}
 | 
			
		||||
			break;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return [value, null];
 | 
			
		||||
};
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue